1、背景及改造方案介绍
1.1 Qunar K8S 网络简介
K8S网络说明:
- 接入交换机与 K8S NODE 运行 IBGP,K8S NODE 将 POD 网段的路由通过 BGP 通告给接入交换机;
- 接入交换机与核心交换机之间运行 EBGP,RACK 将各自学到的 POD 网段的路由通过 BGP 通告给核心交换机;
- 核心交换机上通过路由策略只给每台接入交换机通告缺省路由。
1.2 Cisco Nexus VPC 简介
VPC 是 Virtual Port-channel(虚拟端口聚合)的缩写,VPC 可以让两台交换机上接口形成聚合端口,在聚合端口的对端设备看来,这两台交换机是一台设备。
VPC具有以下好处:
- 将两台交换机在 L2 接口层面虚拟化为一台,消除了 L2 互联的 STP 环路,提高了网络的稳定性;
- VPC 与 HSRP 相结合,使参与 HSRP 的两台交换机都能对以 HSRP VIP 作为网关的数据包进行三层转发,增加了上行接口的出向带宽及带宽使用率;
- 参与 VPC 的两台交换机在控制层面,L3 层面上仍然是独立的,可以更加方便的进行系统维护和路由操作。
1.3 为什么要进行 VPC 改造以实现二三层网络混合部署
- 原有的 L2 接入交换机不能与 K8S NODE 服务器运行BGP;
- VPC + HSRP 使参与 HSRP 的两台交换机都能对以 HSRP VIP 作为网关的数据包进行三层转发,增加了上行接口的出向带宽及带宽使用率;
- 使 L2 接入接入网络逐步向 L3 接入网络过渡,L3 网络稳定性优于 L2 网络,过渡完成后使 IDC 网络更加稳定;
- 改造完成后使现有机柜可以进行 K8S 服务器部署,减少新开机柜的数量,节省机房运营成本。
1.4 改造前后网络结构的变化
改造之前:
- 改造之前接入交换机1和接入交换机2作为两台独立的 L2接入交换机分别通过 L2 port-channel 上联到一组VPC 核心交换机上;
- 接入交换机1和接入交换机2作为一组接入为 Server 提供双上联接入,Server 通过 bond 双上联到两台 L2接入交换机。
- Server 的网关在核心交换机上。
改造之后:
-
两台独立的 L2 接入交换机改造为一组 VPC;\
-
在两台接入与两台核心之间增加 L3 互联,建立 EBGP 邻居;
-
K8S 服务器的网关在接入交换机上, K8S 服务器分别与两台接入交换机建立 IBGP 邻居。
1.5 改造的思路
- 切走需要进行改造的交换机的流量;
- 对没有流量的交换机进行 VPC 配置,然后重启交换机,利用VPC 的 auto-recovery 特性使 VPC 生效;
- 将服务器流量切换到改造后的交换机上;
- 然后对另一台交换机进行 VPC 配置,连接两台接入交换机之间的 VPC Peer-link 接口,VPC 正常建立;
- 增加接入交换机与核心交换机之间的 L3 互联,并配置 BGP;
- 在接入交换机上配置服务器的 vlan interface 以及与服务器之间的BGP配置。
2、具体的改造步骤
2.1 规划两台 L2 接入交换机的 VPC 主备角色
可以通过配置优先级控制 VPC 主备角色分配。
2.2 维护规划的 VPC 主交换机
切走交换机下联服务器的流量,然后在核心交换机上关闭其上联口。
2.3 关闭主交换机上连接服务器的接口
此操作的目的是为了防止维护过程中服务器bond接口意外切回。
提前记录UP的接口信息,在交换机完成重启接口恢复之后进行比对,检查是否有接口没有恢复。
2.4 配置主交换机的 VPC
此时不需要连接 vpc peer-link线路,并且在配置 vpc peer-link 接口后使其保持 shutdown 状态。
``**Rack1`
feature vpc
vpc domain XX
``peer-``switch
``role priority ``4096
``peer-keepalive destination x.x.x.x source y.y.y.y
``delay restore ``150
``auto-recovery
``ip arp synchronize
interface
port-channel4002
``switchport
``switchport mode trunk
``spanning-tree port type network
``vpc peer-link
interface
Ethernet1/``51
``switchport
``switchport mode trunk
``channel-group ``4002
mode active
``shutdown
interface
Ethernet1/``52
``switchport
``switchport mode trunk
``channel-group ``4002
mode active
` shutdown
2.5 保存配置,重启主交换机
交换机重启之后,VPC 生效;
- Delay-restroe SVI status 计时器开始倒计时,时间为 10s;
- Delay-restroe SVI status 倒计时结束后,Delay-restore status 计时器开始倒计时,时间为 150s;
- Delay-restore status 倒计时结束后,Auto-recovery status 计时器开始倒计时,时间为 240s;\
在经过三个计时器共 400s 后,VPC 进入 Primary 状态。
2.6 配置上联口 port-channel 的 VPC ID,打开核心交换机上的上联口(STP抖动一次)
**Rack1`
conf t
interface
port-channel1
``vpc ``1
``switchport trunk allowed vlan except xx
**core[``1``-``2``]
conf t
interface
port-channel9
``switchport trunk allowed vlan except xx
#检查接口下的 trunk allowed vlan 配置
#打开接口:
**core[``1``-``2``]
conf t
interface
Ethernet1/``9
``no shutdown
#检查Rack1的 port-channel和vpc ``1``状态,检查STP
`
- 上联口 Port-channel1 VPC ID 1 状态正常
2.7 将服务器流量切回 VPC 主交换机
VPC 主交换机L2连接恢复正常后,打开连接服务器的接口,检查重启前后UP的接口是否一致,然后将服务器流量从备交换机切换到主交换机。
2.8 在核心交换机上关闭备交换机的上联口
2.9 备交换机配置VPC
需要在备交换机上联口 port-channel 中配置与主交换机上联 port-channel 相同的 VPC ID ,防止 VPC 一致性检查不一致而影响主交换机上联口 port-channel 的状态。
``**Rack2`
feature vpc
vpc domain XX
``peer-``switch
``peer-keepalive destination y.y.y.y source x.x.x.x
``delay restore ``150
``auto-recovery
``ip arp synchronize
interface
port-channel4002
``switchport
``switchport mode trunk
``spanning-tree port type network
``vpc peer-link
interface
Ethernet1/``51
``switchport
``switchport mode trunk
``channel-group ``4002
mode active
``no shutdown
interface
Ethernet1/``52
``switchport
``switchport mode trunk
``channel-group ``4002
mode active
``no shutdown
interface
port-channel1
``vpc ``1
` switchport trunk allowed vlan except xx
- VPC 用管理口 IP 作为 keep-alive 地址,因为管理地址互通,所以 vPC keep-alive status 为 “peer is alive”:
- 由于 peer-link 线路没有连接,所以 Peer status 为 “peer link is down”,vPC role 为 “none established”
2.10 连接 peer-link,然后打开接口(STP抖动一次)
- 打开 VPC peer-link 后主交换机 vpc role 为“primary”。
- 备交换机 vpc role 为 “secondary”。
- 备交换机在经过之前所述的计时器时间 400s 后,进入正常状态,Rack1 与 Rack2 之间的 VPC 正常建立
2.11 在核心交换机上将连接 Rack2 的接口加入到连接 Rack1 的 Port-channel 中
- Rack1&Rack2 与 core1&core2 通过 1 个 L2 Port-channel 进行互联。
**core[
1-
2``]`
conf t
interface
Ethernet1/``35
``switchport trunk allowed vlan except xx
``channel-group ``9
mode active # channel group ``9
是主交换机的上联口的channel group ID,这样修改以后主备交换机就上联到同一个VPC了
`
2.12 打开备交换机的上联口,VPC 改造完成
2.13 增加接入交换机与核心交换机之间的 L3 互联及 EBGP 配置
2.14 增加接入交换机与 K8S 服务器的 IBGP 配置
3、总结与注意事项
-
在改造时,多组接入交换机之间要避免 VPC Domain ID 冲突,要进行规划记录;
-
在改造过程中 L2 网络会经历两次生成树抖动;
-
在改造之前两台接入交换机上联到核心交换机的两个不同的 Port-channel,在改造之后两台接入交换机上联到核心交换机的同一个 Port-channel 中;
-
第一台接入交换机在配置 VPC 以后,VPC 不会生效,需要利用 VPC auto-recovery 特性,重启交换机,VPC 才会生效。