HCIE进阶之路------OSPF 描述临接关系的建立(非常详细,工作过程)细节

热爱路由交换以及运维技术的交流可以加新群:532593532(非水友群)

欢迎各位大佬的加入

 

首先:临接关系建立是从2-way状态开始

场景:两台路由器,ip分别是10.1.45.4,10.1.45.5,以下描述分别为R1,R2

工作过程:

第一阶段:互相发送DD报文进入到exstart状态

第一份DD报文(也叫空DD报文):(作用是选举主从)根据ospf头部中的router-id大的选为主

R1发送的DD报文包含的字段内容:MTU=0(默认),I位初始化为1,M位为后续还有DD报文为1,M/S为初始都认为是主所以置1,然后假如自动生成的序列号为1000

R2发送的DD报文包含的字段内容:MTU=0(默认),I位初始化为1,M位为后续还有DD报文为1,M/S为初始都认为是主所以置1,然后假如自动生成的序列号为2000

为啥要选举主从呢:首先要确认报文的序列号,

那么序列号的作用是什么呢?

因为ospf工作在ip层,是面向无连接的,不可靠的协议,所以不能保证数据包的正确到达,所以才需要通过序列号的方式进行确认,说明对方已经收到了。

通过序列号的方式达到一个确认的效果这个叫隐式确认

第二阶段:

主从选举结束进入exchange状态:R1为从,R2为主

R1发送DD报文中:I位为0,M位为0或为1取决与后续是否有DD报文,M/S位为0,序列号为主第一份DD报文的序列号2000 (总结:从永远使用主发来的序列号不会进行任何更改)

R2发送的DD报文中:I位为0,M位为0或为1取决与后续是否有DD报文,M/S位为1,序列号为从发来的DD报文的序列号加1后是2001

如果一侧的dd报文比对方多,就会出现一侧发送的dd报文有内容,而一侧的dd报文时空dd一直等对方发送的dd报文中的M位为0时,才停止发送空的dd报文。期间主的序列号会一直加1,而从的序列号为主的序列号进行确认。发送的dd报文中会携带LSA的头部

当两端的M发送的DD报文都为0时,则说明exchange状态的结束进入Loading状态

现实中为了加快收敛。会在exchange和Loading状态之间交互

也就是说当我收到的DD报文中的LSA是我缺少的LSA的话那么我将直接发送LSR不会一直等到DD报文全部发送完之后在去进行LSR的请求,而是收到缺少的LSA直接进行发送LSR,后续的DD依旧会发送,收到后如果缺少就继续发送LSR,当DD报文全部发送完以后,相应的LSR也将发送0次或几次后停止发送。HCIE进阶之路------OSPF 描述临接关系的建立(非常详细,工作过程)细节_第1张图片

Loading状态:

根据DD报文中的LSA的头部。查看自己缺少的LSA,然后向外发送LSR(LS type,Link State ID,Advertising Router)这个三要素可以唯一区分一条LSA

比如R1有1,2,3,4的LSA,R2有4,5,6,7LSA,

R1将发送LSR 要请求包含5,6,7的LS type,LS ID,advertising Router(5,6,7这些信息都是从对方发来的DD报文中LSA头部获取的)

R2将会发送LSU给R1,其中包含5,6,7具体的LSA信息

当R1收到R2的LSU时会向它发送一个确认LSack报文,其中包含5,6,7的LSA头部,如果R2没有收到LSACK的确认报文那么会5s重传 ,会在一个Dead时间内重传,既然ACK到不了,那么hello报文一定也到不了,所以在down之前都会进行重传

当收到了LSACK之后邻居进入FULL状态

到此邻接关系也建立完成!!!

欢迎加入群聊进行讨论!!!

 

你可能感兴趣的:(HCIE笔记)