指定路由器(DR):
一个网段上的其他路由器都和指定路由器(DR)构成邻接关系,而不是它们互相之间构成邻接关系。
备份指定路由器(BDR):
当DR出现问题,由BDR接手DR的工作,同时会在选举出一个BDR。
其他路由器我们叫做DR Other。
BDR首先会和DR形成邻接关系;
其它的路由器(DR Other)也要和BDR形成邻接关系。
这样做是有原因的,当DR出故障以后,BDR会成为新的DR。如果DR other不和BDR形成邻接关系,网络的流量就会中断时间很长,因为建立邻居关系是要花一定时间的,在这段时间内,网络的流量是不通的!
DR other和BDR形成邻接关系,当BDR切换为DR时,只需要发送LSA,向DR other告知新的DR即可,LSDB的内容基本上不变!所以能够节省时间,让BDR真正的起到备份的作用!
DR和BDR的选举规则:
具有最高OSPF优先级的路由器会被选为DR,优先级默认为1。
如果OSPF优先级相同,则具有最高Router ID的路由器会被选为DR。
Route-id选举规则:
手工配置最优先
当设备有loopback口时,路由器选取它所有loopback接口上数值最高的IP地址
如果没有loopback接口,就在所有物理端口中选取一个数值最高的IP地址
需求:(描述实验的要求)
R1 R2 R3属于OSPF 的骨干区域,R1 R2 R3位于10.1.1.0/24 网段.
R2 R3 R4 位于OSPF 的40.1.1.0/24 网段.
希望R2 作为 10.1.1.0 网段的DR, R3作为BDR;R3 作为40.1.1.0 网段的DR,R2 作为BDR.
拓扑:
分析难点以及完成的思路
按照要求配置,首先正常配置OSPF的基础命令,保证在修改DR和 BDR之前全网互通,配置完成之后再去测试连通性,全部测试完毕之后,修改我们的DR和BDR,查看我们修改之后的DR和BDR设备是否成功达到我们的要求
配置命令
R1 配置:
R1(config)#line console 0
R1(config-line)#exec-timeout 0 0
R1(config-line)#logging synchronous
R1(config-line)#exit
R1(config)#no ip do lo
R1(config)#interface loopback 0
R1(config-if)#ip address 1.1.1.1 255.255.255.255
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface f0/0
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R2配置:
R2(config)#line console 0
R2(config-line)#exec-timeout 0 0
R2(config-line)#logging synchronous
R2(config-line)#exit
R2(config)#no ip do lo
R2(config)#ho R2
R2(config)#interface loopback 0
R2(config-if)#ip address 2.2.2.2 255.255.255.255
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#interface f0/0
R2(config-if)#ip address 10.1.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#interface f0/1
R2(config-if)#ip address 40.1.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R3配置:
R3(config)#line console 0
R3(config-line)#exec-timeout 0 0
R3(config-line)#logging synchronous
R3(config-line)#exit
R3(config)#no ip do lo
R3(config)#ho R3
R3(config)#interface loopback 0
R3(config-if)#ip address 3.3.3.3 255.255.255.255
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#interface f0/0
R3(config-if)#ip address 10.1.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#interface f0/1
R3(config-if)#ip address 40.1.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R4配置:
R4(config)#line console 0
R4(config-line)#exec-timeout 0 0
R4(config-line)#logging synchronous
R4(config-line)#exit
R4(config)#no ip do lo
R4(config)#ho R4
R4(config)#interface loopback 0
R4(config-if)#ip address 4.4.4.4 255.255.255.255
R4(config-if)#no shutdown
R4(config-if)#exit
R4(config)#interface f0/1
R4(config-if)#ip address 40.1.1.4 255.255.255.0
R4(config-if)#no shutdown
R4(config-if)#exit
启用OSPF,默认情况下,OSPF进行DR选举时的优先级 默认为1,比较规则是 优先级越大越优先,优先级相同, router-id越大越优先。因此干预选举可以通过设置router-id和修改接口的优先级进行。在10.1.1.0 网段上,由于R1 R2 R3的优先级为默认的1 ,因此 优先级大的 R3(3.3.3.3),就成为DR,R2(2.2.2.2)成为BDR.但是要考虑,如果R1 R2率先接入网络,当DR BDR选举完成之后再接入R3的话,R3错过选举之后,就不能抢占DR BDR了。
R2 R3 R4也一样,因此正常情况下R4为DR,R3为BDR
R1配置:
R1(config)#router ospf 1
R1(config-router)#router-id 1.1.1.1 //手工指定router-id
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0 --------采取反子网掩码的方式进行通告,类似于通告了一个1.1.1.1 255.255.255.255 的路由信息,采用反子网掩码,是为了区别配置IP地址是的子网掩码
R1(config-router)#network 10.1.1.0 0.0.0.255 area 0
R1(config-router)#exit
R1(config)#end
R2配置:
R2(config)#router ospf 1
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 2.2.2.2 0.0.0.0 area 0
R2(config-router)#network 10.1.1.0 0.0.0.255 area 0
R2(config-router)#network 40.1.1.0 0.0.0.255 area 0
R2(config-router)#end
R3配置:
R3(config)#router ospf 1
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 3.3.3.3 0.0.0.0 area 0
R3(config-router)#network 10.1.1.0 0.0.0.255 area 0
R3(config-router)#network 40.1.1.0 0.0.0.255 area 0
R3(config-router)#exit
R4 配置:
R4(config)#router ospf 1
R4(config-router)#router-id 4.4.4.4
R4(config-router)#network 4.4.4.4 0.0.0.0 area 0
R4(config-router)#network 40.1.1.0 0.0.0.255 area 0
R4(config-router)#end
这时,为了满足要求,让R2成为10.1.1.0 网段的DR,可以修改R2的router-id,改为22.22.22.22
,只要比R3的3.3.3.3 大就可以;为了是R3成为40.1.1.0 网段的DR,可以修改R3的f0/1
的接口优先级。
R2配置:
R2(config)#router ospf 1
R2(config-router)#ro
R2(config-router)#router-id 22.22.22.22
Reload or use "clear ip ospf process" command, for this to take effect //系统提示,要想新的router-id生效,要重启OSPF进程
R2(config-router)#end
R3 配置:
R3(config)#interface f0/1
R3(config-if)#ip ospf priority 5
R3(config-if)#end
这个时候,将R1 R2 R3 R4的OSPF进程重启,然后再观察。
R1配置:
R1#clear ip ospf process
Reset ALL OSPF processes? [no]: y //重启OSPF进程,这个要在四个路由器上同时敲下去
这时可以看到10.1.1.0网段,R2的router-id最大成为DR,R3的router-id次之,成为BDR;
40.1.1.0 网段,R3的优先级最大成为DR,R2的router-id最大,成为BDR.
按照正常配置完成之后,全网互通,在修改DR和BDR之后需要清一下OSPF的进程,让他们重新选举DR和BDR,如果不重启进程会发现DR和 BDR没有变化
当DR优先级为0时,通过这个配置,也可以控制DR、BDR的选取!如果想让某台路由器永远都是一个LAN上的DR,则可以将其它的路由器的DR优先级都配置为0。
DR、BDR是终身制,不能被抢占的,这一知识点也是比较奇怪的,我们上面说了DR/BDR是选取出来的,理论上在一个LAN上,应该是优先级最大的路由器被选取为DR的。
但在很多场景中,小伙伴看到的并不是优先级最大的路由器作为DR!因为DR/BDR的选取是不能被抢占的!
只要某台路由器在一个LAN上,已经被选取为DR,则它会一直是DR!只有等它重启或者关机了,才会重新选取,也就是说DR/BDR是终身制的!
这样做主要是为了网络的稳定,在真实网络中,稳定是压倒一切的!即使某种技术最新,某个设备性能最强,但是如果影响到稳定,就不会被优先选择!
所以想要让某个路由器永远作为DR,则只能其它路由器的优先级修改为0!