router-ID一般取路由器loopback口的最大IP地址,若没有loopback,则取活动接口的最大IP。
那么router-ID具体有哪些用呢?
作为路由器的唯一标识;
可以用于DR、BDR选举。
OSPF的RouterID是什么?它所显示的形式是 x.x.x.x ,格式与IP地址相同,但实际上它并不是一个IP地址,确切点说,应该是一个名字。给启用了OSPF协议的路由器的名字。格式虽然是IP地址形式,但是可以在255.255.255.255以内随意设置,比如:0.0.0.1 ; 255.255.255.255。 这些在IP地址中都是不能配置的,在这里却可以设置成功。
下面以一个实验例子来说明一下:
很简单的拓扑,环境搭建我就不说了,配置好IP地址测试完直连没问题以后,配置OSPF,并设置RouterID。
A(config)#router ospf 100A(config-router)#router-id 0.0.0.1A(config-router)#network 10.1.1.1 0.0.0.0 area 0B(config)#router ospf 100B(config-router)#network 10.1.1.2 0.0.0.0 area 0B(config-router)#network 192.168.1.2 0.0.0.0 area 0C(config)#router ospf 100C(config-router)#router-id 255.255.255.255C(config-router)#network 192.168.1.3 0.0.0.0 area 0
OSPF的配置不多说了,在A上我们把RoutrID设置为0.0.0.1;在B上我们不做RouterID设置;在C上我们设置RouterID为255.255.255.255。等OSPF邻居建立完毕,可以使用命令#show ip ospf neighbor查看OSPF的邻居表。
A#show ip os neighbor Neighbor ID Pri State Dead Time Address Interface192.168.1.2 0 FULL/ - 00:00:36 10.1.1.2 Serial1/0B#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface255.255.255.255 0 FULL/ - 00:00:37 192.168.1.3 Serial1/10.0.0.1 0 FULL/ - 00:00:30 10.1.1.1 Serial1/0
可以在B上看到邻居A的名字叫做0.0.0.1,邻居C的名字叫做255.255.255.255;也可以在A上看到没有做RouterID配置的邻居B名字就叫192.168.1.2 ,采用的是B上的一个接口地址。这就是为什么这个名字要设置成IP地址格式了。为了保证一些懒人不给他起名,他也能够自己找个合适的名字,呵呵。
在不指明RouterID的情况下,路由器会自动进行选举,选举规则如下:
1.在多loopback口的OSPF路由器上,以最大的loopback口地址作为Router-id。
2.在只有一个loopback口的OSPF路由器上,选择loopback口地址作为Router-id。
3.没loopback口的OSPF路由器,选择物理接口上IP地址最大的作为Router-id。
更多常见问题,敬请访问php中文网。