设为首页收藏本站language 语言切换
查看: 3284|回复: 2
收起左侧

[分享] OSPF的router ID详解

[复制链接]
 成长值: 63385
发表于 2022-6-27 10:06:59 | 显示全部楼层 |阅读模式
在学习数通OSPF的时候,一般情况下我们学习的第一个基础概念就是ROUTER ID。

那么ROUTER ID有什么作用?什么特点呢?在整个OSPF的运行过程中起什么作用呢?

以上问题就是我们本期要了解的内容:

一、概述

OSPF动态路由协议要求使用router id作为路由器的身份标示,如果在启动这些路由协议时没有指定router id,则路由进程可能无法正常启动。因此必须给每一台OSPF路由器定义一个身份,就相当于人的身份证号,这就是router id。

router id在网络中不可以重复,否则路由器收到的链路状态,就无法确定发起者的身份,也就无法通过链路状态信息确定网络位置,OSPF路由器发出的链路状态都会写上自己的router id,可以理解为该链路状态的签名,不同路由器产生的链路状态,签名绝不会相同。

OSPF的router id所显示的形式是 x.x.x.x ,格式与IP地址相同,但实际上它并不是一个IP地址,而是一个名字,只不过长相和IP地址一样罢了。

本文就OSPF中的router id做一些说明。

二、OSPF中的router id作用

1、作为OSPF区域中本路由器的唯一标识;
2、DR、BDR选举中,在优先级相同的时候,router id大的选举为DR。
3 、DD报文协商主从关系,相比较router id大的为主路由器。
4、 LSA中包含产生者的router id 是标识一个LSA的重要参数。

三、OSPF中的router id选举

router id(router identifier,路由器标识符),用于在一个OSPF域中唯一地标识一台路由器。
router id的设定可以通过手工配置的方式,或使用系统自动配置的方式。

注:router id不可以是0.0.0.0 或 255.255.255.255。

在OSPF中的router id选举规则如下:

1、优选手工配置的router id;
①OSPF进程手工配置的router id具有最高优先级
②在全局模式下配置的公用router id的优先级仅次于直接给OSPF进程手工配置router id,即它具有第二优先级
2、在没有手工配置的前提下,优选loopback接口地址中最大的地址作为router id;
3、在没有配置loopback接口地址的前提下,优选其他接口的IP地址中选择最大的地址作为router id (不考虑接口的Up/Down状态)。

实验验证,组图如下:


                               
登录/注册后可看大图

①仅初始配置设备名称(未配置接口IP)后,查看设备的router id,以R1为例:


                               
登录/注册后可看大图

可以看到,没配置任何接口前,router id为空。
②之后配置好R1的各个物理接口,然后查看接口状态:
[R1]display ip interface brief


                               
登录/注册后可看大图

再次查看router id:

                               
登录/注册后可看大图

可以看到,此时R1的router id优选三个物理接口里IP地址最大者。
③配置loopback0接口地址

                               
登录/注册后可看大图

再次查看router id:


                               
登录/注册后可看大图

为什么不是环回接口地址?原因是接口顺序的配置会影响router id的选取,因为第一次配置物理接口地址时就会触发router id选举。此时,删除g0/0/2的接口配置,然后再查看router id:
[R1]int g 0/0/2
[R1-GigabitEthernet0/0/2]undo ip address再次查看router id:


                               
登录/注册后可看大图

可以看到,R1的Router id已经变为1.1.1.1,因为router id被删除之后会重新出发选举,此时环回地址的优先级更高;这里再把R1的g0/0/2接口IP地址配置上[R1]int g 0/0/2[R1-GigabitEthernet0/0/2]ip address 192.168.0.1 24再次查看router id

                               
登录/注册后可看大图

R1的router id仍为1.1.1.1。
④在R2上配置以下命令
[R2]inter LoopBack 0
[R2-LoopBack0]ip address 2.2.2.2 32
[R2-LoopBack0]quit
[R2]interface LoopBack 1
[R2-LoopBack1]ip address 20.20.20.20 32
[R2-LoopBack1]quit
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip address 10.0.0.2 30
[R2-GigabitEthernet0/0/0]interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1]ip address 20.0.0.1 30之后查看R2的router id


                               
登录/注册后可看大图

为什么不是最大的环回接口地址?原因是接口顺序的配置会影响router id的选取,因为第一次配置环回接口地址时就会触发router id选举。此时,删除loopback0的接口配置,然后再查看router id:


                               
登录/注册后可看大图

再次配置loopback0的接口IP,R2的router id没有变化。⑤在R3上手工配置全局router id


                               
登录/注册后可看大图
5.5.5.5在本例中并无出现,可见router id是不关联IP地址的,只是作为身份标示而已。
再配置其他接口地址
[R3]interface LoopBack 0
[R3-LoopBack0]ip address 3.3.3.3 32
[R3-LoopBack0]quit
[R3]interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1]ip address 20.0.0.2 30
[R3-GigabitEthernet0/0/1]quit
[R3]interface GigabitEthernet 0/0/3
[R3-GigabitEthernet0/0/3]ip address 30.0.0.2 30
[R3-GigabitEthernet0/0/3]quit
再次查看router id

                               
登录/注册后可看大图
R3的router id没有变化。
⑥在R1、R2、R3上配置OSPF
[R1]ospf[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 192.168.0.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.0.0.0 0.0.0.3
[R1-ospf-1-area-0.0.0.0]network 30.0.0.0 0.0.0.3
[R2]ospf[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 20.20.20.20 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 10.0.0.0 0.0.0.3
[R2-ospf-1-area-0.0.0.0]network 20.0.0.0 0.0.0.3
[R3]ospf[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 20.0.0.0 0.0.0.3
[R3-ospf-1-area-0.0.0.0]network 30.0.0.0 0.0.0.3
查看3台路由器的OSPF进程中的router id

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

可以看出,OSPF进程1里选择的router id是按照优先顺序选取的。
⑦在R3上配置命令


                               
登录/注册后可看大图

提示信息中显示新配置router id需要复位OSPF进程后才能生效。没有复位OSPF进程前查看

                               
登录/注册后可看大图
复位OSPF进程后查看

                               
登录/注册后可看大图

此时R3的router id已变成手工配置的OSPF进程1的6.6.6.6(优于全局router id 5.5.5.5)。

四OSPF的router id刷新规则

1、当且仅当被选举为router id的接口的地址被删除或修改,才会触发选举过程,此过程需要reset OSPF进程才生效;

2、被选择的接口状态改变、新配置更大的loopback或其他接口地址,均不会导致router id重新选举;

3、router id不可以是0.0.0.0 或 255.255.255.255

4、 路由器的全局router id选择后,不会发生改变,因为此ID由路由器管理,它的存在与OSPF或是BGP没有关系。

五OSPF中router id的冲突

在本实验中,把R2的router id改为1.1.1.1,即与R1的router id一致。
[R1]ospf 1 router id 1.1.1.1Info: The configuration succeeded. You need to restart the OSPF process to validate the new router id.

[R1]quit<R1>reset ospf 1 processWarning: The OSPF process will be reset. Continue? [Y/N]:y
实验结果:①在OSPF启动后在R1上执行命令:
[R1]display ospf error

                               
登录/注册后可看大图
最后一行显示设备统计出因router id混乱而导致的ospf error。

②在R3上观察全局路由表和OSPF路由表,发现R3能学习到

192.168.0.0/24网段路由,但是下一跳地址和出接口会不停地抖动,一会是R1,一会是R2。

③R1与R2无法建立OSPF邻居关系(R1发送hello包后,R2收到R1的hello包,发现routerID与自己的router id一致,邻居无法建立。)。

以上演示的是三台OSPF路由器在同一个区域内的router id重复导致的问题现象,那么如果是不同区域的OSPF路由器router id重复会如何呢?大家可以自行做实验看看结果。

以上的内容,就是ROUTRT ID在OSPF协议中运行时的工作特点,以及需要我们清楚的现象。

发表于 2022-6-27 11:23:15 | 显示全部楼层
感谢楼主的分享
沙发 2022-6-27 11:23:15 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2022-6-27 11:37:19 | 显示全部楼层
好东西谢谢楼主分享
板凳 2022-6-27 11:37:19 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-1 16:50 , Processed in 0.052960 second(s), 12 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表