一些动态路由协议要求使用Router-ID
作为路由器的身份标示,如果在启动这些路由协议时没有指定Router-ID
,则默认使用路由器全局下的路由管理Router-ID
,当路由器未配置任何IP
地址时,其Router-ID
为0.0.0.0
Router-ID
的选举规则为:
- 如果通过
Router-ID
命令配置了Router-ID
,则按照配置结果设置 - 如果存在配置了
IP
地址的Loopback
接口,则选择Loopback
接口地址中最大的地址作为Router-ID
- 从其他接口的
IP
地址中选择最大的地址作为Router-ID
【不考虑接口的Up/Down
情况】
当且仅当被选为Router-ID
的接口IP地址被删除/修改,才触发重新选择过程
Router-ID
改变之后,各协议需要通过手工执行reset
命令才会重新选取新的Router-ID
实验目的
- 理解
Router-ID
的选举规则 - 掌握
OSPF
手动配置Router-ID
的方法 - 理解
OSPF
中Router-ID
必须唯一的意义
实验拓扑
实验步骤
-
如图所示配置各设备基本信息,路由器接口主机号若未标明则对应路由器编号
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 //强制指定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 //将环回接口设置为OSPF协议私有Router-ID [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务必要在整个路由选择域内保持唯一
本实验取自华为公司《HCNA网络技术实验指南》,此书对于新手学习计算机网络协议以及熟悉eNSP操作十分友好,强烈推荐!!!