一、适用场景
1、保护原有投资,不浪费原有网络设备及链路的投资;
2、对高可靠、高可用要求的业务,链路中的设备、接头、线路故障时,毫秒级切换,不影响业务的运行;
3、使用华为、华三智能管理型的交换设备(本例采用的是华为、华三的二层链路私有协议);
4、主链路坏后,该链路上跑的部门业务流量立即切换到冗余的好链路上(实现自动主备),坏链路的故障修复后,会先通过flush的arp广播帧探测目标,当链路目标恢复正常通信后,业务流量再自动切换回原链路(实现负载均衡)。
二、拓扑图(模拟器指令与实物操作指令相同)
三、思路与解析
(一)解决主、备链路的区分问题
1、在LSW1上关闭G0/0/1与G0/0/2接口的STP生成树协议。数据沿着主链路进行传输,网络中不存在环路,避免产生广播风暴。
2、配置smart-link上的G0/0/1为主链路master,G0/0/2为备链路slave。Smart Link组中的从接口slave在Smart Link组启动后会被阻塞。如果主链路发生故障,Smart Link放开从接口,将流量倒换到备链路。
3、部门1 即vlan 10的用户配置instance实例2映射,并在smart-link中指定该实例2为slave,即让流量默认从备用链路G0/0/2的接口走。
(二)解决链路故障后的自动切换问题
1、使用monitor-link将master的2条物理链路捆绑成一个整体,当这2条物理链路中的某个端口或线路故障时,整个master立即停止流量的转发,此时网络流量能从smart-link的slave转发,毫秒级切换。
2、使用monitor-link将slave的2条物理链路捆绑成一个整体,当这2条物理链路中的某个端口或线路故障时,整个slave立即停止流量的转发,此时网络流量能从smart-link的master转发,毫秒级切换。
(三)解决故障修复后,流量再切换回原链路的问题
1、通过配置smart-link的选项restore enable(链路断了后恢复,网络流量的回切功能开启)
2、通过配置smart-link的选项timer wtr 30(指定网络流量回切的时间),使物理链路在修复还原后,网络流量能切换回原物理链路。
3、在trunk透传的接口上允许vlan 200的Flush报文通过。刷新ARP表并指定smart-link链路捆绑的密码,加强链路捆绑的安全性。
Flush报文的说明:当Smart Link发生链路切换后,原有的转发表项将不适用于新的拓扑网络,需要对整个网络进行MAC表项和ARP表项的更新。这时,Smart Link通过发送Flush报文通知相关设备进行MAC表和ARP表项的刷新操作。由于Flush报文格式的定义根据设备制造商不同会有所区别,因此这里配置的Flush报文只用于华为交换设备之间的通信,且对端设备必须配置Flush报文接收功能。只有为接口配置了控制VLAN编号并将接口加入该VLAN,接口才能接收到Flush报文。并非需要在相关设备的所有接口上都配置从指定控制VLAN接收Flush报文功能,只有那些处于从Smart Link设备到其目的设备主、备链路上的接口才需进行此配置。
(四)解决不同网段之间的相互访问问题
1、在靠近Server的LSW4上配置vlan 10、vlan20的网关ip地址,并在LSW4上配置vlan 100的Server网段的ip地址,作为多台Server的网关ip。
2、在vlan 10的PC1与vlan 20的PC2上,指定自己网段的网关ip地址为LSW4上配置的vlan 10、vlan 20的ip地址。
3、在LSW2与LSW3上允许vlan 10用户、vlan 20用户及vlan 100的Server网络流量能通过。
四、配置过程
(一)LSW1:
System-view #进入系统视图
sysname LSW1 #交换机命名为LSW1,为以后维护多台做区分
vlan batch 10 20 100 200 #创建vlan10、20、100、200分别给用户PC1、PC2、Server服务器、flush报文使用
stp region-configuration #进入STP生成树配置
instance 2 vlan 10 #将实例2映射给vlan 10的用户,为负载均衡打基础
active region-configuration #激活实例配置
smart-link group 1 #创建Smart Link组1
load-balance instance 2 slave #配置实例2绑定的VLAN报文从备用接口发送,实现负载均衡
restore enable # 使能Smart Link组的回切功能,链路断开修复后,流量切换回原链路
smart-link enable #使能Smart Link组功能
port GigabitEthernet0/0/1 master # 接口加入Smart Link组,并配置为主接口
port GigabitEthernet0/0/2 slave #接口加入Smart Link组,并配置为备用接口
timer wtr 30 #设置Smart Link组回切时间
flush send control-vlan 200 password simple sz123 #指定发送Flush报文的密码为simple加密方式
interface GigabitEthernet0/0/1 # 配置G0/0/1接口
port link-type trunk # 将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 # 允许通过的vlan是用户pc1、pc2,服务器Server,flush报文
stp disable # 关闭G0/0/1接口上的生成树协议功能
interface GigabitEthernet0/0/2 #配置G0/0/2接口
port link-type trunk #将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 #允许通过的vlan是用户pc1、pc2,服务器Server,flush报文
stp disable #关闭G0/0/2接口上的生成树协议功能
interface GigabitEthernet0/0/3 #配置G0/0/3接口
port link-type access #将接口配置为access模式
port default vlan 10 #该接口允许业务vlan 10通过(即vlan 10的用户)
interface GigabitEthernet0/0/4 #配置G0/0/4接口
port link-type access #将接口配置为access模式
port default vlan 20 #该接口允许业务vlan 20通过(即vlan 20的用户)
(二)LSW2:
System-view #进入系统视图
sysname LSW2 #交换机命名为LSW2,为以后维护多台做区分
vlan batch 10 20 100 200 #创建vlan10、20、100、200分别给用户PC1、PC2、Server服务器、flush报文使用
interface GigabitEthernet0/0/1 # 配置G0/0/1接口
port link-type trunk # 将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 # 允许通过的vlan是用户pc1、pc2,服务器Server、Flush报文
smart-link flush receive control-vlan 200 password simple sz123 #指定发送Flush报文的密码为
simple加密方式,密码与LSW1匹配
interface GigabitEthernet0/0/2 # 配置G0/0/2接口
port link-type trunk #将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 # 允许通过的vlan是用户pc1、pc2,服务器Server、
Flush报文
smart-link flush receive control-vlan 200 password simple sz123 #指定发送Flush报文的密码为
simple加密方式,密码与LSW1匹配
monitor-link group 1 #配置monitor-link组,设备最多支持创建16个Monitor
Link组
port GigabitEthernet0/0/2 uplink #指定G0/0/2接口为monitor-link组的上行链路
port GigabitEthernet0/0/1 downlink 1 #指定G0/0/1接口为monitor-link组的下行链路
(三)LSW3:
System-view # 进入系统视图
sysname LSW3 #交换机命名为LSW3,为以后维护多台做区分
vlan batch 10 20 100 200 #创建vlan10、20、100、200分别给用户PC1、PC2、
Server服务器、flush报文使用
interface GigabitEthernet0/0/1 #配置G0/0/1接口
port link-type trunk # 将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 # 允许通过的vlan是用户pc1、pc2,服务器Server,
Flush报文
smart-link flush receive control-vlan 200 password simple sz123 #指定发送Flush报文的密码为
simple加密方式,密码与LSW1匹配
interface GigabitEthernet0/0/2 # 配置G0/0/2接口
port link-type trunk #将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 #允许通过的vlan是用户pc1、pc2,服务器Server、
Flush报文
smart-link flush receive control-vlan 200 password simple sz123 #指定发送Flush报文的密码为
simple加密方式,密码与LSW1匹配
monitor-link group 1 #配置monitor-link组,设备最多支持创建16个Monitor
Link组
port GigabitEthernet0/0/2 uplink # 指定G0/0/2接口为monitor-link组的上行链路
port GigabitEthernet0/0/1 downlink 1 # 指定G0/0/1接口为monitor-link组的下行链路
(四)LSW4:
System-view # 进入系统视图
sysname LSW4 #交换机命名为LSW4,为以后维护多台做区分
vlan batch 10 20 100 200 #创建vlan10、20、100、200分别给用户PC1、PC2、
Server服务器、flush报文使用
interface Vlanif10 #配置vlan 10用户的网关地址
ip address 192.168.10.254 255.255.255.0 #给vlan 10配置具体的ip地址与子网掩码
interface Vlanif20 #配置vlan 20用户的网关地址
ip address 192.168.20.254 255.255.255.0 #给vlan 20配置具体的ip地址与子网掩码
interface Vlanif100 #配置vlan 100服务器的网关地址
ip address 192.168.100.254 255.255.255.0 #给vlan 30配置具体的ip地址与子网掩码
interface GigabitEthernet0/0/1 #配置G0/0/1接口
port link-type trunk #将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 # 允许通过的vlan是用户pc1、pc2,服务器Server、
Flush报文
interface GigabitEthernet0/0/2 #配置G0/0/2接口
port link-type trunk #将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 # 允许通过的vlan是用户pc1、pc2,服务器Server、
Flush报文
interface GigabitEthernet0/0/3 # 配置G0/0/3接口
port link-type access # 将接口的工作配置为access业务模式
port default vlan 100 # 允许通过的vlan是服务器Server
五、vlan 10用户验证结果,从主链路正常转发,到主链路故障转移到备用链路,再到故障修复后回切到主链路
(一)在LSW1上查看smart-link状态
1、可使用命令
(1)display smart-link group all
(2)display smart-link group 1
2、上图显示分析:state状态为Active,即激活状态,Role为Master为主链路,slave为备用链路,inactive为非激活状态。所以当前是G0/0/1接口为主链路的激活状态,G0/0/2接口的备用链路为非激活状态(当主链路故障时,G0/0/2接口的备用链路启用)。
(二)在LSW2上查看monitor-link状态
1、在LSW2上使用命令display monitor-link group 1
2、上图显示分析,上行链路与下行链路都是up状态,说明smart-link运行正常。
(三)负载均衡效果验证
1、在LSW1上使用命令display smart-link group all
2、上图显示分析:当前负载均衡Load-Balance对应的实例是2
3、查看负载均衡配置的实例命令:
(1)STP的实例配置如下:
(2)上图显示分析:当前配置的实例2映射的是vlan 10的数据流量
4、通过smart-link的配置,使负载均衡实现的配置
(1)smart-link的配置命令
(2)通过load-balance instance 2 slave命令,指定实例2即vlan 10的数据流量从smart-link的slave链路,即G0/0/2转发。
5、验证vlan 10是从G0/0/2接口转发数据
(1)在pc1(vlan 10中的其中一台pc)上,执行ping 192.168.100.253(vlan 100中的一台服务器ip地址),测试连通性,能有server的数据回复,说明vlan 10的PC访问server 服务器正常,如下图:
(2)在LSW4的G0/0/2接口上抓包查看,是否有vlan 10的数据包经过,在wireshare上可以明显看到有request的icmp请求数据包,与reply的icmp回应数据包,所以vlan 10的用户或PC主链路是右侧的这条链路。
6、验证vlan 20是从G0/0/1接口转发数据
(1)在pc2(vlan 20中的其中一台pc)上,执行ping 192.168.100.253(vlan 100中的一台服务器ip地址),测试连通性,能有server的数据回复,说明vlan 20的PC访问server 服务器正常,如下图:
(2)(2)在LSW4的G0/0/1接口上抓包查看,是否有vlan 20的数据包经过,在wireshare上可以明显看到有request的icmp请求数据包,与reply的icmp回应数据包,所以vlan 20的用户或PC主链路是左侧的这条链路。
通过以上验证,说明vlan 10的网络流量默认从右侧链路转发,vlan 20的网络流量默认从左侧的链路转发,从而实现了负载均衡。
说明:在配置中,我们只做了实例2与vlan 10的映射,指定了STP实例2从smart-link的slave链路转发。而默认的STP实例1是从smart-link的master链路转发。且smart-link接口的master与slave接口均关闭了STP生成树协议(本例即LSW2的G0/0/1与G0/0/2接口)。
(四)主链路断开后,流量ping包连通性测试
1、断开vlan 10的主链路,即右侧链路后,查看vlan 10的网络流量是否会自动从备用链路(左侧链路)转发
(1)在PC1上执行ping 192.168.100.253 –t,持续发出ping包
(2)在LSW4的G0/0/1与G0/0/2接口上抓包
从上图分析,现在从PC1 vlan10到server的icmp的ping数据包是从G0/0/2接口抓到的,说明链路好的时候,vlan 10是网络流量从右侧链路转发数据包的。
(3)在LSW3的G0/0/2接口执行shutdown,模拟链路故障
2、查看抓包的结果与ping包的情况
(1)查看抓包的结果,LSW4抓包已经从G0/0/2停止,vlan 10的数据包已经从原右侧链路切换到备用左侧链路,说明vlan 10的网络流量主备功能切换实现。
(2)vlan 10的主链路虽然已经物理断开,但查看ping包仍然是连续的,从抓包结果可以看出,右侧的抓包已经停止,PC1到server的数据包已经从LSW4的G0/0/1接口正常转发了。
此时,说明主备链路的自动切换完成。
(五)主链路故障修复后,回切链路查看
1、保持以上抓包与ping包的持续,在这个基础上,回到LSW3上把G0/0/2接口undo shutdown,恢复接口的正常转发。
状态变为up,如上图:
2、此时,会有一段时间pc1仍走备用链路,当到了配置的切换时间后,就自动切换回主链路,该回切过程会丢3个数据包,相对用户来说,这个回切过程不影响体检。
六、vlan 20用户验证结果,从主链路正常转发数据包,到主链路故障转移到备用链路,再到故障修复后回切到主链路
(一)vlan 20用户从主链路正常转发数据包
PC2手动配置ip地址192.168.20.1,是vlan 20这个局域网中的用户,访问server服务器192.168.100.253,能正常通信,在LSW2的G0/0/2接口上抓包时,有PC2的request请求包与server服务器的icmp协议reply回应包,如下图:
(二)主链路故障后转移到备用链路
在LSW2的G0/0/2接口上执行命令shutdown,模拟vlan 20用户的主链路故障,主链路故障后,抓包停止,同时在LSW3的G0/0/2接口抓包查看,已经有Vlan 20的数据包过来,说明主备切换成功。
(三)主链路故障修复后回切到主链路
1、在LSW2的G0/0/2接口上执行undo shutdown,模拟主链路的修复,当完成修复时,很明显能看到有Broadcast广播的ARP数据帧,如下图:
2、提取LSW2的G0/0/2接口上其中一个Broadcast的广播帧,只有源,没有目标,所以目标是ff:ff:ff:ff:ff:ff,如下图所示:
3、提取广播帧的最后一帧查看,很明显已经有了Destination目标,所以已经通过广播的方式找到了目标。
Flush报文:当Smart Link发生链路切换后,原有的转发表项将不适用于新的拓扑网络,需要对整个网络进行MAC表项和ARP表项的更新。这时,Smart Link通过发送Flush报文通知相关设备进行MAC表和ARP表项的刷新操作。由于Flush报文格式的定义根据设备制造商不同会有所区别,因此这里配置的Flush报文只用于华为交换设备之间的通信,且对端设备必须配置Flush报文接收功能。只有为接口配置了控制VLAN编号并将接口加入该VLAN,接口才能接收到Flush报文。并非需要在相关设备的所有接口上都配置从指定控制VLAN接收Flush报文功能,只有那些处于从Smart Link设备到其目的设备主、备链路上的接口才需进行此配置。
4、此时vlan 20所转发的数据从右侧的备用链路,切换到左侧的主链路上来了,也就是说主链路故障修复后,vlan 20网络的流量已经回切到主链路上来。
通过验证,主链路正常时,网络流量会根据映射配置的vlan实现负载均衡,主链路故障后,自动切换到备用链路,当主链路修复后,网络流量又能回切到负载均衡状态。本文至此结束,不足之处敬请批评指正。