北京金桥世纪
b.对于非NBMA网络,不向处于down状态的邻居发送hello报文;对于NBMA网络,以PollInterval为时间间隔(4倍DeadInterval)向处于down状态的邻居发送hello报文 c.邻居状态迁 Init a.在DeadInterval时间内收到邻居的hello报文,但自己尚未出现在对端hello报文的neighbor字段中 b.达到或超过init状态的路由器必须在hello报文的相应字段包含自己所见所有邻居的router id. 2Way a.在收到的邻居的hello报文的neighbor字段中发现自己的router id,则邻居状态达到2-way b.在处于init状态时收到邻居发送的DD报文,则相应邻居也达到2-way状态(备注:广播网络和NBMA网络的DRother之间相应邻居为稳定在2-way状态。) Full 广播网络和NBMA网络的DR/BDR和其他路由器之间建立邻接关系,相应邻居为full状态。 点到点、点到多点网络的邻居之间应达到full状态 (备注:完成数据库同步后达到的邻居状态,检查相邻邻居在相应区域中的LSA的校验和之和是否相等。相等表示完成数据库同步) Attempt a.当去往NBMA邻居的接口被激活,并且邻居有资格参与DR选举或者路由器成为DR/BDR,而邻居没有资格参与DR选举时邻居状态为attempt b.处于attempt状态的路由器hello报文的发送间隔为helloInterval
display ospf 100 peer命令显示的就是当前OSPF进程100的邻居状态,其中的State:
Exstart字段指示其邻居当前的状态为:Exstart。
图10 OSPF的邻居状态截图
注意:只有在全部满足下列条件时路由器才会形成邻居关系: ? 网络类型为Brodcast、nbma、虚连接 ? 路由器为DR/BDR ? 对端为DR/BDR
否则两个路由器只是停留在2Way的关系。
OSPF大致分网络为两种:广播和非广播。广播有广播、nbma,非广播即p2p、p2mp
图11是rfc2328中的OSPF接口状态机转换图。接口状态有五种,即:down Loopback waiting DR BDR DROther。
+----+ UnloopInd +--------+ |Down|<--------------|Loopback|
北京金桥世纪
+----+ ------------->+--------+ | LoopInd | |InterfaceUp
+-------+ | +--------------+ |Waiting|<-+-------------->|Point-to-point| +-------+ +--------------+ |
WaitTimer|BackupSeen
| |
| NeighborChange
+------+ +-+<---------------- +-------+ |Backup|<----------|?|----------------->|DROther| +------+---------->+-+<-----+ +-------+ (BDR) Neighbor | |
Change | |Neighbor | |Change | +--+ +---->|DR| +--+
图11 接口状态机转换图
注意:并不是所有的情况下都会出现DR、BDR、DROther这三种状态的。当网络类型为Broadcast、NBMA时,才会选举;当网络类型为P2P、P2MP时,不选举DR、BDR,自然不会出现这些状态。
display ospf 100 brief命令显示的就是当前ospf进程的概要信息,其中某区域下的某接口中的State:DROther字段指示的是该接口当前的状态为DROther。
图12 OSPF的接口状态截图
接口和邻居的关系如何?其实这个关系很简单: 关系:邻居建立在接口之上:
北京金桥世纪
1、Init:路由器收到了hello,但自身没有出现的hello包中(非双向通讯) 2、2Way:双向通讯=》开始选举DR、BDR
3、DR、BDR选完后才ExStart ExChange Loading Full
其实接口是为邻居服务的,接口层正常了,才能讨论邻居的问题,否则等于就不知道周围有谁,何谈邻居?
2.3 建立邻居关系需要多少时间?
Rfc2328规定由常数Wait Timer决定,为30秒。接口up后进入waiting状态,在此状态时,路由器试图判定网络上DR和BDR。为此,路由器对其接收到的Hello包进行监听。在结束等待前,路由器不能被选举为DR或BDR。这可以避免不必要地改变DR和BDR,引起网络震荡。
2.4 当存在连续的两个非骨干区域时,最边缘的区域怎样建立虚连接?
虚连接是穿过在非骨干区域建立的到达骨干区域的连接,只能以一个非骨干区域作为一条虚连接的传输区域。当需要跨越两个非骨干区域时,可以一段一段的建立虚连接,即虚连接可以中继。
例如上图可以这样配置虚连接:
RT2和RT3之间建立虚连接,以area1为传输区域; RT3和RT4之间建立虚连接,以area2为传输区域; RT4和RT2之间不能直接建立虚连接。
2.5 在NSSA区域中的ABR,没有引入路由的情况下,为什么其声称自己是ASBR?
所有的NSSA区域ABR必须是ASBR,因为它们可能要进行7-5转换。
2.6 当NSSA区域有多个ABR时,谁进行type7类LSA到type5类LSA的转换?
比较router ID,由router ID大的ABR进行7-5转换。
2.7 LSA和报文的关系
Hello:不包含LSA
DD:不包含LSA或者包含LSA摘要 LSR:包含LSA摘要 LSU:包含LSA全文 LSAck:包含LSA摘要
北京金桥世纪
2.8 报文的作用
Hello:发现和维持邻居关系,在广播和NBMA网络上,Hello包也被用于DR和BDR的选举。
DD+LSR:形成邻接
LSU+LSAck:实现可靠路由更新
2.9 DD报文中的I/M/MS位解释
I位/I-bit:初始位,initial。在第一个DD包中设定为1。
M位/M-bit:更多位,more。当后面还有更多的DD包时设定为1。
MS位/MS-bit:主从位,master/slave。在数据库交换过程中的主机设定为1(主机不一定是DR),否则该路由器为从机。
以下是打开OSPF调试开关后,交换机上显示收到的DD报文:
*Oct 8 18:59:07 2006 yx 8508C RM/7/RTDBG:OSPF Process 100 *Oct 8 18:59:07 2006 yx 8508C RM/7/RTDBG:OSPF SENT 200.1.7.1(Vlan-interface200) -> 200.1.7.2 Database Description Vers: 2 Len: 32 *Oct 8 18:59:07 2006 yx 8508C RM/7/RTDBG:OSPF SENT RouterID: 2.1.1.2 Area: 0.0 .0.0 Checksum: 0xe1b8 *Oct 8 18:59:07 2006 yx 8508C RM/7/RTDBG:OSPF SENT Auth: Type: 0 Key: 00000000. 00000000 *Oct 8 18:59:07 2006 yx 8508C RM/7/RTDBG:OSPF SENT Flags OSPF SENT Opt ions:
其中的标志表示各位都为1;哪一个标志没有出现,则表明哪一位为0。
2.10 有关路由COST的问题
+---+8 6+---+ |RT3|--------------|RT6| +---+ +---+ 以上组网图中,
RT3到RT6的cost为8; RT6到RT3的cost为6;
即:路由器以自己的出接口的cost计算,因为它不可能知道别人接口的cost。
QQ:478242180 QQ群: 190996265
网址: http://www.515network.com/ 论坛:www.h3cpeixun.com