Skip to main content
开放网络的先行者与推动者—星融元
加入我们技术支持(Support)  TEL:(+86)4000989811

CX-N-MC-LAG三层转发功能验证

1 方案概述

本文主要讲解CX-N 系列交换机基于MC-LAG实现的三层组网下的相关解决方案,验证网络通信、故障转移和恢复等能力。整个验证过程中交换机所有命令通过思科命令行配置完成。

1.1 MC-LAG二层转发

Asterfusion CX-N超低时延云交换机支持基于MC-LAG的二层转发功能,如图1所示:

基于MC-LAG的二层转发功能
图1:基于MC-LAG的二层转发功能

在上行链路故障转移和恢复测试场景中,使用Server1生成TCP/UDP流量向Server3打流,此时流量路径为:Server1->Leaf1->Spine->Leaf3->Server3。

Leaf1交换机在上联端口HG1故障的情况下,L2流量可以通过Peer-link转发到对端Leaf2,然后通过BGP学习到下一跳为Spine,最后经过Leaf3到Server3。此时流量路径:Server1->Leaf1->Leaf2->Spine->Leaf3->Server3。

1.2 MC-LAG三层转发

Asterfusion CX-N超低时延云交换机支持基于MC-LAG的三层转发功能,相较于MC-LAG的二层转发功能,三层转发新增一条三层冗余链路用于数据转发,转发和控制分离。如图2所示:

基于MC-LAG的三层转发功能
图2:基于MC-LAG的三层转发功能

在上行链路故障转移和恢复测试场景中,使用Server1生成TCP/UDP流量向Server3打流,此时流量路径为:Server1->Leaf1->Spine->Leaf3->Server3。

Leaf1交换机在上联端口HG1故障的情况下,L3流量可以通过BGP邻居学习到Server3的路由通过三层冗余链路转发到Leaf2,然后通过BGP学习到下一跳为Spine,最后经过Leaf3到Server3。此时流量路径:Server1->Leaf1->Leaf2->Spine->Leaf3->Server3。

2 物理网络拓扑

本次相关方案验证的整体物理拓扑如图1所示:

CX-N基于MC-LAG整体物理网络拓扑
图3:CX-N基于MC-LAG整体物理网络拓扑

3 硬件与软件环境

3.1 设备管理口

验证过程中所涉及到的设备、主机名及管理网口IP地址等信息,如表1所示:

设备主机名管理口IP地址备注
CX532-NSpine110.230.1.32 
CX308-NLeaf110.230.1.18 
CX308-NLeaf210.230.1.19 
CX308-NLeaf310.230.1.20 
ServerServer110.230.1.11 
ServerServer310.230.1.13 
表1:设备管理口列表

3.2 硬件环境

验证环境中涉及到的硬件环境,如表2所示:

名称型号硬件指标数量备注
SpineCX532P-N【参见产品彩页】1 
LeafCX308P-48Y-N【参见产品彩页】3 
光模块10GSFP+6为了尽量减少物料种类,线缆和模块速率进行了统一,交换机互联使用100G模块和线缆,服务器需用10G模块和线缆
100GQSFP2810
网线//6 
光纤多模10G /25G适用3 
多模100G适用5 
服务器/内存推荐8G以上2 
表2:硬件环境

3.3 软件环境

验证环境中涉及到的软件环境,如表3所示:

名称版本备注
iperf33.1.7 
CX532-NSONiC.201911.R0314P06 
CX308-NSONiC.201911.R0314P06 
服务器系统CentOS Linux 7.8.2003 
服务器内核3.10.0-1127.18.2.el7 
表3:软件环境

4 基础环境部署

在两台Server服务器上,安装部署本次验证方案的所需要的基础软件。

补充说明:以”[root@server ~]#”为开头的命令表示两台服务器都要执行。

4.1 LLDP

在两台Server服务器上安装LLDP服务,如果是X710网卡要求网卡驱动版本大于2.3.6,然后配置网卡开启LLDP。

[root@server ~]# yum -y install epel-release
[root@server ~]# yum -y install lldpd
[root@server ~]# systemctl start lldpd
[root@server ~]# systemctl enable lldpd
[root@server ~]# lspci |grep -i ether
配置网卡开启LLDP
[root@server ~]# ethtool -i ens1f0
[root@server ~]# ethtool -i ens1f1
配置网卡开启LLDP
[root@sever ~]# ethtool --set-priv-flags ens1f0 disable-fw-lldp on
[root@sever ~]# ethtool --set-priv-flags ens1f1 disable-fw-lldp on

4.2 安装iPerf3 

在2台Server服务器上安装iPerf3软件用来打流。

在2台服务器上上执行:
[root@server ~]# yum -y install iperf3
[root@server ~]# iperf3 -v
iperf 3.1.7
Linux compute-2 3.10.0-1160.62.1.el7.x86_64 #1 SMP Tue Apr 5 16:57:59 UTC 2022 x86_64
Optional features available: CPU affinity setting, IPv6 flow label, TCP congestion algorithm setting, sendfile / zerocopy, socket pacing

4.3 检查链路连接

所有交换机设备要提前检查和Server服务器之间的链路连接情况,确保交换机设备和Server服务器之间的链路连接没有问题,以下命令在所有交换机设备上执行。

admin@sonic:~$ sudo config cli-mode cli
admin@sonic:~$ sudo sonic-cli
sonic#
Spine1# show lldp table
查看Spine1链路情况
Spine2# show lldp table
查看Spine2链路情况
Leaf1# show lldp table
查看Leaf1链路情况
Leaf2# show lldp table
查看Leaf2链路情况
Leaf3# show lldp table
查看Leaf3链路情况

5 组网环境配置   

5.1 逻辑拓扑

组网逻辑拓扑与接口配置
图4:组网逻辑拓扑与接口配置

5.2 Spine1

5.2.1 设备恢复出厂设置

配置思科命令行,恢复Spine1设备到出厂设置。

Spine1@sonic:~$ sudo config cli-mode cli
Spine1@sonic:~$ sudo sonic-cli
sonic# delete startup-config
sonic# reload

5.2.2 配置Spine1接口IP

在Spine1交换机上配置与3台Leaf交换机的互联接口IP。

Spine1# configure terminal
Spine1(config)# interface ethernet 0/0
Spine1(config-if-0/0)# ip address 10.0.10.2/24
Spine1(config-if-0/0)# interface ethernet 0/4
Spine1(config-if-0/4)# ip address 10.0.11.2/24
Spine1(config-if-0/4)# interface ethernet 0/8
Spine1(config-if-0/8)# ip address 10.0.12.2/24

5.2.3 配置Spine1的BGP

在Spine1交换机上配置3台Leaf交换机的BGP邻居。

Spine1# configure terminal
Spine1(config)# interface loopback 0
Spine1(config-loif-0)# ip address 10.10.0.3/32
Change Loopback0 ip from 10.1.0.1/32 to 10.10.0.3/32
Loopback ip will be used as bgp router-id in frr
Spine1(config-loif-0)# ip address 10.10.0.3/3
Spine1(config-loif-0)# router bgp 65003
Spine1(config-router)# neighbor 10.0.10.1 remote-as 65007
Spine1(config-router)# neighbor 10.0.11.1 remote-as 65007
Spine1(config-router)# neighbor 10.0.12.1 remote-as 65008
Spine1(config-router)# route-map DEFAULT_EVPN_ROUTE_MAP permit 65535
Spine1(config-route-map)# route-map FROM_BGP_PEER_V4 permit 65535
Spine1(config)# address-family ipv4 unicast
Spine1(config)# router bgp 65003
Spine1(config-router)# address-family ipv4 unicast
Spine1(config-router-af)# redistribute connected
Spine1(config-router-af)# neighbor 10.0.10.1 route-map FROM_BGP_PEER_V4 in
Spine1(config-router-af)# neighbor 10.0.10.1 route-map FROM_BGP_PEER_V4 out
Spine1(config-router-af)# neighbor 10.0.11.1 route-map FROM_BGP_PEER_V4 in
Spine1(config-router-af)# neighbor 10.0.11.1 route-map FROM_BGP_PEER_V4 out
Spine1(config-router-af)# neighbor 10.0.12.1 route-map FROM_BGP_PEER_V4 in
Spine1(config-router-af)# neighbor 10.0.12.1 route-map FROM_BGP_PEER_V4 out
Spine1(config)# write
Spine1(config)# reload

5.3 Leaf1

5.3.1 设备恢复出厂设置

恢复Leaf1设备到出厂设置。

Leaf1# delete startup-config
Leaf1# reload

5.3.2 配置Leaf1端口速率

配置Leaf1交换机的Ethernet0口速率为10G。

Leaf1# configure terminal 
Leaf1(config)# interface ethernet 0/0  
Leaf1(config-if-0/0)# speed 10000
Leaf1(config-if-0/0)# show this
!
interface ethernet 0/0
speed 10000

5.3.3 配置Leaf1接口IP

在Leaf1交换机上配置与Leaf、Spine交换机的互联接口IP以及PortChannel、VLAN信息。

Leaf1# configure terminal 
Leaf1(config)# interface ethernet 0/48
Leaf1(config-if-0/48)# ip address 10.0.10.1/24
Leaf1(config-if-0/48)# interface link-aggregation 1
Leaf1(config-lagif-1)# interface ethernet 0/0     
Leaf1(config-if-0/0)# link-aggregation-group 1
Leaf1(config-if-0/0)# vlan 10
Leaf1(config-vlan-10)# vlan 30
Leaf1(config-vlan-30)# interface ethernet 0/56
Leaf1(config-if-0/56)# ip address 10.2.1.1/24
Leaf1(config-if-0/56)# mac-address 18:17:25:37:77:00
Leaf1(config-if-0/56)# interface ethernet 0/60
Leaf1(config-if-0/60)# switchport trunk vlan 10
Leaf1(config-if-0/60)# switchport trunk vlan 30
Leaf1(config-if-0/60)# interface vlan 10
Leaf1(config-vlanif-10)# ip address 100.0.10.1/24
Leaf1(config-vlanif-10)# interface link-aggregation 1
Leaf1(config-lagif-1)# switchport access vlan 10

5.3.4 配置Leaf1的MC-LAG

在Leaf1交换机上配置与Leaf2交换机互联接口的MC-LAG。

Leaf1# configure terminal 
Leaf1(config)# vlan 30
Leaf1(config-vlan-30)# interface vlan 30
Leaf1(config-vlanif-30)# ip address 11.0.0.6/24
Leaf1(config-vlanif-30)# mclag domain 1
Leaf1(mclag-domain)# local-address 11.0.0.6   
Leaf1(mclag-domain)# peer-address 11.0.0.7
Leaf1(mclag-domain)# peer-link ethernet 0/60
Leaf1(mclag-domain)# member lag 1
Leaf1(mclag-domain)# commit
Leaf1(mclag-domain)# interface vlan 10
Leaf1(config-vlanif-10)# mac-address 18:17:25:37:64:40

5.3.5 配置Leaf1的BGP

在Leaf1交换机上配置与Spine1交换机的BGP邻居。

Leaf1# configure terminal 
Leaf1(config)# router bgp 65007
Leaf1(config-router)# bgp router-id 10.10.0.6
Leaf1(config-router)# interface loopback 0
Leaf1(config-loif-0)# ip address 10.10.0.6/32
Change Loopback0 ip from 10.1.0.1/32 to 10.10.0.6/32
Loopback ip will be used as bgp router-id in frr
Leaf1(config-loif-0)# router bgp 65007
Leaf1(config-router)# neighbor 10.0.10.2 remote-as 65003
Leaf1(config-router)# neighbor 10.2.1.2 remote-as 65007
Leaf1(config-router)# route-map FROM_BGP_PEER_V4 permit 65535
Leaf1(config-route-map)# router bgp 65007
Leaf1(config-router)# address-family ipv4 unicast
Leaf1(config-router-af)# redistribute connected
Leaf1(config-router-af)# neighbor 10.2.1.2 route-map FROM_BGP_PEER_V4 in
Leaf1(config-router-af)# neighbor 10.2.1.2 route-map FROM_BGP_PEER_V4 out
Leaf1(config-router-af)# neighbor 10.0.10.2 route-map FROM_BGP_PEER_V4 in
Leaf1(config-router-af)# neighbor 10.0.10.2 route-map FROM_BGP_PEER_V4 out

5.4 Leaf2

5.4.1 设备恢复出厂设置

恢复Leaf2设备到出厂设置。

Leaf2# delete startup-config
Leaf2# reload

5.4.2 配置Leaf2端口速率

配置Leaf2交换机的Ethernet0口速率为10G。

Leaf2# configure terminal 
Leaf2(config)# interface ethernet 0/0 
Leaf2(config-if-0/0)# speed 10000
Leaf2(config-if-0/0)# show this
!
interface ethernet 0/0
speed 10000

5.4.3 配置Leaf2接口IP

在Leaf2交换机上配置与Leaf、Spine交换机的互联接口IP以及PortChannel、VLAN信息。

Leaf2# configure terminal 
Leaf2(config)# interface ethernet 0/48
Leaf2(config-if-0/48)# ip address 10.0.11.1/24
Leaf2(config-if-0/48)# interface link-aggregation 1
Leaf2(config-lagif-1)# interface ethernet 0/0     
Leaf2(config-if-0/0)# link-aggregation-group 1
Leaf2(config-if-0/0)# vlan 10
Leaf2(config-vlan-10)# vlan 30
Leaf2(config-vlan-30)# interface ethernet 0/56
Leaf2(config-if-0/56)# ip address 10.2.1.2/24
Leaf2(config-if-0/56)# mac-address 18:17:25:37:77:01
Leaf2(config-if-0/56)# interface ethernet 0/60
Leaf2(config-if-0/60)# switchport trunk vlan 10
Leaf2(config-if-0/60)# switchport trunk vlan 30
Leaf2(config-if-0/60)# interface vlan 10
Leaf2(config-vlanif-10)# ip address 100.0.10.1/24
Leaf2(config-vlanif-10)# interface link-aggregation 1
Leaf2(config-lagif-1)# switchport access vlan 10

5.4.4 配置Leaf2的MC-LAG

在Leaf2交换机上配置与Leaf1交换机互联接口的MC-LAG。

Leaf2# configure terminal 
Leaf2(config)# vlan 30
Leaf2(config-vlan-30)# interface vlan 30
Leaf2(config-vlanif-30)# ip address 11.0.0.7/24
Leaf2(config-vlanif-30)# mclag domain 1
Leaf2(mclag-domain)# local-address 11.0.0.7   
Leaf2(mclag-domain)# peer-address 11.0.0.6
Leaf2(mclag-domain)# peer-link ethernet 0/60
Leaf2(mclag-domain)# member lag 1
Leaf2(mclag-domain)# commit
Leaf2(mclag-domain)# interface vlan 10
Leaf2(config-vlanif-10)# mac-address 18:17:25:37:64:40

5.4.5 配置Leaf2的BGP

在Leaf2交换机上配置与Spine1交换机的BGP邻居。

Leaf2# configure terminal 
Leaf2(config)# router bgp 65007
Leaf2(config-router)# bgp router-id 10.10.0.7
Leaf2(config-router)# interface loopback 0
Leaf2(config-loif-0)# ip address 10.10.0.7/32
Change Loopback0 ip from 10.1.0.1/32 to 10.10.0.7/32
Loopback ip will be used as bgp router-id in frr
Leaf2(config-loif-0)# router bgp 65007
Leaf2(config-router)# neighbor 10.0.11.2 remote-as 65003
Leaf2(config-router)# neighbor 10.2.1.1 remote-as 65007
Leaf2(config-router)# route-map FROM_BGP_PEER_V4 permit 65535
Leaf2(config-route-map)# router bgp 65007
Leaf2(config-router)# address-family ipv4 unicast
Leaf2(config-router-af)# redistribute connected
Leaf2(config-router-af)# neighbor 10.2.1.1 route-map FROM_BGP_PEER_V4 in
Leaf2(config-router-af)# neighbor 10.2.1.1 route-map FROM_BGP_PEER_V4 out
Leaf2(config-router-af)# neighbor 10.0.11.2 route-map FROM_BGP_PEER_V4 in
Leaf2(config-router-af)# neighbor 10.0.11.2 route-map FROM_BGP_PEER_V4 out

5.5 Leaf3

5.5.1 设备恢复出厂设置

恢复Leaf3设备到出厂设置。

Leaf3# delete startup-config
Leaf3# reload

5.5.2 配置Leaf3端口速率

配置Leaf3交换机的Ethernet0口速率为10G。

Leaf3# configure terminal 
Leaf3(config)# interface ethernet 0/0
Leaf3(config-if-0/0)# speed 10000
Leaf3(config-if-0/0)# show this
!
interface ethernet 0/0
speed 10000

5.5.3 配置Leaf3接口IP

在Leaf3交换机上配置与Leaf、Spine交换机的互联接口IP以及PortChannel、VLAN信息。

Leaf3# configure terminal 
Leaf3(config-if-0/0)# interface ethernet 0/48
Leaf3(config-if-0/48)# ip address 10.0.12.1/24
Leaf3(config-if-0/48)# interface link-aggregation 1
Leaf3(config-lagif-1)# interface ethernet 0/0 
Leaf3(config-if-0/0)# link-aggregation-group 1
Leaf3(config-if-0/0)# vlan 20
Leaf3(config-vlan-20)# interface vlan 20
Leaf3(config-vlanif-20)# ip address 100.0.20.1/24
Leaf3(config-vlanif-20)# interface link-aggregation 1
Leaf3(config-lagif-1)# switchport access vlan 20

5.5.4 配置Leaf3的BGP

在Leaf3交换机上配置与Spine1交换机的BGP邻居。

Leaf3(config)# router bgp 65008
Leaf3(config-router)# bgp router-id 10.10.0.8
Leaf3(config-router)# interface loopback 0
Leaf3(config-loif-0)# ip address 10.10.0.8/32
Change Loopback0 ip from 10.1.0.1/32 to 10.10.0.8/32
Loopback ip will be used as bgp router-id in frr
Leaf3(config-loif-0)# route-map FROM_BGP_PEER_V4 permit 65535
Leaf3(config-route-map)# router bgp 65008
Leaf3(config-router)# neighbor 10.0.12.2 remote-as 65003
Leaf3(config-router)# address-family ipv4 unicast
Leaf3(config-router-af)# redistribute connected
Leaf3(config-router-af)# neighbor 10.0.12.2 route-map FROM_BGP_PEER_V4 in
Leaf3(config-router-af)# neighbor 10.0.12.2 route-map FROM_BGP_PEER_V4 out

6 故障转移和恢复测试

6.1 服务器通信测试

在Server3服务器上创建服务端,在Server1服务器使用iperf3软件生成TCP/UDP流量。

[root@server3 ~]# iperf3 -s
[root@server1 ~]# iperf3 -c 100.0.20.3  -l 20k -b 10G   -t 1000
在Server1服务器使用iperf3软件生成TCP/UDP流量

6.2 查看流量路径

Spine1:

查看流量路径

流量从Ethernet0口进,Ethernet8口出。

流量路径Server1-Leaf1-Spine1-Leaf3-Server3

6.3 查看设备路由信息

Spine1:

查看Spine1设备路由信息

Leaf1:

查看Leaf1设备路由信息

Leaf2:

查看Leaf2设备路由信息

6.4 故障测试

流量所在的上行链路断链,检查Leaf的路由信息,查看Server1和Server3打流情况。

Leaf1:
Leaf1(config)# interface ethernet 0/48
Leaf1(config-if-0/72)# shutdown
Server1 Server3打流没有出现断流,有轻微流量抖动:

查看Server1和Server3打流情况

检查Leaf1路由信息:

由于上行链路断链,Leaf1通过BGP邻居学习到100.0.20.0/24的路由通过三层冗余链路Ethernet56口10.2.1.2到Leaf2再到Spine1

检查Leaf1路由信息

检查Leaf2路由信息:

Leaf2路由信息没有变化

Leaf2路由信息

检查Spine1路由信息:

Spine1路由信息没有变化

Spine1路由信息

6.5 查看断链流量路径

Spine1:

 查看Spine1断链流量路径

流量从Ethernet4口进,Ethernet8口出。

Leaf2:

 查看Leaf2断链流量路径

流量从Leaf2三层冗余链路Ethernet56口进,Ethernet48口出到Spine1。

Leaf1:

 查看Leaf1断链流量路径

由于Leaf1上行链路断链,流量从Leaf1三层冗余链路Ethernet56口出,到Leaf2。

流量路径: Server1-Leaf1(三层冗余链路口)-Leaf2(三层冗余链路口)Spine1-Leaf3-Server3

6.6 故障恢复测试

恢复流量所在的上行链路故障,查看Server1和Server3打流情况。

Leaf1:
Leaf1(config)# interface ethernet 0/48
Leaf1(config-if-0/72)# startup

Server1 Server3打流没有出现断流,有轻微流量抖动:

Server1和Server3打流情况

检查Leaf1路由信息:

Leaf1上行链路断链恢复,路由恢复

Leaf1路由信息

检查Leaf2路由信息:

Leaf2路由信息没有变化

Leaf2路由信息

检查Spine1路由信息:

Spine1路由信息没有变化

Spine1路由信息

6.7 查看断链恢复流量路径

Spine1:

查看Spine1断链恢复流量路径

流量从Ethernet0口进,Ethernet8口出。

Leaf2:

查看Leaf2断链恢复流量路径

Leaf2没有流量

Leaf1:

查看Leaf1断链恢复流量路径

Leaf1流量从Ethernet0口进,Ethernet48口出到Spine1。

流量路径恢复: Server1-Leaf1-Spine1-Leaf3-Server3

7 结论

通过上述解决方案验证可知,CX-N系列交换机具备MC-LAG的三层高可用转发功能,同时具备端口、链路及设备组网通信的故障转移和恢复能力。

A-lab-云网络

对星融元产品感兴趣?

立即联系!

返回顶部

© 星融元数据技术(苏州)有限公司 苏ICP备17070048号-2