是为了两个设备之间建立ospf邻接关系,即建立ospf通信。
有兴趣可以继续阅读下行详细介绍
ospf邻接关系建立
初始状态下,所有ospf接口的邻居状态都是down,没有与任何设备建立邻居关系,更没有建立邻接(邻居关系不等于邻接关系)关系。
整个ospf邻接关系建立分4个主要阶段:
1、邻居发现阶段:
以P2P和广播类型网络中设备为例如下图1
图1 OSPF邻接关系建立示意图
首先,当R1的ospf接口启动路由进程后,会以组播方式向所连接的同网段所有直连的ospf设备发送一个hello报文。此时因为R1没有与其他设备建立邻居关系,不知道其他设备的路由器ID,所以此hello报文中只封装了自己ospf路由区域的路由ID。
当R2收到来自R1的hello报文后,将收到来自R1报文的接口转换为init状态,同时R2从接收到的hello报文中获取R1的路由ID并添加到邻居列表中。
然后在deadinterval超时前以组播方式向所连接网段中的所有直接连接的ospf设备发送一个封装了自己路由ID和R1路由ID的hello报文。
当R1收到来自R2的hello报文后发现里面有自己的路由ID,则将收到来自R2报文的接口转为2-way状态,同时从收到的报文中获取R2的路由ID并添加到邻居列表中,在deadinterval超时前以组播方式向所连接的网段中所直连接的ospf设备发送封装了自己的路由ID和R2路由ID的hello报文。
当R2再次收到来自R1的hello报文,发现里面有自己的路由ID后,将收到来自R1报文的接口转换成2-way状态。这是R1和R2建立双向2-way邻居关系。
通过以上4步(两次握手)建立起邻居关系,进入主从关系确立阶段。
2、主从关系确立阶段
也就是DR/BDR的选举。在双方都进入2-way后,各自通过hello报文进行DR/BDR选举。
DR和BDR是由同一网段中所有路由器根据路由优先级和路由器ID选举出来的,只有hello报文中Rtr Pri(优先级)字段大于0的路由器才具有选举资格。
在与一个或多个邻居之间都进入2-way之后,本地路由器对每个邻居发来的hello包中的优先级、DR、BDR域进行检查。此时,所有路由器都宣称自己为DR(将自己的接口地址置于hello包DR字段中),也都宣称自己为BDR。(将自己的接口地址置于hello包BDR字段中)
DR字段中优先级最高的路由器被宣告为DR,如果优先级一样,则拥有最高路由器ID的邻居被选为DR。
BDR字段中优先级最高的路由器被宣告为BDR,如果优先级一样,则拥有最高路由器ID的邻居被选为BDR;如果没有任何路由被选为BDR,则拥有最高优先级的非DR邻居路由器被选为BDR,如果优先级相同,则最高路由ID者被选为BDR。
进入exstart(预启动)状态后,双方路由器开始以DD报文进行交互,确定双方的主从关系(不是DR与BDR),确定用于数据交换的初始DD报文的序列号,以保证路由器得到的永远是最新的链路状态信息。
通过双方的路由器ID来确定主从关系,路由器ID大的为主设备。确定好主从关系后,从设备以主设备的DD报文序列号向主设备发送DD报文,并转换自己接收DD报文的接口为exchange状态;主设备收到从设备DD报文后也将收到DD报文的接口转换为exchange状态。
本摘自重庆网管博客ospf章节:http://www.023wg.com/lypz/102.html
3、数据库同步阶段
主设备开始向从设备发送带有LSA header字段的报文,对从设备进行数据更新。当主设备向从设备发送最后一个DD报文时,将接收DD报文的接口转换为loading状态;当从设备收到最后一个DD报文时也将收到报文的接口转换为loading状态。
当主设备发送完DD报文后,从设备开始依据所接收的DD报文中的LSA header字段检查自己的LSDB,如果没有,从设备会以LSR报文向主设备发出更新请求;当主设备收到从设备发送来的LSU会向从设备发送对应的LSA;从设备收到主设备的LSU报文后会以LSAck报文进行确认。
在DD报文交换中,主从角色不是固定的,因为双方都可能没有对方的LSA,或者一方的LSA的版本更新,双方都可以向对方发送LSR报文请求更新。
4、完全邻接阶段
当双方的LSDB完全同步后,双方均转为FULL状态,双方OSPF接口间整数建立完全邻接关系。
② 哪位高手能具体解释一下在EIGRP和OSPF路由协议中邻接关系与邻居关系的区别。尽量详细点。谢谢。。
我这里就说比较实在、比较俗一点吧,同时楼主也好理解一点。一步一步的讲:如下
一,如果网络中的路由器开启了OSPF协议,首先会发送hello报文,该报文中携带的有路由器的接口地址/掩码、Area ID、Hello Interva、Dead Interval、接口认证等,然后路由器间根据这些参数开始相互协商,如果协商成功,便成为了邻居关系。
二,成为了邻居关系之后就要想办法成为邻接关系,因为不是每个邻居关系的路由器都会成为邻接关系的,特别是多址址广播网络。总结一下,邻接关系的建立如下步骤。
1,失效状态 down, 表示该接口还未启用,不能收到任何信息。
2,初始化状态 Init,表示检测到了从邻居发来的hello报文了。但还没建立双向通信。(建立邻居后的路由器会发送hello报文给自己的邻居,hello信息包括路由器的router id、路由器的优先级等。)
3,双向通信状态 Two-way ,从邻居发过来的hello报文中,检测发现了自己的router id 号,如果是广播网络还需要选择DR、BDR ,再建立邻接关系,然后到下一步。
4,信息交换初始状态Exstart,确定两台路由器的主从关系,用做后面的数据库同步(即谁先发送LSA给另一方)
5,信息交换状态 Exchange ,这一状态路由器会发送一个DD报文,用来描述他们的链路数据库等,既两台路由器开始准备同步,用来发现我路由器数据库里面缺什么,少什么的。
6,加载状态loading ,紧跟上一步,在进行了同步观察后,双方就知道自己的数据库里面的需求,即开始了开始了有关LSA 的请求。
7,完全邻接 full ,紧跟上一步,当发送了有关LSA的请求后,这一步就开始发送有关LSA的数据,一直到双方的LSA数据库同步。此时,双方邻接关系完全角成。
个人描述,非复制的。 仅供参考。
③ 关于OSPF中Loopback是否需要发布的问题
1、如果接口的IP是在ospf进程下宣告网络的范围之类,这个接口就会发送ospf报文。也就是说,即使使用的是最大的环回口作为Router-ID,如果该环回口的IP不在进程下宣告的那些网络的范围类,该接口是不会发送ospf报文的。如果没有环回口,只有物理接口,那么会选择物理接口中IP最大的作为Router-ID,是否发送报文和前面的情况一样。至于是否接受报文就要看链路另一端的接口是否发送ospf报文了(还要看本接口是否配置了passive,如果配置了也是不接收的;当然,如果配置了acl,同样也是可以过滤ospf报文的。所以,你说的是否接收要多方面考虑才行)。
2、发布于不发布的区别就是,发布了以后ospf区域的路由器都能以ospf方式学习到该地址,不发布就要通过其他方式才能学习到该地址。
④ 网络用语DD是什么意思挖`
在网络工程里指DD报文(Database Description Packet)
DD报文用LSA头head信息表示LSA的变化情况,将其发送给DR,DR再发给其它路由器。
⑤ 关于OSPF协议的问题,求正解及解析,谢谢
ADE
hello是用来维持邻居关系的,只要接口没有down掉,一定会有。
同步以后,路由器会每30分钟刷新一下自己发送过的lsa,这要用LSU来实现,因为lsa是要放到LSU中的。
邻居收到LSU以后,会发送LSAck,以示确认。
网络稳定的时候,路由器不会发DD报文的,DD报文只是在邻居建立的过程中出现的。
也不会有LSR,因为网络稳定的时候,没有新的LSA生成,路由器不会发LSR来请求获得新的LSA。
希望能帮到你!
⑥ dd报文什么教材里的
是属于计算机教材里面的。
DD报文是用来描述本地路由器的链路状态数据库(LSDB),在两个OSPF路由器初始化连接时要交换DD报文,进行数据库同步。DD报文内容部分包括:DD报文序列号和LSDB中每一条LSA的头部对端路由器根据所收到的DD报文中的OSPF报头就可以判断出是否已有这条LSA。由于数据库的内容可能相当长,所以可能需要多个数据库描述报文来描述整个数据库。所以有三个专门用于标识数据库描述报文序列的比特位,即DD报文格式中的I、M和M/S这三位。接收方对报文的重新排序使其能够真实地复制数据库描述报文。这种只有计算机教材里面才会出现的。
⑦ ospf 总共有几种报文
OSPF有七种类型LSA,详细介绍如下:
1、路由器LSA (Router LSA)
由区域内所有路由器产生,并且只能在本个区域内泛洪广播。
这些最基本的LSA通告列出了路由器所有的链路和接口,并指明了它们的状态和沿每条链路方向出站的代价。
2、网络LSA (Network LSA)
由区域内的DR或BDR路由器产生,报文包括DR和BDR连接的路由器的链路信息。
网络LSA也仅仅在产生这条网络LSA的区域内部进行泛洪。
3、网络汇总LSA (Network summary LSA)
由ABR产生,可以通知本区域内的路由器通往区域外的路由信息。
在一个区域外部但是仍然在一个OSPF自治系统内部的缺省路由也可以通过这种LSA来通告。
如果一台ABR路由器经过骨干区域从其他的ABR路由器收到多条网络汇总LSA,那么这台始发的ABR路由器将会选择这些LSA通告中代价最低的LSA,并且将这个LSA的最低代价通告给与它相连的非骨干区域。
4、ASBR汇总LSA (ASBR summary LSA)
也是由ABR产生,但是它是一条主机路由,指向ASBR路由器地址的路由。
5、自治系统外部LSA (Autonomous system external LSA)
由ASBR产生,告诉相同自治区的路由器通往外部自治区的路径。
自治系统外部LSA是惟一不和具体的区域相关联的LSA通告,将在整个自治系统中进行泛洪。
6、组成员LSA (Group membership LSA) * 目前不支持组播OSPF (MOSPF协议)
7、NSSA外部LSA (NSSA External LSA)
由ASBR产生,几乎和LSA 5通告是相同的,但NSSA外部LSA通告仅仅在始发这个NSSA外部LSA通告的非纯末梢区域内部进行泛洪。
⑧ p2mp是描述本地路由器到多个邻居路由器的连接,这个说法为什么是错的
类似一个很多人和一个人说话,p2mp通过nbma来工作,但是他还不是NBMA,只能是类似
没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。
在该类型的网络中:
以组播形式(224.0.0.5)发送Hello报文。
以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)
⑨ 描述OSPF将网络分成哪些类型,每一种类型是否需要选择DR和BDR,如果需要如何选择
OSPF的网络类型广播、NBMA(非广播多点可达)、P2MP、P2P
广播、NBMA需要选举DR、BDR。
P2MP、P2P不需要选举DR、BDR。
广播、NBMA中DR的选举:
首先两台设备交互hello报文,比较Hello报文中的如下参数,如果参数相同才进行DR/BDR的选举,否则不能正常通讯。
1、Area ID
2、Hello/Dead 时间间隔
3、认证类型和认证密钥
4、特 殊区域类型Stub Flag
5、子网掩码
如果上面的参数都一样了,首先比较端口优先级,端口优先级最大的将选为DR,第二大的将选为BDR。如果优先级相同,则需要比较Router ID,Router ID最大将选为DR、第二大的将选为BDR,如果优先级为0,则不参与DR、BDR的选举。这样查看设备OSPF状态就会进入2-way状态。
上面只限于第一次DR、BDR的选举。如果后来有优先级更高的加入到现有的网络中,出于安全稳定的考虑,新加入的设备不会参加DR、BDR的选举,知道DR、BDR出现故障时才会参与选举。
选举出DR、BDR的原因是为了防止设备之间相互发送OSPF交互报文,如果每台设备都交互OSPF报文,网络中的带宽会很快被消耗掉。都与DR、BDR交互报文,然后由DR下发,这样减少了OSPF报文的交互,提高了网络带宽的利用率。
P2MP、P2P不需要选举DR、BDR,是使用组播地址224.0.0.5 224.0.0.6直接交互OSPF报文。 但是有些厂商(H3C)没有按照RFC文档制作OSPF协议,debug查看OSPF交互报文时,只使用组播224.0.0.5。.