本文内容转载来源于朱仕耿的个人博客
关于华为数通产品的OSPF Router-ID缺省值,有不少人存在疑惑,因为大家经过测试后发现,其现象与当前产品手册上所描述的内容存在细微差异。
故此简单梳理一下:
OSPF Router-ID用于在OSPF域中唯一地标识一台OSPF路由器,从OSPF网络设计的角度,我们要求全OSPF域内,禁止出现两台路由器拥有相同RouterID的情况。
Router-ID的格式与IPv4地址的格式相同,例如192.168.1.1。Router-ID的设定可以通过手工配置的方式进行,或者通过设备自动选取的方式进行。当然,在实际网络部署中,强烈建议网络管理员手工配置OSPF的Router-ID,因为这关系到协议的稳定性。一般情况下,我们会将路由器的Router-ID指定为该设备上的某个Loopback接口地址。
在华为数通产品上,当OSPF进程被创建时必须为其指定Router-ID,如果用户没有手工指定Router-ID,那么设备将自动使用全局Router-ID作为OSPF进程的Router-ID。公网实例的全局Router-ID可使用命令display router id查看。
设备的全局Router-ID的选择,遵循如下顺序:
-
优先从Loopback地址中选择最大的IP地址作为Router-ID。
-
如果没有配置Loopback接口,则在接口地址中选取最大的IP地址作为Router-ID。
当一台设备完成初始化后,如果设备没有任何接口地址,那么设备上所配置的第一个IP地址(无论是Loopback接口地址,还是物理接口IP地址)都会无条件成为当前的全局Router-ID(因为当前只有一个IP地址,当然它最优)。并且即使后续出现了其他更大的接口地址,该全局Router-ID也不会变更。除非用户将Router-ID对应的地址在接口上删除,全局Router-ID才会重新选择,此时,设备根据上文所描述的顺序进行Router-ID选择。
当OSPF进程被创建时,如上文所述,如果用户没有手工指定进程的Router-ID,那么设备将使用全局Router-ID作为OSPF进程Router-ID,在OSPF确认进程Router-ID后,如果全局Router-ID发生变更,OSPF进程的Router-ID不会随之变更,除非用户将OSPF进程重置(reset ospf process),经过测试验证,发现重置进程后,OSPF进程将Router-ID更新为当前的全局Router-ID。