1:原理概述:
一些动态路由协议要求使用Router-ID作为路由器的身份标示,如果在启动这些路由协议时没有指定Router-ID,则路由进程可能无法正常启动。
Router-ID选举规则为,如果通过Router-ID命令配置了Router-ID,则按照配置结果设置。在没有配置Router-ID的情况下,如果存在配置了IP地址的Loopback接口,则选择Loopback接口地址中最大的地址作为Router-ID;如果没有已配置IP地址的Loopback接口,则从其他接口的IP地址中选择最大的地址作为Router-ID(不考虑接口的UpDown状态).
当且仅当被选为Router-ID的接口IP地址被删除/修改,才触发重新选择过程,其他情况(例如接口处于DOWN状态;已经选取了一个非Loopback接口地址后又配置了一个Loopback接口地址;配置了一个更大的接口地址等)不触发重新选择的过程。
Router-ID改变之后,各协议需要通过手工执行reset命令才会重新选取新的Router-ID。
2:实验目的:
理解Router-ID的选举规则
掌握OSPF手动配置Router-ID的方法
理解OSPF中Router-ID必须唯一的意义
3:连接拓扑图,开始实验:
4:我们首先配置好接口和OSPF:
AR1:
interface GigabitEthernet0/0/0
ip address 10.0.1.254 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.0.12.1 255.255.255.0
#
interface NULL0
#
ospf 1
area 0.0.0.0
network 10.0.0.0 0.0.0.255
network 10.0.1.0 0.0.0.255
network 10.0.12.0 0.0.0.255
AR2:
interface GigabitEthernet0/0/0
ip address 10.0.12.254 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.0.23.254 255.255.255.0
#
interface GigabitEthernet2/0/0
ip address 10.0.24.1 255.255.255.0
#
interface NULL0
#
ospf 1
area 0.0.0.0
network 10.0.0.0 0.0.0.255
network 10.0.12.0 0.0.0.255
network 10.0.23.0 0.0.0.255
network 10.0.24.0 0.0.0.255
AR3:
interface GigabitEthernet0/0/0
ip address 10.0.23.1 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.0.2.254 255.255.255.0
#
interface NULL0
#
ospf 1
area 0.0.0.0
network 10.0.0.0 0.0.0.255
network 10.0.2.0 0.0.0.255
network 10.0.23.0 0.0.0.255
AR4:
interface GigabitEthernet0/0/0
ip address 10.0.24.254 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.0.3.254 255.255.255.0
#
interface NULL0
#
ospf 1
area 0.0.0.0
network 10.0.3.0 0.0.0.255
network 10.0.24.0 0.0.0.255
配置完成后,我们查看各个路由器的路由表:
AR1:
AR2:
AR3:
AR4:
我们验证网络的连通性:
PC1与PC2和PC3互通;
我们开始下一步:
5:我们验证Router-ID选举规则:
在进行基础配置之前,在AR1上使用display router id 命令来查看当前设备上
的Router-ID
因为我们刚刚配置了接口。所以我们查看Router-ID是有信息的;
如果我们没有配置的话,它是没有的,
我们查看AR1的接口信息:
我们接下来在AR1上配置环回端口:
我们查看当前设备的router id 可以观察到,当前端口router id为10.0.1.254,而不是loopback环回接口地址1.1.1.1,这是为什么呢?
原因是接口配置顺序会影响Router-ID的选举,因为设备上第一次配置的物理接口的地址,该动作会触发Router-ID的选举,而此刻,设备上也有且仅有该物理地址,所以该地址便会Router-ID所使用,后续即使再配置了环回接口地址也不会使用。同理,如果第一次配置的是其他接口物理接口的地址,或者是环回接口的地址,都会被Router-ID所使用;在AR1上删除G0/0/0接口的IP地址,并再次查看此时设备的Router-ID
我们再次查看AR1的Router-ID
我们发现删除当前Router-ID所使用的IP地址时。便会触发重新选举,按照环回接口优先的规则选择用1.1.1.1作为Router-ID;
我们也可以采用手动配置的方式强制指定AR1的Router-ID为1.1.1.1,这样配置的优点是,即使该地址现在已经不是AR1的任何接口地址,也可以修改为Router-ID(删除该环回接口也不会触发重新选举,验证省略)
该信息表示Router-ID已经被修改,请重启相应的路由协议进行更新。即当前全局配置的Router-ID已经被更新,如果目前设备上已经运行了OSPF协议,需要重置OSPF协议进程或者重启整合路由器才可以使得OSPF协议中Router-ID也同步更新使用该新的全局Router-ID,需要使用reset ospf process 命令来重置OSPF协议进程;
6:我在开始的时候就做了基础配置,实现了全网互通,接下来我们给其他三个路由器配置上OSPF协议的私有Router-ID,如果不配置,则默认使用全局下的Router-ID。
注意分区设备全局下的Router-ID和路由协议的Router-ID,因为环回接口是逻辑接口比物理接口更加稳定。在对网络操作时,网络管理员有可能误操作导致物理接口地址删除,或者改动,而环回接口则一般不会去改动;
AR1:
AR2:
AR3:
AR4:
我们将每台路由器的Router-id都配置了一遍,也都查看了一遍,目的是理解OSPF的Router-ID
我们查看各个路由器的OSPF的邻居关系:
AR1:
AR2:
AR3:
AR4:
我们现在的截图是为了下面的实验,用来做对比:
7:我们现在修改AR2的Router-ID为3.3.3.3,即AR3的Router-ID,使AR3和AR2的Router-ID重叠,并重置协议进程使该配置生效;
待协议收敛后,再次查看AR2的OSPF的邻居信息;
可以观察到,AR2和AR3的邻居关系消失;
此时,我们测试其连通性;
网络已经发生故障,无法正常通信。验证了OSPF建立了直连邻居关系时,Router-ID一定不能重叠。
那么如果OSPF非直连邻居Router-ID重叠会产生什么现象,我们不用想也知道,肯定是不通;(此处实验我们就省略喽)
实验结论:
OSPF协议的Router-ID务必要在整个路由选择域内保持唯一;
知识拓展:
在OSPF路由中会使用router id来标识路由器的序列号,竞选DR和BDR根据router-id的大小进行。
Loopback口叫回环口,是一个虚拟的接口,如果路由器不关机,即使物理接口全都down了,loopback口还是会存在的,一般loopback口是用来检测和管理主机等,因为它在正常的情况下是非常稳定的。
Router-ID在OSPF中,起到了一个表明身份的作用,不同的router-id表明了一个OSPF进程中不同路由器的身份。一般如果不手工指定的话,会默认用loopback口来作为router-id,就如同我前面说的,因为loopback口非常稳定,不会受链路的up/down的影响。
如果loopback口没有地址,会用物理接口上最大的IP地址作为router-id,如果连物理接口都没有,路由器会提示手工指定一个router-id.
这篇博文,是为了下一篇博文在OSPF中DR和BDR如何选举而做铺垫的,所以请耐心看完这篇博文的小白们,敬请期待!
今天就说到这里吧!感谢各位的阅读,写的不好的地方,希望各位多多包涵,您的鼓励就是我写博客前进的动力!
备注:如有错误,请谅解!
此文章为本人学习笔记,仅供参考!如有重复!!!请联系本人!