今天做实验的时候偶然碰见这么一种情况, OSPF 的网络类型不一致可以形成邻居关系,但是不能学习路由。联想到 ISIS ,如果他们的网络类型不一致的话,那么会发送不同类型的 hello 报文,这样邻居关系是无法建立起来的。这到是跟 OSPF 各有千秋了,原来一直以为 ISIS 的邻居建立很大条的, hello 时间间隔死亡时间间隔不一致也可以建立,开启区域认证的时候,就算区域认证不通过邻居关系一样可以建立,相对来说 OSPF 就严格很多了,但是不行今天也发现了一个 OSPF 大条的地方。呵呵
拓扑如下,很简单。
 

R1 R2 拿以太口相连,然后各开一个 loop 口宣告进骨干区域。然后试着去修改以太口的网络类型,看看会有什么样的影响。
默认情况下的以太口的链路类型是广播,网络类型也是广播。
R1#sh ip os in fa0/0
FastEthernet0/0 is up, line protocol is up
 Internet Address 10.1.1.1/24, Area 0
 Process ID 10, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
 Transmit Delay is 1 sec, State BDR, Priority 1
 Designated Router (ID) 2.2.2.2, Interface address 10.1.1.2
 Backup Designated router (ID) 1.1.1.1, Interface address 10.1.1.1
 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:03
 Index 1/1, flood queue length 0
 Next 0x0(0)/0x0(0)
 Last flood scan length is 1, maximum is 1
 Last flood scan time is 0 msec, maximum is 0 msec
 Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 2.2.2.2 (Designated Router)
 Suppress hello for 0 neighbor(s)
 
看看邻居关系建立的怎么样?
R1#sh ip os neighbor
 
Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   FULL/DR         00:00:33    10.1.1.2        FastEthernet0/0
正常建立并选举 R2 DR 。因为广播型网络是要选举 DR 的。
看看路由表
R1#sh ip rou os
     2.0.0.0/24 is subnetted, 1 subnets
O       2.2.2.0 [110/2] via 10.1.1.2, 00:01:54, FastEthernet0/0
 
R2#sh ip rou os
     1.0.0.0/24 is subnetted, 1 subnets
O       1.1.1.0 [110/2] via 10.1.1.1, 00:02:12, FastEthernet0/0
 
都学习到了。
下面,我们把 R1 fa0/0 接口的网络类型修改为点到点
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#in
*Mar 1 00:37:59.815: %SYS-5-CONFIG_I: Configured from console by console
R1(config)#in fa0/0
R1(config-if)#ip os net p
R1(config-if)#ip os net point-to-p
R1(config-if)#ip os net point-to-point
R1(config-if)#
*Mar 1 00:38:05.975: %OSPF-5-ADJCHG: Process 10, Nbr 2.2.2.2 on FastEthernet0/0 from FULL to DOWN, Neighbor Down: Interface down or detached
*Mar 1 00:38:06.043: %OSPF-5-ADJCHG: Process 10, Nbr 2.2.2.2 on FastEthernet0/0 from LOADING to FULL, Loading Done
中间邻居有一个重建的过程,,但是速度很快。
接着后面查看邻居表
R1(config-if)#do sh ip os nei
 
Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   FULL/ -        00:00:38    10.1.1.2        FastEthernet0/0
也是正常邻接关系。
看看 R2 的邻居表。
R2#sh ip os neighbor
 
Neighbor ID    Pri   State           Dead Time   Address         Interface
1.1.1.1           1   FULL/BDR        00:00:33    10.1.1.1        FastEthernet0/0
上下比较可以发现一点不同的地方。
 
R1 的邻居表中没有 DR 或者 BDR 的条目,优先级也是 0 R2 却有。这个不难理解,因为我们把 R1 fa0/0 接口修改成了点到点了,所以不会选举 DR
邻居关系没有问题,再来看看路由表。
R1#sh ip rou os
 
R1#
R2#sh ip rou os
 
R2#
都是空的。没有学到对方的网段。
看看数据库里面的信息。
 
R1#sh ip os database
 
            OSPF Router with ID (1.1.1.1) (Process ID 10)
 
                Router Link States (Area 0)
 
Link ID         ADV Router      Age         Seq#       Checksum Link count
1.1.1.1         1.1.1.1         7           0x80000002 0x00FBE8 3
2.2.2.2         2.2.2.2         7           0x80000002 0x00638B 2
 
                Net Link States (Area 0)
 
Link ID         ADV Router      Age         Seq#       Checksum
10.1.1.2        2.2.2.2         8           0x80000001 0x002CEB
 
R2#sh ip os database
 
            OSPF Router with ID (2.2.2.2) (Process ID 10)
 
                Router Link States (Area 0)
 
Link ID         ADV Router      Age         Seq#       Checksum Link count
1.1.1.1         1.1.1.1         37          0x80000001 0x00CF3A 2
2.2.2.2         2.2.2.2         2           0x80000002 0x00638B 2
 
                Net Link States (Area 0)
 
Link ID         ADV Router      Age         Seq#       Checksum
10.1.1.2        2.2.2.2         2           0x80000001 0x002CEB
 
数据库里面有 1.1.1.1/24 2.2.2.0/24 网段的信息,但是就是没有装进路由表。
再来看看详细的信息。
R1#sh ip os da router
 
            OSPF Router with ID (1.1.1.1) (Process ID 10)
 
                Router Link States (Area 0)
 
 LS age: 172
 Options: (No TOS-capability, DC)
 LS Type: Router Links
 Link State ID: 1.1.1.1
 Advertising Router: 1.1.1.1
 LS Seq Number: 80000002
 Checksum: 0xFBE8
 Length: 60
 Number of Links: 3
 
    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 2.2.2.2
     (Link Data) Router Interface address: 10.1.1.1
      Number of TOS metrics: 0
       TOS 0 Metrics: 1
 
    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 10.1.1.0
     (Link Data) Network Mask: 255.255.255.0
      Number of TOS metrics: 0
       TOS 0 Metrics: 1
 
    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 1.1.1.0
     (Link Data) Network Mask: 255.255.255.0
      Number of TOS metrics: 0
       TOS 0 Metrics: 1
 
 
  Adv Router is not-reachable
 LS age: 174
 Options: (No TOS-capability, DC)
 LS Type: Router Links
 Link State ID: 2.2.2.2
 Advertising Router: 2.2.2.2
 LS Seq Number: 80000002
 Checksum: 0x638B
 Length: 48
 Number of Links: 2
 
    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 2.2.2.0
     (Link Data) Network Mask: 255.255.255.0
      Number of TOS metrics: 0
       TOS 0 Metrics: 1
 
    Link connected to: a Transit Network
     (Link ID) Designated Router address: 10.1.1.2
     (Link Data) Router Interface address: 10.1.1.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 1
注意上面的一行字: Adv Router is not-reachable ,邻居不可达!
看来这才是导致无法不把数据库中的条目装进路由里的原因了。
以后要记住了:网络类型需要一致。在 NBMA 网络环境下运行 ISIS 中,接口的链路类型不一致会也会导致邻居关系无法正常建立的。