前言

IS-IS 有两种缺省路由,第一种缺省路由是由 level-1 路由器在特定条件下自动产生的,它的下一跳是离它最近的 (cost 最小)level-1-2路由器。第二种缺省路由是 IS-IS 路由器上使用 default-route-advertise 命令产生并发布的。
实验拓扑
1

IS-IS配置

[R1]isis
[R1-isis-1]is-name R1
[R1-isis-1]is-level level-1
[R1-isis-1]network-entity 10.0000.0000.0001.00
[R1-GigabitEthernet0/0/0]isis enable
[R1-LoopBack0]isis enable
[R2]isis
[R2-isis-1]is-name R2
[R2-isis-1]network-entity 10.0000.0000.0002.00
[R2-GigabitEthernet0/0/0]isis enable
[R2-GigabitEthernet0/0/0]isis circuit-level level-1
[R2-GigabitEthernet0/0/1]isis enable
[R2-GigabitEthernet0/0/1]isis circuit-level level-2
[R3]isis 
[R3-isis-1]is-name R3    
[R3-isis-1]is-level level-2
[R3-isis-1]network-entity 20.0000.0000.0003.00
[R3-GigabitEthernet0/0/0]isis enable
[R3-LoopBack0]isis enable 

静态路由配置

[R4]ip route-static 1.1.1.0 255.255.255.0 192.168.24.2
[R4]ip route-static 3.3.3.0 255.255.255.0 192.168.24.2
[R2]ip route-static 0.0.0.0 0 192.168.24.4

测试R1 ping R4 与R1 ping R3 都能正常通信

<R1>ping -a 1.1.1.1 4.4.4.4
  PING 4.4.4.4: 56  data bytes, press CTRL_C to break
    Reply from 4.4.4.4: bytes=56 Sequence=1 ttl=254 time=80 ms
.....

这时观察R1的路由表与数据库

<R1>display ip routing-table  #发现有到R2的默认路由
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 7        Routes : 7        
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface
   0.0.0.0/0       ISIS-L1  15  10          D   192.168.12.2    GigabitEthernet0/0/0

<R1>display isis lsdb   #有ATT值=1可知R2下放了默认路由

                        Database information for ISIS(1)
                        --------------------------------

                          Level-1 Link State Database

LSPID                 Seq Num      Checksum      Holdtime      Length  ATT/P/OL
-------------------------------------------------------------------------------
R1.00-00*             0x00000006   0x269e        765           88      0/0/0   
R1.01-00*             0x00000002   0xb3d8        765           55      0/0/0   
R2.00-00              0x00000009   0x3195        904           76      1/0/0   

Total LSP(s): 3
    *(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended), 
           ATT-Attached, P-Partition, OL-Overload

模拟故障

R2与R3之间的线路断掉。这时R1是否还能ping通R4?

[R2-GigabitEthernet0/0/1]shutdown #将R2与R3连接的端口down掉

这时,观察R1的LSDB发现R2并没有下放默认路由。

<R1>display isis lsdb

                        Database information for ISIS(1)
                        --------------------------------

                          Level-1 Link State Database

LSPID                 Seq Num      Checksum      Holdtime      Length  ATT/P/OL
-------------------------------------------------------------------------------
R1.00-00*             0x00000006   0x269e        576           88      0/0/0   
R1.01-00*             0x00000002   0xb3d8        576           55      0/0/0   
R2.00-00              0x0000000b   0xce84        1156          72      0/0/0   

Total LSP(s): 3
    *(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended), 
           ATT-Attached, P-Partition, OL-Overload
由此可知如果R2连接骨干区域的链路发生故障,R2将不会再把自己产生的Level-1 LSP 的ATT位设置为1,而设置为 0。导致R1不能ping通R4。
现在R1 与R4之间是不通的。为了解决这个问题,可以在R2上手动强制向R1发布缺省路由。默认只向Level-2 发布,需要加上Level-1关键字
[R2-isis-1]default-route-advertise level-1
如果R2 上没有默认路由,也可以加上 always , 变成 default-route-advertise always level-1(always 与 match default 只能使用一个)
这时观察R1路由表,发现R1上有了默认路由
<R1>dis ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 7        Routes : 7        

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

    0.0.0.0/0          ISIS-L1 15   10          D   192.168.12.2    GigabitEthernet0/0/0
    .......
这时再进一步测试,当断开R2与R4之间的连接后,R1是否还能收到此默认路由。

[R2-GigabitEthernet0/0/2]shutdown #将R2与R3连接线路断开

这时观察R1路由表,发现还具有该默认路由,R1还会将数据包丢给R2。
<R1>dis ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 7        Routes : 7        

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

   0.0.0.0/0         ISIS-L1 15   10          D   192.168.12.2    GigabitEthernet0/0/0
在R1 上依然有缺省路由。

默认情况下,路由器使用default-route-advertise 命令发布缺省路由,无论自己是否有,都向邻接关系路由器发布。
但这样是不正确的,需要改进,将自己有缺省路由时,才发布

[R2-isis-1]default-route-advertise match default level-1
配置之后,R1 不再有缺省路由。

再把R2 R4之间链路打开

[R2-GigabitEthernet0/0/2]undo shutdown
R1上又有缺省路由了。

这时R3与R4还不能正常通信,因为R3处在Level-2类型。刚刚只是发布了Level-1的缺省路由。
因此需要手动向R3 发布缺省路由
打开R2 的g0/0/1
R2:

[R2-GigabitEthernet0/0/1] undo shutdown
同时向R1 R3 发布缺省路由(推荐ISIS以这种方式发布缺省路由)
[R2-isis-1]default-route-advertise match default level-1-2 

下面来回顾下各类路由协议推荐的发布缺省路由的方式:

RIP
default-route originate

OSPF
default-route-advertise always

IS-IS
default-route-advertise match default level-1-2

最后修改:2020 年 11 月 18 日 01 : 37 PM
如果觉得我的文章对你有用,请随意赞赏