ospf工作中的第一步就是建立邻居 那么怎么建立邻居呢?我们来分析下。
我们来抓个报 分析下。
Hello报文
现在AR1和AR2都启用了ospf,接着双方就开始发送hello报文了。
R1和R2发送的hello报文是DR是空 邻居也是空,此刻的ospf的状态机是down
然后R1发送第二个Hello报
这次是带着邻居的router-id发过去的,R2也是这样的。此时的状态机是init状态。
2台路由器再次收到对方发来的携带了active neighbor为自己的hello报以后,就建立邻居,此时的状态了2-way。
从init到2-way状态的这个阶段,ospf要判断是否建立邻居和后续路由器是否发送DD报文。这时候就会进行DR和BDR的选举。
==============分割线==================
DD报文
建立邻居后就开始发送DD报文。
R1和R2发送的第一个DD报文中I=1,M=1,MS=1 开始他们都认为自己为主,然后就开始主从选举。此时的状态是exstart。
主从选举是比较router-id,大的为主。选举完后,从路由器就再次发送DD报文。
再次发送的DD报文中I=0 M=0 MS=0,MS=0就说明这是从路由器,M=0说明后续不会在发送DD摘要信息了。此时AR1从路由的状态是exchange,AR2主路由还是exstart
R2主路由器收到DD报文后就发送了LSR报文,里面包含了LSA。之后也发生DD摘要报文给从路由器,其中I=0,M=0 MS=1。M的取值决定后续是否还有dd摘要发送。此时从路由器为loading,主路由器是exchange。
从路由器收到DD摘要后,发送LSR。之后再发送一个DD报文(这个DD报文无摘要信息)给主路由器,这DD中I=0 M-0 MS=0,就是告诉主路由器摘要信息交互已经完成。此时主路由器完成loading。
然后就开始LSU报文,回复LSACK报文,之后就全部成FULL状态。
DD报文的作用
1.选举主从关系
2.发送摘要信息
3.摘要传送完毕,把主路由器重新置位loading。
OSPF报文的确认机制
1.hello报文 10s传输 40s老化
2.DD报文 用seq来做隐式确认
第一个DD报文R1的seq:191 R2的seq:189 选举主从关系
选举完,R1是从路由 seq:189变成了R2的seq 来确认
R2给R1发DD报文时候就seq+1来表示,R1最后给R2发DD使主路由置位loading时,R1的seq就变成了190 来确认。
3.LSR报文 使用LSU报文作为确认回复
4.LSU报文 使用LSACK报文作为确认回复
DD报文中的MTU
1、DD报文中的第一个字段就是发出该报文接口的MTU值,正常来说,OSPF邻居建立是需要要求两端接口的MTU值保持一致,否则无法建立。
但是华为默认不检查MTU值。因此一般会显示为0(接口缺省MTU为1500)(思科是默认检查MTU值的)
2、可以人为使用命令开启MTU检测
[AR1-GigabitEthernet0/0/0]ospf mtu-enable 在接口开启OSPF的MTU检测
a.当接口开启MTU检测后,DD报文中MTU值将正常显示
b.如果两端接口只有一端开启MTU检测,将不影响邻居建立
c.必须两端同时开启MTU检测后才会生效
如果slave路由器接口的MTU>master路由器的MTU,那么从路由器将卡在exchange,主路由器将卡在exstart
如果slave路由器接口的MTU
服务器租用托管,机房租用托管,主机租用托管,https://www.e1idc.com