NE20E-S2产品RIP引入静态短暂环路故障

发布时间:  2016-10-14 浏览次数:  113 下载次数:  0
问题描述

1)组网拓扑图:

2)组网概述:

xx局点中,用静态路由作为备份路由,在主链路中断时可以切换至备用线路。R1作为上行设备,R2和R3是汇聚层设备,R4设备则模拟接入路由器。R2和R3直连接口加入RIP。详细配置信息描述如下:

1.R4的lo0地址4.4.4.4/32模拟接入用户,可以和R1的lo0地址1.1.1.1互访。

2.在R4上配置两条静态路由,把下一跳指向R3的优先级调到130,下一跳指向R2的优先级使用默认。

3.R2上到4.4.4.4/32的静态路由下一跳指向R4,优先级使用默认。

4.R3上到4.4.4.4/32的静态路由下一跳指向R4,优先级调到130。

5.R2和R3之间运行RIPv2,通告互联地址,并在两侧都引入静态路由。

6.因为是模拟环境,在R1上配置默认路由,下一跳指向R2。

7.R2上配置到1.1.1.1/32的静态路由,以便到R1的lo0口可达。

R1和R4互访应主走R1、R2、R4。当R2和R4之间的链路中断时,业务切换至备用链路R1、R2、R3、R4,多一跳。

3)现象描述:

主链路中断时,现有业务无法立即切换至备用线路,需要等待一段时间后才可以切换,大概180秒。

处理过程

1)相关信息采集,R2、R3、R4设备配置如下:

<R2>

#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255
#
rip 1
 undo summary
 version 2
 network 192.168.23.0
 import-route static
#
ip route-static 1.1.1.1 255.255.255.255 10.0.12.1
ip route-static 4.4.4.4 255.255.255.255 10.0.24.4

#

<R2>

-------------------------

<R3>

#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255
#
rip 1
 undo summary
 version 2
 network 192.168.23.0
 import-route static cost 5
#
ip route-static 4.4.4.4 255.255.255.255 10.0.34.4 preference 130
#

--------------------------

<R4>

#
interface LoopBack0
 ip address 4.4.4.4 255.255.255.255
#
ip route-static 1.1.1.1 255.255.255.255 10.0.24.2
ip route-static 1.1.1.1 255.255.255.255 10.0.34.3 preference 130

#

2)主链路没有中断时,查看路由表:

<R2>dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 16       Routes : 16      

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        1.1.1.1/32  Static  60   0          RD   10.0.12.1       GigabitEthernet
0/0/0
        2.2.2.2/32  Direct  0    0           D   127.0.0.1       LoopBack0
        4.4.4.4/32  Static  60   0          RD   10.0.24.4       GigabitEthernet
0/0/2

      10.0.12.0/24  Direct  0    0           D   10.0.12.2       GigabitEthernet
0/0/0
      10.0.12.2/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
    10.0.12.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
      10.0.24.0/24  Direct  0    0           D   10.0.24.2       GigabitEthernet
0/0/2
      10.0.24.2/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/2
    10.0.24.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/2
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
   192.168.23.0/24  Direct  0    0           D   192.168.23.2    GigabitEthernet
0/0/1
   192.168.23.2/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
 192.168.23.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

<R2>

<R3>dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 13       Routes : 13      

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        1.1.1.1/32  RIP     100  1           D   192.168.23.2    GigabitEthernet
0/0/1
        3.3.3.3/32  Direct  0    0           D   127.0.0.1       LoopBack0
        4.4.4.4/32  RIP     100  1           D   192.168.23.2    GigabitEthernet
0/0/1

      10.0.34.0/24  Direct  0    0           D   10.0.34.3       GigabitEthernet
0/0/0
      10.0.34.3/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
    10.0.34.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
   192.168.23.0/24  Direct  0    0           D   192.168.23.3    GigabitEthernet
0/0/1
   192.168.23.3/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
 192.168.23.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

<R3>

3)原因分析:

从R3的路由表可以看到,到4.4.4.4/32的路由是R2发来的优先级为100的rip路由,而不是自身优先级为130的静态路由。这条路由的下一跳是到达R2,也就是说当R2与R4之间的链路中断时,流量会从R2到达R3,R3查询路由表,又会把流量发回到R2,从而产生环路。当RIP timeout计时器到时时,R3学到的rip路由失效,恢复正常。



根因

当R2和R4之间的链路正常时:

1)R3会学到两个目的地址是4.4.4.4/32的路由:一是手工配置的优先级为130的静态路由,二是从R2学到的优先级为100的RIP路由,而此时RIP路由会被优选。查看路由表信息如下:

<R3>dis ip routing-table protocol  rip
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : RIP
         Destinations : 2        Routes : 2       

RIP routing table status : <Active>
         Destinations : 2        Routes : 2

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        1.1.1.1/32  RIP     100  1           D   192.168.23.2    GigabitEthernet
0/0/1
        4.4.4.4/32  RIP     100  1           D   192.168.23.2    GigabitEthernet
0/0/1

RIP routing table status : <Inactive>
         Destinations : 0        Routes : 0

<R3>

2)对R2来说,当R2与R4之间的链路中断时,R2会将RIP触发更新报文发送给R3,告知R3到达4.4.4.4/32的路由失效。华为设备默认开启了水平分割功能。因为R2是从R3学习到的4.4.4.4/32的路由,就不再通告回R3。所以,R3在主链路中断时,没有收到R2的触发更新报文,导致短暂中断。

解决方案

1)触发更新还存在另外一种方式:当下一跳不可用之后(如因为链路故障)需要及时通告给其它设备,此时要把该路由的cost设置为16然后发布出去,此更新也叫做路由毒杀。

2)这里采用毒性逆转方式来解决此问题。毒性逆转(Poison Reverse)指的是RIP从某个接口学到路由后,将该路由的开销设置为16(即指明该路由不可达),并从原接口发回邻居设备。利用这种方式,可以清除对方路由表中的无用路由。本案例中,实际解决方法是在R2和R3直连接口下都配置:rip poison-reverse命令,启用毒性逆转。

3)安照毒性逆转的实现方法,当主链路断开后,R2仍可以继续发送4.4.4.4/32路由的触发更新报文给R3,使R3的RIP路由老化,那么R3到4.4.4.4/32的静态路由就会被立即优选,以实现业务的快速切换。

建议与总结

1)如果毒性逆转和水平分割都配置了,简单的水平分割行为(从某接口学到的路由再从这个接口发布时将被抑制)会被毒性逆转行为代替。

2)双点或多点引入外部路由非常有可能引起环路。对于RIP这样的网络,需要灵活使用水平分割,毒性逆转,触发更新以消除环路。

END