ospf协议建立邻居在exstart状态时是如何通过空的dd报文选取主从关系的?

OSPF建立邻居关系和邻接关系_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
OSPF建立邻居关系和邻接关系
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢如果您也喜欢网络技术,欢迎关注本公众号,这是一个免费问答类、传播网络技术的公众号,同时也会转载分享一下优秀的技术文章供大家阅读。本公众号致力于帮助网络工程师快速成长,以及提供便捷服务。 &Ospf中路由器之间存在两种连接关系:邻居关系和邻接关系。&如果两台路由器之间共享一条公共数据链路(两台路由器中间没有其它路由器,或者两台路由器之间存在虚连接),并且成功协商了hello包中所指定的参数,那么它们就成为邻居。如果两个邻居之间需要同步LSDB,那么它们之间需要建立邻接关系。如果两个路由器之间建立了邻接关系,那么它们的LSDB一定是同步的。LSA只在存在邻接关系的路由器之间传递。&那么邻居关系和邻接关系怎么建立呢?邻居关系通过hello报文来建立。Hello报文中包含如下一些内容:1、始发路由器的router-id2、始发路由器接口的area-id3、始发路由器接口的地址掩码4、始发路由器接口的authentication type和authentication message5、始发路由器接口的hello-interval6、始发路由器接口的router dead-interval7、路由器优先级8、指定DR和BDR9、标识可选性能的5个标志位10、始发路由器的所有有效neighbor router-id(始发路由器接收到了它们的hello报文)以两台路由器之间建立邻居关系为例:1、R1发送hello报文(组播或者单播,链路层类型来定),neighbor字段为空2、R2收到hello报文,为R1建立一个邻居数据结构,并把R1的邻居状态置为init,然后向R1发送hello报文,neighbor字段中包含R1的rougerID,表示自己收到了R1的hello报文。3、R1收到R2的hello报文之后,为R2建立一个邻居数据结构,并把邻居状态置为2way,然后向R2发送hello报文,报文的neighbor字段中包含R2的routerID。4、R2收到R1的hello报文后,把R1的邻居状态置为2way至此,邻居关系就建立起来了,邻居路由器之间会按时发送hello报文进行保活,如果hello报文超时,那么该路由器就会宣告这里邻居失效。&所有路由器之间都达到2way状态后,它们会根据网络类型判断是否需要选举DR和BDR,如果需要的话就开始选举DR和BDR。&邻居路由器之间会判断是否需要建立邻接关系,怎么判断呢?1、 &如果是point-to-point链路,需要建立邻接关系2、 &如果是point-to-multipoint链路,需要建立邻接关系3、 &如果网络类型是虚链路,需要建立邻接关系4、 &本地路由器是网段上的DR,需要建立邻接关系5、 &本地路由器是网段上的BDR,需要建立邻接关系6、 &邻居路由器是网段上的DR,需要建立邻接关系7、 &邻居路由器是网段上的BDR,需要建立邻接关系&如何建立邻接关系呢?其实邻接关系的建立过程中就顺带把LSDB同步了。过程如下:建立邻接关系使用下面三种协议报文:Hello报文type1、数据库描述数据包type2、链路状态请求报文type3、链路状态更新报文type4、链路状态确认报文type5&1、RT1的一个连接到广播类型网络的接口上激活了OSPF协议,并发送了一个HELLO报文(使用组播地址224.0.0.5)。由于此时RT1在该网段中还未发现任何邻居,所以HELLO报文中的Neighbor字段为空。2、RT2收到RT1发送的HELLO报文后,为RT1创建一个邻居的数据结构,并且将RT1的邻居状态机置为Init。RT2发送一个HELLO报文回应RT1,并且在报文中的Neighbor字段中填入RT1的Router id,表示已收到RT1的HELLO报文。3、RT1收到RT2回应的HELLO报文后,为RT2创建一个邻居的数据结构,并将邻居状态机置为Exstart状态。下一步双方开始发送各自的链路状态数据库。&为了提高发送的效率,双方需先了解一下对端数据库中那些LSA是自己所需要的(如果某一条LSA自己已经有了,就不再需要请求了)。方法是先发送DD报文,DD报文中包含了对本地数据库中LSA的摘要描述(每一条摘要可以惟一标识一条LSA,但所占的空间要少得多)。由于OSPF直接用IP报文来封装自己的协议报文,所以在传输的过程中必须考虑到报文传输的可靠性。为了做到这一点,在DD报文的发送过程中需要确定双方的主从关系。作为Master的一方定义一个序列号seq,每发送一个新的DD报文将seq加一。作为Slave的一方,每次发送DD报文时使用接收到的上一个Master的DD报文中的seq。实际上这种序列号机制是一种隐含的确认方法。如果再加上每个报文都有超时重传,就可以保证这种传输是可靠的。RT1首先发送一个DD报文,宣称自己是Master(MS=1),并规定序列号为x。I=1表示这是第一个DD报文,报文中并不包含LSA的摘要,只是为了协商主从关系。M=1说明这不是最后一个报文。4. RT2在收到RT1的DD报文后,将RT1的邻居状态机改为Exstart,并且回应了一个DD报文(该报文中同样不包含LSA的摘要信息)。由于RT2的RouterID较大,所以在报文中RT2认为自己是Master,并且重新规定了序列号为y。5. RT1收到报文后,同意了RT2为Master,并将RT2的邻居状态机改为Exchange。RT1使用RT2的序列号y来发送新的DD报文,该报文开始正式地传送LSA的摘要。在报文中RT1将MS=0,说明自己是Slave。6. RT2收到报文后,将RT1的邻居状态机改为Exchange,并发送新的DD报文来描述自己的LSA摘要,需要注意的是:此时RT2已将报文的序列号改为y+1了。7. 上述过程持续进行,RT1通过重复RT2的序列号来确认已收到RT2的报文。RT2通过将序列号+1来确认已收到RT1的报文。当RT2发送最后一个DD报文时,将报文中的M=0,表示这是最后一个DD报文了8. RT1收到最后一个DD报文后,发现RT2的数据库中有许多LSA是自己没有的,将邻居状态机改为Loading状态。此时RT2也收到了RT1的最后一个DD报文,但RT1的LSA,RT2都已经有了,不需要再请求,所以直接将RT1的邻居状态机改为Full状态。9. RT1发送LS Request报文向RT2请求所需要的LSA。RT2用LS Update报文来回应RT1的请求。RT1收到之后,需要发送LS Ack报文来确认。上述过程持续到RT1中的LSA与RT2的LSA完全同步为止。此时RT1将RT2的邻居状态机改为Full状态。注:以上过程是两台路由器由相互没有发现对方的存在到建立邻接关系的过程。或者可以理解为网络中新加入一台路由器时的处理情况。当两台路由器之间的状态机都已经达到Full状态之后,如果此时网络中再有路由变化时,就无须重复以上的所有步骤。只由一方发送LS Update报文通知需要更新的内容,另一方发送LS Ack报文予以回应即可。双方的邻居状态机在此过程中不再发生变化。&&泛洪扩散:当路由器检测的LSA变化之后,会把这个LSA更新到整个网络上。保证网络上所有路由器的LSDB一致。泛洪通过链路状态更新报文type4和链路状态确认报文type5进行,是一个可靠的过程。原文链接:.cn/s/blog_620dbe2e0101nil7.html本文来源于互联网,版权归属于原作者。转载文章言论不代表本公众号观点,如是侵犯了原作者的权利请发私信,我们收到后立即删除。网络工程师阿龙(engineer-along) 
 文章为作者独立观点,不代表大不六文章网立场
的最新文章
OSPF定义的5种网络类型:  点到点网络(point-to-point),由cisco提出的网络类型,自动如果您也喜欢网络技术,欢迎关注本公众号,这是一个免费问答类、传播网络技术的公众号,本公众号致力于帮助网络工程如果您也喜欢网络技术,欢迎关注本公众号,这是一个免费问答类、传播网络技术的公众号,同时也会转载分享一下优秀的IT虽然披着高科技的光鲜外衣,但本质上都是些很简单的东东,不然社会上就不会到处充斥着“软件工程师速成”、“零如果您也喜欢网络技术,欢迎关注本公众号,这是一个免费问答类、传播网络技术的公众号,同时也会转载分享网络上的优如果您也喜欢网络技术,欢迎关注本公众号,这是一个免费问答类、传播网络技术的公众号,同时也会转载分享网络上的优如何衡量一个网络产品是不是好产品?为什么STP的优先级是4096的倍数如果您也喜欢网络技术,欢迎关注本公众号,这是一个免费问答类、传播网络技术的公众号,本公众号致力于帮助网络工程如果您也喜欢网络技术,欢迎关注本公众号,这是一个免费问答类、传播网络技术的公众号,本公众号致力于帮助网络工程VTP(VLAN Trunking Protocol):是VLAN中继协议,它是思科私有协议。作用是减少在多台交换机的组网中增删改VLAN的工作量。华三网络设备型号,你知多少?思科网络设备型号众多,让人眼花缭乱。记录起来很麻烦,炫亿时代小编为您整理思科网络设备产品各种型号字母多代表的含义,了解了这些,就再也不用担心记错型号了。
【建议WIFI下观看】导读在大型企业中,网络工程师的工作职责可能学BGP这么久了,如果突然问你,BGP都需要用到几张表?你能第一时间说出来吗?
不记得的话,那就赶紧随着小
SaaS(Software-as-a-service)的意思是软件即服务,SaaS的中DDOS攻击原理最近收到读者的私信,关于子网划分让他感到很困惑!相信大家都知道,子网划我运行着几台Linux服务器;家里一台,充当文件服务器,还有三台活动服务器,分别用作我的站点服务器、邮件服务网络工程师必看!欢迎各位热爱网络技术爱好者的关注,本公众号不仅致力于传播网络技术知识、同时还注重传播正能量。 快乐学习同时也欢迎各位热爱网络技术爱好者的关注,本公众号不仅致力于传播网络技术知识、同时还注重传播正能量。 快乐学习同时也欢迎各位热爱网络技术爱好者的关注,本公众号不仅致力于传播网络技术知识、同时还注重传播正能量。 快乐学习同时也欢迎各位热爱网络技术爱好者的关注,本公众号不仅致力于传播网络技术知识、同时还注重传播正能量。 快乐学习同时也欢迎各位热爱网络技术爱好者的关注,本公众号不仅致力于传播网络技术知识、同时还注重传播正能量。 快乐学习同时也欢迎各位热爱网络技术爱好者的关注,本公众号不仅致力于传播网络技术知识、同时还注重传播正能量。 快乐学习同时也随着行动通讯网路、行动支付技术成熟,每个人只要在家就可以创作,在任何实体电器上购-物,让这个打破世界疆界的物联网市场,成为全球不管是传统产业、科技产业,还是创新团-队的全新战局。新创工场CEO李开复,指出台湾厂商应该要有新的合作思维,新创在这个快节奏的时代里,亦是信息爆炸的年代,我们整天被大量的信息充斥着,过多无用的信息,只会让我们视界疲劳。阿
★欢迎各位热爱网络技术爱好者的关注,本公众号不仅致力于传播网络技术知识、同时还注重传播正能量。也致力欢迎各位热爱网络技术爱好者的关注,本公众号不仅致力于传播网络技术知识、同时还注重传播正能量。 快乐学习同时也欢迎各位热爱网络技术爱好者的关注,本公众号不仅致力于传播网络技术知识、同时还注重传播正能量。 快乐学习同时也欢迎各位热爱网络技术爱好者的关注,本公众号不仅致力于传播网络技术知识、同时还注重传播正能量。 快乐学习同时也欢迎各位热爱网络技术爱好者的关注,本公众号不仅致力于传播网络技术知识、同时还注重传播正能量。 快乐学习同时也欢迎各位热爱网络技术爱好者的关注,本公众号不仅致力于传播网络技术知识、同时还注重传播正能量。 快乐学习同时也
我们现在能聊天、刷朋友圈、网购,都感谢一对美国夫妇。他们就是思科的创始人,那时他们还在大学校园里,由
IP地址是我们平时在生活中经常听到的一个名词,虽然这个家伙关系着所有设备与互联网的连接欢迎各位热爱网络技术爱好者的关注,本公众号致力于帮您利用零碎时间(坐公交车、地铁等)了解、学习、复习网络知识
点击上方"网络工程师阿龙"关注我们公告:如果你也喜欢互联网、热爱互联网、喜欢学习互联网技
↑喜欢网络吗点击上方"网络工程师阿龙"关注我们【攻城狮表白】
我是你的交换机,因为交心
↑点击上方"网络工程师阿龙"关注我们公告:喜欢互联网、热爱互联网、喜欢学习互联网技术知识
↑点击上方"网络工程师"关注我们本期目标了解MPLS LDP的远端配置,会话建立过程(略公告:喜欢互联网、热爱互联网、喜欢学习互联网技术知识,那就关注阿龙公众号。让我们一起学习!一起探讨!一起交流
↑点击上方"网络工程师阿龙"关注我们公告:喜欢互联网、热爱互联网、喜欢学习互联网技术知识engineer-along帮助您了解网络知识,更好地解决生活中、工作中遇到的网络问题。随时随地分享网络知识与经验。热门文章最新文章engineer-along帮助您了解网络知识,更好地解决生活中、工作中遇到的网络问题。随时随地分享网络知识与经验。OSPF的8种邻居状态
OSPF的8种邻居状态
OSPF邻居状态机  当邻居建立的过程之中,路由器在和邻居达到完全邻接关系之前,要经过几个状态。这些状态在OSPF&有相关的定义,这些状态分别是Down, Attempt, Init, 2-Way, Exstart, Exchange, Loading和Full。本文将介绍一下各种状态的详细工作内容。&&Down  这是第一个OSPF邻居状态,在这个状态下路由器没有从邻居那收到任何信息(包括hello包),不过在这个状态下,路由器可以主动发出hello包给自己的邻居。  当路由器之间是Full状态的时候,如果在RouterDeadInterval时间段内(4倍的默认HelloInterval)没有从邻居收到任何hello包,或者手工配置的邻居信息被移除,那么邻居状态会从Full变为Down.Attempt  Attempt状态仅仅存在与NBMA网络中手工配置邻居的情况下。在这个状态下,路由器发送单播的hello包给邻居而且在dead interval超时之前没有收到邻居发过来的hello包。Init  Init状态说明了路由器已经收到了来自邻居发送的hello包,但是hello包中没有包含发送者的RID。当路由器从邻居接受hello包时,封包里面应该包含发送的RID信息,以确保这是一个可认知的hello包。2-Way  2-Way状态说明了两台路由器之间已经建立了双向的链接,每一个路由器都已经收到了对方的hello包。这个状态发生在路由器收到了一个包含自己Router ID的hello包。在这个状态下,路由器决定是否要去跟邻居建立临接关系。在广播和NBMA网络类型中,一个路由器仅与designated router (DR) 和 backup designated router (BDR)建立Full状态关系,而和其他路由器最终停留在2-way状态。在点对点和电对多点网络类型中,路由器和所有相连接的路由器最终都达到Full状态。  在2-Way状态的结束之前,广播网络和NBMA网络类型中的DR和BDR选举出来。  注意:在init状态下接受到邻居发来的Database Descriptor (DBD)包也会导致路由器转变成2-way状态。Exstart  一旦DR和BDR选举出来,真正的链路状态信息交换才会发生在路由器和DR,BDR之间。  在Exstart状态下,路由器和它的DR, BDR建立了一种master-slave的关系并且选择一个初始的sequence number来形成临接。拥有更高的Router ID的路由器将会成为master并且开始交换信息,同时master也是唯一一个可以增加sequence number的路由器。需要注意的是,逻辑上可以认为DR/BDR中拥有更高的Router ID的一个可以成为master。但是请记住,DR/BDR的选举可能会因为手工配置了priority而不一样,不仅仅依赖与Router ID。因此有可能DR会在这个状态下充当slave状态。Exchange  在Exchange状态下,OSPF路由器交换database descriptor (DBD)包。DBD包含了链路状态通告(LSA)头部文件,并且描述了整个链路状态数据库的内容。每一个DBD报文都含有一个sequence number,并且这个号码会每一次被master增加。在Exchange状态下,路由器同时会发送链路状态请求报文(LSR)和链路状态更新报文(LSU)。接收到的DBD报文会和路由器链路状态数据库进行比较以确保是否有任何新的或者更多的链路状态信息是可用的。Loading  在Loading状态下,发生的是真正的链路状态信息交换。基于DBD报文所提供的信息,路由器会发送链路状态请求报文。邻居会在链路状态更新报文中提供相应的链路状态信息。在临接关系下,如果一个路由器收到了一个过期或者丢失了LSA,它会发送一个LSR请求相应的LSA。所有链路状态更新数据包都会在这个状态下达到同步。Full  在Full状态下,路由器和其邻居会达到完全临接状态。所有路由器和网络LSA都会交换并且路由器数据库达到同步。  Full状态是OSPF路由器的一个最常见的状态。如果一个路由器停留在另外一个状态,那么就说明了在路由器建立临接关系的过程中是存在问题的。唯一的例外是2-way状态,是在广播网络中常见的。在广播网络中,邻居之间(除了和DR,BDR之外)会最终处于2-way状态。
发表评论:
TA的最新馆藏

我要回帖

更多关于 ospf协议 的文章

 

随机推荐