S7700交换机VRRP主备抢占与OSPF邻居切换不同步导至端到端业务丢包时间太长

发布时间:  2015-12-21 浏览次数:  697 下载次数:  0
问题描述

某局点中心通过两台77交换机向内通过VRRP提供三层VLAN网关,向外通过OSPF路由协议与远程站点互联,并通过COST值来指定主备链路。进行OSPF链路切换及恢复调试时,发现主链路从DOWN变UP后,端到端业务出现较长时间的丢包。

组网结构图如下,S1和S2通过VRRP为HQ内部VLAN2提供三层网关,正常情况下S1为MASTER角色。S1和S2与Remote分别通过VLANIF3,VLANIF4三层互联。并通过OSPF打通路由,其中S1-Remote为主链路COST值为50,S2-Remote为备链路COST值为100。Remote同时为CLIENT2提供VLAN5的三层网关。



其中的关键配置如下:

---------------------HQ-------------------------

#

interface Ethernet0/0/1
 port link-type trunk
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 2
 stp disable
#
interface Ethernet0/0/2
 port link-type trunk
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 2
 stp disable
#
interface Ethernet0/0/3
 port link-type access
 port default vlan 2
#

---------------------S1-------------------------
#
interface GigabitEthernet0/0/1
 port link-type trunk
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 2
 stp disable
#
interface GigabitEthernet0/0/2
 port link-type trunk
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 3
 stp disable
#
interface Vlanif2
 ip address 10.1.2.2 255.255.255.0
 vrrp vrid 2 virtual-ip 10.1.2.1
 vrrp vrid 2 priority 110
 vrrp vrid 2 track interface GigabitEthernet0/0/2 reduced 20
#
interface Vlanif3
 ip address 172.16.3.1 255.255.255.252
 ospf cost 50
#
ospf 1
 silent-interface Vlanif2
 area 0.0.0.0
  network 10.1.2.0 0.0.0.255
  network 172.16.3.1 0.0.0.0
#

---------------------S2-------------------------
#
interface GigabitEthernet0/0/1
 port link-type trunk
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 2
 stp disable
#
interface GigabitEthernet0/0/2
 port link-type trunk
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 4
 stp disable
#
interface Vlanif2
 ip address 10.1.2.3 255.255.255.0
 vrrp vrid 2 virtual-ip 10.1.2.1
 vrrp vrid 2 track interface GigabitEthernet0/0/2 reduced 20
#
interface Vlanif4
 ip address 172.16.4.1 255.255.255.252
 ospf cost 100
#
ospf 1
 silent-interface Vlanif2
 area 0.0.0.0
  network 10.1.2.0 0.0.0.255
  network 172.16.4.1 0.0.0.0
#

---------------------Remote-------------------------
#
interface Vlanif3
 ip address 172.16.3.2 255.255.255.252
 ospf cost 50
#
interface Vlanif4
 ip address 172.16.4.2 255.255.255.252
 ospf cost 100
#
interface Vlanif5
 ip address 10.1.5.1 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-type access
 port default vlan 5
#
interface GigabitEthernet0/0/2
 port link-type trunk
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 3
#
interface GigabitEthernet0/0/3
 port link-type trunk
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 4
#
ospf 1
 silent-interface Vlanif5
 area 0.0.0.0
  network 172.16.3.2 0.0.0.0
  network 172.16.4.2 0.0.0.0
  network 10.1.5.0 0.0.0.255
#

进行如下FAILOVER测试时,得到结果如下:

1,当S1-Remote链路DOWN掉时(通过SHUTDOWN S1上的由GE0/0/2来模拟),VLAN2的网关从S1切换到S2上,同时OSPF链路从S1-Remote切换到S2-Remote,CLIENT1到CLIENT2的PING包测试丢包1个以下,现象正常。

2,当S1-Remote链路恢复UP时(通过UNDO SHUTDOWN S1上的GE0/0/2来模拟),VLAN2的网关从S2回切到S1上(优先级较高的S1将立即抢占,变成MASTER),同时OSPF链路S1-Remote恢复,并且由于COST较低,收敛后变成主链路。CLIENT1到CLIENT2的PING包测试丢包超过20个,客户无法接受这么长的业务丢包时间。


告警信息

处理过程

通过调整VRRP的抢占切换时间。并且该时间必须大于等于S1与Remote之间的OSPF邻接关系建立时间。

在S1上调整配置如下:

#
interface Vlanif2
 vrrp vrid 2 preempt-mode timer delay 15
#
调整完配置后,进行以上FAILOVER测试,S1-Remote链路恢复UP后,端到端业务无丢包。
根因

通过分析FAILOVER测试过程中的端到端路径情况,发现问题出现在VRRP主备抢占与OSPF链路切换时间不一致上,具体如下:

1,在S1-Remote链路恢复后,VRRP由于优先级的原因,立即执行切换。MASTER从S2回切到S1上,此时CLIENT1到CLIENT2的PING包的下一跳从S2转到S1;

2,由于S1-Remote链路的GE0/0/2从DOWN变为UP后,需要与对端协商并重新建立OSPF邻接关系,并生成指导转发的路由表,这个时间大概需要10几秒。

3,在S1与Remote未形成邻接关系前,从CLIENT1到CLIENT2的PING包,从CLIENT1到S1后,由于没有路由信息将被丢弃。直到S1与Remote之间的邻接关系起来后,PING包才能正常到达Remote从而去到CLIENT2端。


解决方案

基于以上的根因分析,解决问题的思路及方案如下:

1,由于OSPF邻接关系的建立无法通过配置调整来加快收敛,这个思路无法解决问题。

2,转而考虑通过调整VRRP的抢占切换时间。并且该时间必须大于等于S1与Remote之间的OSPF邻接关系建立时间。

在S1上调整配置如下:

#
interface Vlanif2
 vrrp vrid 2 preempt-mode timer delay 15
#

完成以上配置后,进行FAILOVER测试验证,结果如下:

1,当S1-Remote链路DOWN掉时(通过SHUTDOWN S1上的由GE0/0/2来模拟),VLAN2的网关从S1切换到S2,同时OSPF链路从S1-Remote切换到S2-Remote,CLIENT1到CLIENT2的PING包测试丢包1个以下,现象正常。

2,当S1-Remote链路恢复UP时(通过UNDO SHUTDOWN S1上的GE0/0/2来模拟),VLAN2的网关需等待15秒后才从S2回切到S1。这里面分为三个阶段:

第一阶段,VRRP主仍然在S2上,S1与Remote之间仍未建立邻接关系。CLIENT1仍然将PING包发往S2,S2通过S2-Remote链路发往CLIENT2,回来的路径一致。

第二阶段,VRRP主仍然在S2上,S1与Remote之间建立邻接关系。CLIENT1仍然将PING包发往S2,S2通过S2-Remote链路发往CLIENT2上,回程路径则由于S1-Remote链路已经正常,并且OSPF COST值较低,CLIENT2的回包将通过S1-Remote链路发回到S1上,再由S1转发到CLIENT1上。来回路径不一致,但端到端业务可达。

第三队段,VRRP主切换到S1上,S1与Remote之间建立邻接关系。CLIENT1仍然将PING包发往S1,S1通过S1-Remote链路发往CLIENT2上,回程路径一致。

通过以上的测试验证,如果要保证切换测试时业务不丢包或少丢包,则VRRP抢占延迟时间的设置必须等于或大于OSPF邻接关系建立时间。并且该时间无法通过理论计算,只能通过多次实验尝试并最终取值。





建议与总结

END