错误的路由迭代导致路由环路

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

版本:

    V600R008C10SPC300(X8X16)

组网拓扑:

    如图所示客户网络通过俩台路由器连接客户自建骨干网路由器,A测为内部网络主用路由器,B测为互联网主用路由器,所以在A测部署路由如下:
ip route-static 0.0.0.0 0.0.0.0 10.101.62.1
ip route-static 10.0.0.0 255.0.0.0 10.101.62.1
ip route-static 11.0.0.0 255.0.0.0 10.101.62.1
ospf 1 router-id 10.101.63.1 
 default-route-advertise cost 10000 type 1
 import-route static cost 5000 type 1 tag 11
 silent-interface GigabitEthernet2/0/0
 area 0.0.0.0 
  network 10.101.62.0 0.0.0.255 
  network 10.101.63.1 0.0.0.0 
    在B侧部署路由如下:
ip route-static 0.0.0.0 0.0.0.0 10.101.62.9
ospf 1 
 default-route-advertise cost 5000 type 1
 import-route static cost 10000 type 1 tag 22
 silent-interface GigabitEthernet2/0/0
 area 0.0.0.0 
  network 10.101.62.0 0.0.0.255 
  network 10.101.63.2 0.0.0.0 
故障现象:
    当B测上联接口GE2/0/0 Down之后,客户就会出现无法访问互联网的现象,在客户主机tracert 公网地址如下:
PC>ping 114.114.114.114

Ping 114.114.114.114: 32 data bytes, Press Ctrl_C to break
Request timeout!
Request timeout!
Request timeout!
Request timeout!
Request timeout!

--- 114.114.114.114 ping statistics ---
  5 packet(s) transmitted
  0 packet(s) received
  100.00% packet loss

PC>tracert 114.114.114.114

traceroute to 114.114.114.114, 8 hops max
(ICMP), press Ctrl+C to stop
 1  10.100.100.1   <1 ms  31 ms  16 ms
 2  10.101.62.13   47 ms  31 ms  47 ms
 3  10.101.62.14   46 ms  47 ms  47 ms
 4  10.101.62.13   62 ms  63 ms  62 ms
 5  10.101.62.14   47 ms  62 ms  63 ms
 6  10.101.62.13   78 ms  93 ms  78 ms
 7  10.101.62.14   94 ms  78 ms  94 ms
 8  10.101.62.13   109 ms  109 ms  94 ms
    可以看到网络中存在环路。

处理过程

    从上面的描述中不难看出网络中存在环路,分析环路的IP地址得到成环的部位位于核心交换机和B侧路由器之间(10.101.62.12/30为互联地址),此时就有疑问,按照道理,B侧上联接口Down掉之后不应该在发送默认路由才对啊,为什么114.114.114.114的流量会走到B测?

    在核心交换机查看路由,如下:

<COR>display ip routing-table 114.114.114.114

Route Flags: R - relay, D - download to fib

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

Routing Table : Public

Summary Count : 1

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface


        0.0.0.0/0   O_ASE   150  5001        D   10.101.62.13    Vlanif2

    可以看到确实是指向B侧的OSPF路由。查看数据库,如下:

<COR>display ospf lsdb ase 0.0.0.0


         OSPF Process 1 with Router ID 10.101.63.3

                 Link State Database


  Type      : External

  Ls id     : 0.0.0.0

  Adv rtr   : 10.101.63.2  

    可以看到B侧确实还在向外泛洪默认路由,在AR02上面查看路由如下:

<AR02>display ip routing-table

Route Flags: R - relay, D - download to fib

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

Routing Tables: Public

         Destinations : 19       Routes : 19       


Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface


        0.0.0.0/0   Static  60   0          RD   10.101.62.9     GigabitEthernet0/0/0

       10.0.0.0/8   O_ASE   150  5002        D   10.101.62.14    GigabitEthernet0/0/0

    可以看到默认路由依然存在,但是接口缺指向出现了问题,不是本来的G2/0/0,而是G0/0/0。和10.0.0.0/8的指向相同。

    通过分析,发现此处出现了路由迭代,当出接口down之后,路由下一跳有原来的接口路由变为了此处的10.0.0.0/8,所以路由表依然存在静态的默认,AR02继续发送默认路由。而因为客户核心与AR01/02直接的万兆链路,而AR01/02直接是千兆,所以客户设置AR01/02互联cost为10,而核心与AR直接的cost为1,导致迭代之后的默认指向了核心交换机,从而产生环路。分析之后修改静态路由为:

ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet2/0/0 10.101.62.9

    阻止其迭代。之后故障现象消失。

根因

    纵观整个处理过程,可以发现,这个问题的根因在于默认路由在接口Down之后的迭代,而不是如预计的消失,导致OSPF没有撤销默认路由发布,最终出现问题。


解决方案

    为了避免这种直连路由在接口Down之后,通过迭代路由继续存在在路由表里干扰选路,可以在路由后面加入接口参数,避免不必要的迭代,例如:

ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet2/0/0 10.101.62.9

    这样,在G2/0/0端口Down之后,即使10.0.0.0/8的汇聚路由依旧存在,此条路由也不会迭代。

建议与总结

    设计内网使用静态路由的时候一定需要特别注意路由的迭代,不起恰当的迭代会导致次优路径,黑洞路由,环路等等一系列的网络问题!

END