1、OSPF的Router ID选举规则
a)如果通过命令设置了routerID,则选择此作为ROUTER ID
b)如果没通过命令设置routerID,若有loopback地址,则选择最大的loopback地址作为router ID;若无loopback地址,则选择其他接口中地址最大的作为router ID。
2、OSPF的router ID刷新规则
a)当且仅当被选举为routerID的接口的地址被删除或修改,才会触发选举过程,此过程需要reset OSPF进程才生效;
b)被选择的接口状态改变、新配置更大的loopback或其他接口地址,均不会导致router id重新选举;
c)router ID不可以是0.0.0.0 或 255.255.255.255
3、router ID作用
a)作为OSPF区域中本路由器的唯一标识;
b)DR、BDR选举中,在优先级相同的时候,router ID大的选举为DR。
4、router ID冲突问题
1)拓扑,见附件
2)场景1:R1和R2均在area0,R1/R2具有相同的routerID
【R1】
ospf1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.1.1 0.0.0.0
network 10.1.12.1 0.0.0.0
【R2】
ospf1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.12.2 0.0.0.0
network 10.1.2.2 0.0.0.0
结果:R1、R2无法建立OSPF邻居关系;
分析:R1发送hello包后,R2收到R1的hello包,发现routerID与自己的router ID一致,邻居无法建立。
3)场景2:R1、R2和R3处于area0,R2、R3具有相同的routerID
【R1】
ospf1 router-id 1.1.1.1
area 0.0.0.0
network 10.1.1.1 0.0.0.0
network 10.1.12.1 0.0.0.0
network 10.1.13.1 0.0.0.0
【R2】
ospf1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.12.2 0.0.0.0
network 10.1.2.2 0.0.0.0
【R3】
ospf1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.3.3 0.0.0.0
network 10.1.13.3 0.0.0.0
结果:
a)R1和R3、R1和R2能分别建立OSPF邻居;
b)R2能学到R1或R3路由,但路由会不停地抖动,一会儿学到R1的,一会儿学到R3;
c)R1、R3无法互相学到路由。
分析:
a)OSPF是以{type、ls id、advrouter}来标识LSA,以(age、seq num、checksum)标识一个LSA实例;
b)R3发送的LSA,R1泛洪,R2收到该LSA;
c)R2检查收到的LSA,发现{type、ls id、adv router}与自己一致,就认为是自己始发的LSA;
e)R2比较(age、seq num、checksum),发现该LSA比自身存的数据库更新,则seq num+1,回复LSA。
f)R1收到R2的LSA后,发现{type、ls id、adv router}与自己数据库的R3的一致,认为是一条LSA;再比较(age、seq num、checksum),发现seqnum更大,LSA更加新,则泛洪。
g)R3收到R1转发的R2的LSA,{type、ls id、advrouter}一样,(age、seq num、checksum)更新,跟R2一样的超过。
h)R3/R1/R2之间不停地传递LSA,不断循环。
故:R1一会儿学到R3的路由,一会儿学到R1的路由。R1、R3之间无法互相学到路由。
华为模拟器实验表明:这种情况循环多次后,R1/R3会重新选举一个routerID发起OSPF邻居建立过程,邻居建立后,R1能学到R2、R3的路由。
4)场景3:R1、R2为area0,R4为area1,R1、R4具有相同的routerID
【R1】
ospf1 router-id 1.1.1.1
area 0.0.0.0
network 10.1.1.1 0.0.0.0
network 10.1.12.1 0.0.0.0
network 10.1.13.1 0.0.0.0
【R2】
ospf1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.12.2 0.0.0.0
network 10.1.2.2 0.0.0.0
area 0.0.0.1
network 10.1.24.2 0.0.0.0
【R4】
ospf1 router-id 1.1.1.1
area 0.0.0.1
network 10.1.4.4 0.0.0.0
network 10.1.24.4 0.0.0.0
结果:
a)area0,R1能与R2建立邻居关系;
b)area1,R1能与R4建立邻居关系。
c)R1、R4能互相学到路由。
分析:
a)R1发送LSA,R2收到后,向area1发送3类LSA:LS ID为路由前缀,R2为ABR,adv router为R2的router ID
b)R4收到3类LSA后,发现是新的router id,与自己不同,纳入LSDB,并提交路由表。
c)R4发送的LSA,R2、R1相同处理,均能学到路由。