ospf建立过程
刚学完了ospf(open shortest path first)、eigrp、bgp等三大协议,这也是路由原理所要求会的知识,尤其ospf,是我们这门课的重点的重点,所以在这里也觉得有了一些自己的看法,也分享一下吧!!!
在理解之前,我觉得,脑中最好有这些东西,它们就像是ospf学习的一些主干吧!!
首先有5个报文
1.hello报文
2.database dscription (DBD)数据描述报文
3.link-state request (LSR) 链路状态请求报文
4.link-state update (LSU) 链路状态更新报文
5.link-state ACK(LSAck) 链路状态确认报文
然后是七个状态
1.DOWN 状态
2.INIT状态
3.TWO-WAY状态
4.EXSTART状态
5.CXCHANGE状态
6.LODING 状态
7.FULL状态
只有有了这些东西,然后 把5个报文分别放入相应的状态里,相信你就会有一个新的理解了!!!!
好了先从状态入手吧!
1.DOWN状态
在这状态下,所有的设备刚起动,所以相互之间没有交换任何数据,所以也称关闭状态!
2.INIT状态
这个状态又称准启动状态,这时所有的设备开始交换hello报文了(有了报文了注意,hello报文就是在这里出现了,内容是通告自己是谁,谁在这个链路上),邻居收到同样也用hello报文回复一个(我是谁,我有这个链路上)这时,设备知道了对方的存在了,所以开始进入下一个状态
3.TWO-WAY 状态
承上启下,通过比较hello报文中(是否routr-id唯一、是否有相同的生存时间和死亡时间等条件)所有要求符合了,这时就建立了邻居关系(补一点,hello报文也是区分链路状态和距离矢量的重要之处)
&&&如果所属的网络类型是广播类型,这时就要在这里选举DR/BDR(靠优先级选,优先级相同时,由router-id来选举),再进入下一状态
4.EXSTART状态
邻居已建立了(从这里到最后都属于邻接关系的建立了
),开始传送一个DBD报文(又出现了一个报文),开始交换自己的(LSDB的一个摘要数据),当彼此收到了DBD报文后就回复一个LSAck报文(出现了一个报文)表示我收到了,双方确认后,进入下一个状态
5.EXCHANGE状态
这时设备之间就开始用这个DBD报文描述的内容与自身的LSDB(Link-state database 链路状态数据库)比较,当发现了DBD报文中的自己没有的内容时,这时便进入了下一个状态
6.LOAING状态
设备由对方的DBD报文比较出了自己没有的内容,所以要开始发送LSR报文(出现了一个报文)向邻居学习,这时邻居没有的也会向自己发送LSR报文学习,当彼此收到了LSR便发送一个LSAck报文确认收到,并且再向对方发送一个LSU报文(出现了一个报文)告诉邻居所请求的内容,彼此收到了LSU报文后也要发送一个LSAck报文确认!!这时都开始记录了,随之也进入了下一个状态
7.FULL状态
设备都学习到了LSU报文内容,这时邻接建立完成!!FULL状态也完成!
在时,其实设备的路由表中是不会有任何学习来的条目的,因为ospf是基于报文来让其它设备学习记录的,(这也是链路状态与距离矢量的区别吧)这时如果在设备上show ip route
只能看到直连网段,因为ospf协议在进行完了上面的七种状态后,还要进行spf计算,最后再由管理距离决定最后进入路由表中的条目!!
是不是看了上面的过程有点晕,呵呵!毕竟是我的理解,由于知识及表达能力上的不足,所以也希望你能多看山山几遍!希望对你有些帮助吧!!