打印

OSPF中DR和BDR的用途和建立过程

OSPF中DR和BDR的用途和建立过程

首先在点对点的网络中就不需要选择DR和BDR了。
在多路广播型的子网里,就要选择DR和BDR了,除了DR和BDR之外运行OSPF同一进程的路由里面都要和DR BDR建立邻接关系,而其他的路由就在TWO WAY状态了,这样可以加速网络的收敛。再者如果网络上有更新的路由条目除了DR和BDR之外的路由用组播224.0.0.6这个地址发出,DR用224.0.0.5的组播地址向全部的网络发送LSA,这样减少了网络带宽的利用,更有效的利用带宽资源。
如果说有坏掉的路由,这个路由也就和DR BDR建立邻接关系,DR通告LSA信息达到快速收敛。
总结2条:加快网络收敛 有效的利用网络带宽资源。

当我们用以太链路建立邻接关系的时候我们可以先debug ip ospf adj
这样我们可以看到OSPF建立邻接关系的全部过程
所谓了DR和BDR的ADJ维持是通过HELLO包 我们可以debug ip ospf hello
这样因为我们只用2台路由一个是DR一个是BDR这样比较清楚一些
过程是这样的 DR先发一个HELLO 通过224.0.0.5 这个组播地址 后面还有区域的信息
还有通过什么接口发出去的 接口地址的IP是什么
这样BDR收到一个DR发的HELLO 它这里就会显示是DR所发HELLO的接口的IP地址
BDR收到DR发的HELLO后也会发一个HELLO包 地址也是224.0.0.5 这个组播地址 后面还有区域的信息 还有通过什么接口发出去的 接口地址的IP是什么 这样DR看到的HELLO就知道是BDR发过来的 显示的也就是BDR的端口IP地址
DR此时就会 end of hello processing
BDR也会 end of hello processing
这样就是一个HELLO的过程
首先拓扑是这样的


我们先debug ip ospf adj 来看个建立邻接关系的过程:
*Jan 6 05:21:31.255: OSPF: Cannot see ourself in hello from 12.1.1.1 on Ethernet0/0, state INIT
*Jan 6 05:21:31.255: OSPF: Neighbor change Event on interface Ethernet0/0
*Jan 6 05:21:31.255: OSPF: DR/BDR election on Ethernet0/0
*Jan 6 05:21:31.255: OSPF: Elect BDR 0.0.0.0
*Jan 6 05:21:31.255: OSPF: Elect DR 12.1.1.2
*Jan 6 05:21:31.255: DR: 12.1.1.2 (Id) BDR: none
*Jan 6 05:21:31.755: OSPF: Build router LSA for area 0, router ID 12.1.1.2, seq 0x80000005
*Jan 6 05:21:31.755: OSPF: No full nbrs to build Net Lsa for interface Ethernet0/0
*Jan 6 05:21:31.755: OSPF: Build network LSA for Ethernet0/0, router ID 12.1.1.2
R2#
*Jan 6 05:21:31.755: OSPF: Build network LSA for Ethernet0/0, router ID 12.1.1.2
R2#
*Jan 6 05:21:40.975: OSPF: Rcv DBD from 12.1.1.1 on Ethernet0/0 seq 0x14B3 opt 0x52 flag 0x7 len 32 mtu 1500 state INIT
*Jan 6 05:21:40.975: OSPF: 2 Way Communication to 12.1.1.1 on Ethernet0/0, state 2WAY
*Jan 6 05:21:40.975: OSPF: Neighbor change Event on interface Ethernet0/0
*Jan 6 05:21:40.975: OSPF: DR/BDR election on Ethernet0/0
*Jan 6 05:21:40.975: OSPF: Elect BDR 12.1.1.1
*Jan 6 05:21:40.975: OSPF: Elect DR 12.1.1.2
*Jan 6 05:21:40.975: DR: 12.1.1.2 (Id) BDR: 12.1.1.1 (Id)
*Jan 6 05:21:40.975: OSPF: Send DBD to 12.1.1.1 on Ethernet0/0 seq 0xCBC opt 0x52 flag 0x7 len 32
*Jan 6 05:21:40.975: OSPF: First DBD and we are not SLAVE
*Jan 6 05:21:40.995: OSPF: Rcv DBD from 12.1.1.1 on Ethernet0/0 seq 0xCBC opt 0x52 flag 0x2 len 92 mtu 1500 state EXSTART
*Jan 6 05:21:40.995: OSPF: NBR Negotiation Done. We are the MASTER
*Jan 6 05:21:40.995: OSPF: Send DBD to 12.1.1.1 on Ethernet0/0 seq 0xCBD opt 0x52 flag 0x3 len 72
*Jan 6 05:21:40.995: OSPF: Database request to 12.1.1.1
*Jan 6 05:21:40.995: OSPF: sent LS REQ packet to 12.1.1.1, length 12
*Jan 6 05:21:41.023: OSPF: Rcv DBD from 12.1.1.1 on Ethernet0/0 seq 0xCBD opt 0x52 flag 0x0 len 32 mtu 1500 state EXCHANGE
*Jan 6 05:21:41.023: OSPF: Send DBD to 12.1.1.1 on Ethernet0/0 seq 0xCBE opt 0x52 flag 0x1 len 32
*Jan 6 05:21:41.055: OSPF: Rcv DBD from 12.1.1.1 on Ethernet0/0 seq 0xCBE opt 0x52 flag 0x0 len 32 mtu 1500 state EXCHANGE
*Jan 6 05:21:41.055: OSPF: Exchange Done with 12.1.1.1 on Ethernet0/0
*Jan 6 05:21:41.055: OSPF: Synchronized with 12.1.1.1 on Ethernet0/0, state FULL
*Jan 6 05:21:41.055: %OSPF-5-ADJCHG: Process 1, Nbr 12.1.1.1 on Ethernet0/0 from LOADING to FULL, Loading Done
*Jan 6 05:21:41.255: OSPF: Neighbor change Event on interface Ethernet0/0
*Jan 6 05:21:41.255: OSPF: DR/BDR election on Ethernet0/0
*Jan 6 05:21:41.255: OSPF: Elect BDR 12.1.1.1
*Jan 6 05:21:41.255: OSPF: Elect DR 12.1.1.2
*Jan 6 05:21:41.255: DR: 12.1.1.2 (Id) BDR: 12.1.1.1 (Id)
*Jan 6 05:21:41.255: OSPF: Neighbor change Event on interface Ethernet0/0
*Jan 6 05:21:41.255: OSPF: DR/BDR election on Ethernet0/0
*Jan 6 05:21:41.255: OSPF: Elect BDR 12.1.1.1
*Jan 6 05:21:41.255: OSPF: Elect DR 12.1.1.2
*Jan 6 05:21:41.255: DR: 12.1.1.2 (Id) BDR: 12.1.1.1 (Id)
R2#
*Jan 6 05:21:41.475: OSPF: Build router LSA for area 0, router ID 12.1.1.2, seq 0x80000006
*Jan 6 05:21:41.555: OSPF: Build network LSA for Ethernet0/0, router ID 12.1.1.2
*Jan 6 05:21:41.555: OSPF: Build network LSA for Ethernet0/0, router ID 12.1.1.2
每种过程已经标出。我们再debug ip ospf hello 看一下维持邻接关系的过程:
R1#sh ip os nei
Neighbor ID Pri State Dead Time Address Interface
12.1.1.2 1 FULL/DR 00:00:30 12.1.1.2 Ethernet0/0
R1#debug ip os hello
OSPF hello events debugging is on
R2# debug ip os hello
OSPF hello events debugging is on
R2#
*Jan 6 05:29:25.955: OSPF: Send hello to 224.0.0.5 area 0 on Ethernet0/0 from 12.1.1.2 ----------------------DR所发的HELLO
R1#
*Jan 6 05:29:26.067: OSPF: Rcv hello from 12.1.1.2 area 0 from Ethernet0/0 12.1.1.2 -----------------------BDR收到HELLO
*Jan 6 05:29:26.067: OSPF: End of hello processing
R1#
*Jan 6 05:33:51.367: OSPF: Send hello to 224.0.0.5 area 0 on Ethernet0/0 from 12.1.1.1 ------------------------BDR发出的HELLO
R2#
*Jan 6 05:33:51.255: OSPF: Rcv hello from 12.1.1.1 area 0 from Ethernet0/0 12.1.1.1 ------------------------DR收到HELLO
*Jan 6 05:33:51.255: OSPF: End of hello processing
QQ:346220942 群:14053628 www.one-tom.com/bbs

TOP

不错,顶一把
这是学习OSPF开始时候的重点
汤姆一通网络技术 论坛
QQ:383506128
MSN:yangrubing.itaa@hotmail.com

能够在狼群里生存的只有狼;能走多远在乎于谁同行!

TOP

很好,谢谢了

TOP

不错,顶一把
这是学习OSPF开始时候的重点
玩游戏,别让游戏玩了你;上大学,别让大学上了你!

TOP

我就看不懂ospf的建立过程 貌似恨复杂
说了多少遍了,俺真滴不是马甲!

TOP