-
如图所示配置各设备基本信息,路由器接口主机号若未标明则对应路由器编号
R1:
<Huawei>sys
[Huawei]undo info-center en
[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 10.0.1.254 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip address 10.0.12.1 24
[R1-GigabitEthernet0/0/1]int loopback 0
[R1-LoopBack0]ip address 1.1.1.1 32
R2:
<Huawei>SYS
[Huawei]undo info-center en
[Huawei]sysname R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 10.0.12.2 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 10.0.23.2 24
[R2-GigabitEthernet0/0/1]int g0/0/2
[R2-GigabitEthernet0/0/2]ip address 10.0.24.2 24
[R2-GigabitEthernet0/0/2]int loopback 0
[R2-LoopBack0]ip address 2.2.2.2 32
R3:
<Huawei>sys
[Huawei]undo info-center en
[Huawei]sysname R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address 10.0.23.3 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip address 10.0.2.254 24
[R3-GigabitEthernet0/0/1]int loopback 0
[R3-LoopBack0]ip address 3.3.3.3 32
R4:
<Huawei>sys
[Huawei]undo info-center en
[Huawei]sysname R4
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip address 10.0.24.4 24
[R4-GigabitEthernet0/0/0]int g0/0/1
[R4-GigabitEthernet0/0/1]ip address 10.0.3.254 24
[R4-GigabitEthernet0/0/1]int loopback 0
[R4-LoopBack0]ip address 4.4.4.4 32
-
查看设备R2
的Router-ID
信息,观察其是否如我们先前设想一致,由环回接口担任Router-ID
这是为什么呢?
原因是接口配置顺序会影响Router-ID
的选举,当设备第一次对接口IP进行配置时便会触发Router-ID
选举,而此时设备有有且仅有这一个IP
地址,所以该地址便被选来作为设备Router-ID
,由于选举已经完成,因此即使后面配置了优先级更高的环回接口也无济于事,除非开启重新选举Router-ID
或原先被选为Router-ID
的地址消失。
我们取消R2
的g0/0/0
接口配置的地址,看看Router-ID
是否会变成环回接口地址
注:g0/0/0
的IP
地址记得重新配置,不然后边OSPF
无法连通全网
-
我们也可以采取手动配置方式强制指定路由器的Router-ID
,这样配置后,即使该地址现在已经不是路由器任何接口的地址,仍保持其Router-ID
的地位,不会触发重新选举
[R2]router id 2.2.2.2
一般建议采用环回接口地址作为路由协议的Router-ID
,因为环回接口是逻辑接口,比物理接口更加稳定。在对网络操作时,网络管理员有可能误操作导致物理接口地址删除或改动,而环回接口一般不会去改动。
-
在所有路由器上配置OSPF
协议,并都运行在区域0
内。使用ospf router-id
命令来配置OSPF
协议私有Router-ID
,如果不配置,则默认使用全局下的Router-ID
R1:
[R1]ospf router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.0.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
R2:
[R2]ospf router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 10.0.23.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 10.0.24.0 0.0.0.255
R3:
[R3]ospf router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 10.0.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 10.0.23.0 0.0.0.255
R4:
[R4]ospf router-id 4.4.4.4
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 10.0.3.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 10.0.24.0 0.0.0.255
完成此设置后各PC
应当能够相互ping
通,查看当下R2
的OSPF
邻居信息
-
我们手动将R2
的Router-ID
修改为3.3.3.3
,看看会发生什么
此时PC1
与PC2
无法ping
通,说明网络已经发生故障,无法正常通信。验证了OSPF
建立直连邻居关系时,Router-ID
一定不能重叠
-
那么OSPF
非直连邻居Router-ID
重叠又会发生什么呢?我们将R2
的OSPF
私有Router-ID
改回去,同时将R4
私有OSPF
的Router-ID
改为3.3.3.3
R2:
[R2]ospf router-id 2.2.2.2
[R2-ospf-1]q
[R2]q
<R2>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
R4:
[R4]ospf router-id 3.3.3.3
[R4-ospf-1]q
[R4]q
<R4>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
查看R2
的邻居表
此时虽然邻居关系正常了,但是通信依旧无法进行。
这是因为R2认为是同一个OSPF邻居,但是链路状态确认LSA又不一致,造成链路状态数据库发送错误,无法计算出正确的路由信息。
综上所述,OSPF协议的Router-ID务必要在整个路由选择域内保持唯一