如下图所示,通过配置M-LAG双归接入IP网络可以满足以下要求:
当一条接入链路发生故障时,流量可以快速切换到另一条链路,保证可靠性。
为了高效利用带宽,两条链路同时处于active状态,可实现使用负载分担的方式转发流量。
采用如下的思路配置M-LAG双归接入IP网络:
在Switch上配置上行接口绑定在一个Eth-Trunk中。
分别在SwitchA和SwitchB上配置V-STP、DFS Group、peer-link和M-LAG接口。
分别在SwitchA和SwitchB上配置VLANIF接口IP地址和MAC地址,作为接入设备的双活网关。
分别在SwitchA、SwitchB和SwitchC上配置OSPF功能,保证三层互通。
分别在SwitchA和SwitchB上配置Monitor Link关联上行接口和下行接口,避免因上行链路故障导致用户侧流量无法转发而丢弃。
1. 在Switch上配置上行接口绑定在一个Eth-Trunk中
# 配置Switch。
[~Switch] vlan batch 11
[*Switch] interface eth-trunk 20
[*Switch-Eth-Trunk20] mode lacp-static
[*Switch-Eth-Trunk20] port link-type trunk
[*Switch-Eth-Trunk20] port trunk allow-pass vlan 11
[*Switch-Eth-Trunk20] trunkport 10ge 1/0/1 to 1/0/4
[*Switch-Eth-Trunk20] quit
[*Switch] commit
2. 分别在SwitchA和SwitchB上配置V-STP、DFS Group、peer-link和M-LAG接口
# 配置SwitchA。
[~SwitchA] stp mode rstp
[~SwitchA] stp bridge-address 1-1-1
//缺省情况下,设备参与生成树计算的桥MAC是设备的MAC地址。在配置M-LAG主备设备桥MAC时,建议选取两台设备中MAC地址较小的作为参与生成树计算的桥MAC。
[*SwitchA] stp v-stp enable
//使能V-STP模式后,在双归设备之间同步STP的协议状态,让两台设备以同一个状态对外进行STP协商。
[*SwitchA] interface loopback 0
[*SwitchA-LoopBack0] ip address 10.1.1.1 32
[*SwitchA-LoopBack0] quit
[*SwitchA] dfs-group 1
//创建动态交换服务组DFS Group,并进入DFS-Group视图。在双活组网中配置M-LAG时,需要首先使用该命令创建DFS Group。
[*SwitchA-dfs-group-1] source ip 10.1.1.1
[*SwitchA-dfs-group-1] priority 150
//缺省情况下,DFS Group的优先级为100。建议用户给两端设备配置不同的优先级,以确定M-LAG两端的设备主备状态。
[*SwitchA-dfs-group-1] quit
[*SwitchA] interface eth-trunk 1
[*SwitchA-Eth-Trunk1] trunkport 10ge 1/0/4
[*SwitchA-Eth-Trunk1] trunkport 10ge 2/0/5
[*SwitchA-Eth-Trunk1] mode lacp-static
[*SwitchA-Eth-Trunk1] peer-link 1
//配置接口为peer-link接口。接口配置为peer-link接口后,缺省加入所有VLAN。接口配置为peer-link接口后,该接口上不能再配置其他业务。
[*SwitchA-Eth-Trunk1] quit
[*SwitchA] vlan batch 11
[*SwitchA] interface eth-trunk 10
[*SwitchA-Eth-Trunk10] mode lacp-static
[*SwitchA-Eth-Trunk10] port link-type trunk
[*SwitchA-Eth-Trunk10] port trunk allow-pass vlan 11
[*SwitchA-Eth-Trunk10] trunkport 10ge 1/0/2
[*SwitchA-Eth-Trunk10] trunkport 10ge 1/0/3
[*SwitchA-Eth-Trunk10] dfs-group 1 m-lag 1
//配置绑定动态交换服务组和用户侧接口,确保绑定的Eth-Trunk接口连接的是需要双归接入的设备,且配置绑定的m-lag-id必须保持一致。
[*SwitchA-Eth-Trunk10] quit
[*SwitchA] commit
# 配置SwitchB。
[~SwitchB] stp mode rstp
[~SwitchB] stp bridge-address 1-1-1
[*SwitchB] stp v-stp enable
[*SwitchB] interface loopback 0
[*SwitchB-LoopBack0] ip address 10.1.1.2 32
[*SwitchB-LoopBack0] quit
[*SwitchB] dfs-group 1
[*SwitchB-dfs-group-1] source ip 10.1.1.2
[*SwitchB-dfs-group-1] priority 120
[*SwitchB-dfs-group-1] quit
[*SwitchB] interface eth-trunk 1
[*SwitchB-Eth-Trunk1] trunkport 10ge 1/0/4
[*SwitchB-Eth-Trunk1] trunkport 10ge 2/0/5
[*SwitchB-Eth-Trunk1] mode lacp-static
[*SwitchB-Eth-Trunk1] peer-link 1
[*SwitchB-Eth-Trunk1] quit
[*SwitchB] vlan batch 11
[*SwitchB] interface eth-trunk 10
[*SwitchB-Eth-Trunk10] mode lacp-static
[*SwitchB-Eth-Trunk10] port link-type trunk
[*SwitchB-Eth-Trunk10] port trunk allow-pass vlan 11
[*SwitchB-Eth-Trunk10] trunkport 10ge 1/0/2
[*SwitchB-Eth-Trunk10] trunkport 10ge 1/0/3
[*SwitchB-Eth-Trunk10] dfs-group 1 m-lag 1
[*SwitchB-Eth-Trunk10] quit
[*SwitchB] commit
3.分别在SwitchA和SwitchB上配置VLANIF接口IP地址和MAC地址,作为接入设备的双活网关两端的IP和虚拟MAC配置要求完全一致,目的是为M-LAG提供相同的IP和虚拟MAC。
# 配置SwitchA。
[~SwitchA] interface vlanif 11
[*SwitchA-Vlanif11] ip address 10.2.1.1 24
[*SwitchA-Vlanif11] mac-address 0000-5e00-0101
//主备设备上M-LAG成员接口对应的VLANIF接口或者VBDIF接口的虚拟MAC地址必须配置相同。虚MAC地址格式为00-00-5E-00-01-XX或者00-00-5E-00-02-XX。
[*SwitchA-Vlanif11] quit
[*SwitchA] commit
# 配置SwitchB。
[~SwitchB] interface vlanif 11
[*SwitchB-Vlanif11] ip address 10.2.1.1 24
[*SwitchB-Vlanif11] mac-address 0000-5e00-0101
[*SwitchB-Vlanif11] quit
[*SwitchB] commit
4.分别在SwitchA、SwitchB和SwitchC上配置OSPF功能,保证三层互通
# 配置SwitchA。
[~SwitchA] interface 10ge 1/0/1
[~SwitchA-10GE1/0/1] undo portswitch
[*SwitchA-10GE1/0/1] ip address 10.3.1.1 24
[*SwitchA-10GE1/0/1] quit
[*SwitchA] ospf 1
[*SwitchA-ospf-1] area 0
[*SwitchA-ospf-1-area-0.0.0.0] network 10.1.1.1 0.0.0.0
[*SwitchA-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[*SwitchA-ospf-1-area-0.0.0.0] network 10.3.1.0 0.0.0.255
[*SwitchA-ospf-1-area-0.0.0.0] quit
[*SwitchA-ospf-1] quit
[*SwitchA] commit
# 配置SwitchB。
[~SwitchB] interface 10ge 1/0/1
[~SwitchB-10GE1/0/1] undo portswitch
[*SwitchB-10GE1/0/1] ip address 10.4.1.1 24
[*SwitchB-10GE1/0/1] quit
[*SwitchB] ospf 1
[*SwitchB-ospf-1] area 0
[*SwitchB-ospf-1-area-0.0.0.0] network 10.1.1.2 0.0.0.0
[*SwitchB-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[*SwitchB-ospf-1-area-0.0.0.0] network 10.4.1.0 0.0.0.255
[*SwitchB-ospf-1-area-0.0.0.0] quit
[*SwitchB-ospf-1] quit
[*SwitchB] commit
# 配置SwitchC。
[~SwitchC] interface 10ge 1/0/1
[~SwitchC-10GE1/0/1] undo portswitch
[*SwitchC-10GE1/0/1] ip address 10.3.1.2 24
[*SwitchC-10GE1/0/1] quit
[*SwitchC] interface 10ge 1/0/2
[*SwitchC-10GE1/0/2] undo portswitch
[*SwitchC-10GE1/0/2] ip address 10.4.1.2 24
[*SwitchC-10GE1/0/2] quit
[*SwitchC] ospf 1
[*SwitchC-ospf-1] area 0
[*SwitchC-ospf-1-area-0.0.0.0] network 10.3.1.0 0.0.0.255
[*SwitchC-ospf-1-area-0.0.0.0] network 10.4.1.0 0.0.0.255
[*SwitchC-ospf-1-area-0.0.0.0] quit
[*SwitchC-ospf-1] quit
[*SwitchC] commit
5. 分别在SwitchA和SwitchB上配置Monitor Link关联上行接口和下行接口
//Monitor Link是一种端口联动方案,通过监控上行链路对下行链路进行同步设置,达到上行链路故障迅速传达给下行设备,防止长时间因上行链路故障而出现流量丢失。
# 配置SwitchA。
[~SwitchA] monitor-link group 1
[*SwitchA-mtlk-group1] port 10ge 1/0/1 uplink
[*SwitchA-mtlk-group1] port eth-trunk 10 downlink 1
[*SwitchA-mtlk-group1] quit
[*SwitchA] commit
# 配置SwitchB。
[~SwitchB] monitor-link group 1
[*SwitchB-mtlk-group1] port 10ge 1/0/1 uplink
[*SwitchB-mtlk-group1] port eth-trunk 10 downlink 1
[*SwitchB-mtlk-group1] quit
[*SwitchB] commit
6. 验证配置结果
执行命令display dfs-group,查看M-LAG的相关信息。
# 查看DFS Group编号为1的M-LAG信息。
# 查看SwitchA上的M-LAG信息。
# 查看SwitchB上的M-LAG信息。