ospf、eigrp、ldp协议中都有router-ID的概念

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 100
A(config-router)#router-id 0.0.0.1
A(config-router)#network 10.1.1.1 0.0.0.0 area 0


B(config)#router ospf 100
B(config-router)#network 10.1.1.2 0.0.0.0 area 0
B(config-router)#network 192.168.1.2 0.0.0.0 area 0


C(config)#router ospf 100
C(config-router)#router-id 255.255.255.255
C(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         Interface
192.168.1.2       0   FULL/  -        00:00:36    10.1.1.2        Serial1/0

B#show ip ospf neighbor 
Neighbor ID          Pri   State           Dead Time   Address         Interface
255.255.255.255   0   FULL/  -        00:00:37    192.168.1.3     Serial1/1
0.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.