首页 科技问答 董智敏,某局点S6900交换机ospf默认路由学习错误问题

董智敏,某局点S6900交换机ospf默认路由学习错误问题

科技问答 227
1676537865,

组网及说明


现场组网如上,EOR1分别与CEEOR2建立OSPF邻居

问题描述

现场EOR1分别与CEEOR2建立ospf多实例邻居,ospf进程为80,互联三层口分别为vlanif 4008RAGG100.3998。同时EOR1EOR2还通过vlanif1715建立进程号为81ospf多实例邻居,TOR做二层透传。ospf 80ospf 81处于同一个vpn实例内。FW发布一条O_ASE1默认路由给CECE再将这条路由发布给EOR1EOR1再继续发布给EOR2,正常情况下,EOR1EOR2上的路由学习如下:

< EOR01>display ip routing-table vpn-instance M2M

Destinations : 508      Routes : 2349

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          O_ASE1  150 10150       10.215.5.169    Vlan4008 (与CE的互联接口)

< EOR02>display ip routing-table vpn-instance M2M

Destinations : 508      Routes : 2373

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          O_ASE1  150 10151       10.215.5.185    RAGG100.3998 (与EOR1的互联接口)

但是故障时候查看EOR1上的默认路由是通过EOR2ospf 81学到的,下一跳指向EOR2且路由类型为第二类外部路由, EOR2上路由学习则是正常的,因此导致路由环路,如下:

< EOR01>display ip routing-table vpn-instance M2M

Destinations : 508      Routes : 2373

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          O_ASE2  150 1           192.168.252.114 Vlan1715 (与EOR1的直连地址,中间经过了二层TOR

< EOR02>display ip routing-table vpn-instance M2M

Destinations : 508      Routes : 2373

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          O_ASE1  150 10151       10.215.5.185    RAGG100.3998 (与EOR1的互联接口)

后面客户通过手动添加和删除指向CE的默认路由恢复故障。

 

过程分析

1.查看路由的详细信息,发现CE发的O_ASE1已经加入路由表,但是处于未激活状态。

[EOR1]dis ip routing-table vpn-instance M2M 0.0.0.0 verbose

Summary count : 4

Destination: 0.0.0.0/0
   Protocol: O_ASE2
 Process ID: 81
  SubProtID: 0x8                    Age: 01h02m11s
       Cost: 1               Preference: 150
      IpPre: N/A             QosLocalID: N/A
        Tag: 1                    State: Active Adv
  OrigTblID: 0x0                OrigVrf: default-vrf
    TableID: 0x102               OrigAs: 0
      NibID: 0x1300000b          LastAs: 0
     AttrID: 0xffffffff        Neighbor: 0.0.0.0
      Flags: 0x10041        OrigNextHop: 192.168.252.114
      Label: NULL           RealNextHop: 192.168.252.114
    BkLabel: NULL             BkNextHop: N/A
  Tunnel ID: Invalid          Interface: Vlan-interface1715
BkTunnel ID: Invalid        BkInterface: N/A
   FtnIndex: 0x0           TrafficIndex: N/A
  Connector: N/A                 PathID: 0x0

Destination: 0.0.0.0/0
   Protocol: O_ASE1
 Process ID: 80
  SubProtID: 0x4                    Age: 01h02m11s
       Cost: 51              Preference: 150
      IpPre: N/A             QosLocalID: N/A
        Tag: 1                    State: Inactive Adv
  OrigTblID: 0x0                OrigVrf: default-vrf
    TableID: 0x102               OrigAs: 0
      NibID: 0x13000007          LastAs: 0
     AttrID: 0xffffffff        Neighbor: 0.0.0.0
      Flags: 0x41           OrigNextHop: 10.215.5.169
      Label: NULL           RealNextHop: 10.215.5.169
    BkLabel: NULL             BkNextHop: N/A
  Tunnel ID: Invalid          Interface: Vlan-interface4008
BkTunnel ID: Invalid        BkInterface: N/A
   FtnIndex: 0x0           TrafficIndex: N/A
  Connector: N/A                 PathID: 0x0

 

2. 根据ospf选路规则O_ASE1的优先级大于O_ASE2,为什么O_ASE2加入了路由表且处于激活状态并最终显示在了vpn路由表里呢?客户这边反馈故障时候FW侧发生了短时间路由震荡,时间和我们设备O_ASE1路由明细中显示的路由存活时间相对应,也就是说O_ASE1故障时候短暂消失过。查看EOR1EOR2上的配置发现ospf 81均配置了default-route-advertise的命令。

ospf 81 router-id 192.168.249.232 vpn-instance M2M_

default-route-advertise  发布type2的默认路由

import-route direct

import-route static

vpn-instance-capability simple

area 0.0.0.0

这个命令的作用是在当前vpn路由表里面存在默认路由的情况下会引入并发布该默认路由,也就是说EOR1EOR2均会将本地vpn路由表里的默认路由通过ospf 81O_ASE2的形式互相发给对方。如下:

<H3C S6900-54QF-F-JN4F-EOR01>dis ospf 81 ls ase 0.0.0.0

 

         OSPF Process 81 with Router ID 192.168.249.232

                 Link State Database

 

    Type      : External

    LS ID     : 0.0.0.0

    Adv Rtr   : 192.168.249.232  这个是本地发布的

    LS age    : 880

    Len       : 36

    Options   : O E

    Seq#      : 8000005d

    Checksum  : 0x2bbc

    Net mask  : 0.0.0.0

    MTID   0 Metric   : 1

    E Type            : 2

    Forwarding Address: 0.0.0.0

    Tag               : 1

 

    Type      : External

    LS ID     : 0.0.0.0

    Adv Rtr   : 192.168.249.242  EOR2发布的    发布源

    LS age    : 881

    Len       : 36

    Options   : O E

    Seq#      : 8000135d

    Checksum  : 0xb515

    Net mask  : 0.0.0.0

    MTID   0 Metric   : 1

    E Type            : 2                  ---------------------这里  type

    Forwarding Address: 0.0.0.0

    Tag               : 1

 

故障时由于发布端默认路由震荡,EOR1上收到的O_ASE1路由删除,也撤销了发布的O_ASE2路由,但EOR2处于下游,对这个路由震荡感知有延时,如果震荡很快的话,EOR12次计算,先删再加,而EOR2是将这两次计算合并到一次计算,相当于没有感知到这次震荡,EOR2上默认路由就不会变,依然会发送O_ASE2默认路由给EOR1,导致EOR1本地vpn路由表里没有默认路由的情况下将EOR2发布的O_ASE2默认路由加入了路由表里。而后续EOR1又可以重新学习到type 1的默认路由并且加表,由于路由管理计算路由比较时只比较路由的优先级 和costtype1 type2的优先级相同都是150  但是type 1的路由cost 比较大, 所以type1的路由会处于未激活状态。

3.为什么现场增加和删除静态路由后就恢复正常了呢?这是因为配置静态路由后, ospf 81 配置了default-route-advertise就可以再次发布默认路由,未配置permit-calculate-other 参数,本地发布默认路由后则不会再计算其他默认路由,所以会删掉 EOR2发布的默认路由,而CE是通过ospf80EOR1建立邻居的,ospf80未配置default-route-advertise,所以不受影响,依然存在于路由管理表里面,处于未激活状态。这个时候路由管理表里面只剩下静态默认路由和CE发的type1路由,这时候再删除静态路由后,路由管理表里面就只有CE发布的type1路由了,所以就将这个type1路由加表,故障恢复。

[EOR1]dis ip routing-table vpn-instance M2M_Gi_GGSN 0.0.0.0 verbose

Summary count : 3

Destination: 0.0.0.0/0
   Protocol: Static
 Process ID: 0
  SubProtID: 0x1                    Age: 00h00m15s
       Cost: 0               Preference: 60
      IpPre: N/A             QosLocalID: N/A
        Tag: 0                    State: Active Adv
  OrigTblID: 0x0                OrigVrf: default-vrf
    TableID: 0x102               OrigAs: 0
      NibID: 0x11000000          LastAs: 0
     AttrID: 0xffffffff        Neighbor: 0.0.0.0
      Flags: 0x10060        OrigNextHop: 10.215.5.169
      Label: NULL           RealNextHop: 10.215.5.169
    BkLabel: NULL             BkNextHop: N/A
  Tunnel ID: Invalid          Interface: Vlan-interface4008
BkTunnel ID: Invalid        BkInterface: N/A
   FtnIndex: 0x0           TrafficIndex: N/A
  Connector: N/A                 PathID: 0x0

Destination: 0.0.0.0/0
   Protocol: O_ASE1
 Process ID: 80
  SubProtID: 0x4                    Age: 00h11m26s
       Cost: 51              Preference: 150
      IpPre: N/A             QosLocalID: N/A
        Tag: 1                    State: Inactive Adv
  OrigTblID: 0x0                OrigVrf: default-vrf
    TableID: 0x102               OrigAs: 0
      NibID: 0x13000007          LastAs: 0
     AttrID: 0xffffffff        Neighbor: 0.0.0.0
      Flags: 0x41           OrigNextHop: 10.215.5.169
      Label: NULL           RealNextHop: 10.215.5.169
    BkLabel: NULL             BkNextHop: N/A
  Tunnel ID: Invalid          Interface: Vlan-interface4008
BkTunnel ID: Invalid        BkInterface: N/A
   FtnIndex: 0x0           TrafficIndex: N/A
  Connector: N/A                 PathID: 0x0

解决方法

建议将EOR2 ospf 80的路由优先级:preference ase 149,修改为低于默认的150。以避免路由震荡导致EOR2的默认路由异常。

CRM论坛(CRMbbs.com)——一个让用户更懂CRM的垂直性行业内容平台,CRM论坛致力于互联网、客户管理、销售管理、SCRM私域流量内容输出5年。 如果您有好的内容,欢迎向我们投稿,共建CRM多元化生态体系,创建CRM客户管理一体化生态解决方案。本文来源:知了社区基于知识共享署名-相同方式共享3.0中国大陆许可协议,某局点S6900交换机ospf默认路由学习错误问题