两台运行OSPF的路由器数据包交换了hello数据包,形成邻接关系,接下来将会做什么?

       注:文中所有文字图片均属原創,文中观点属于个人总结谨供参考,如有纰漏或不当之处敬请谅解。

通过路由器数据包 ID 来辨认属于 OSPF 的路由器数据包(简单来说就是給路由器数据包起个名字这个名字是在OSPF中起作用的)

通过路由器数据包 ID 来区分不同的路由器数据包

IP 最高的活动接口为路由器数据包 ID

1)     邻居关系:每台路由器数据包与它的邻居建立联系(hello),这个关系叫邻接关系两台OSPF路由器数据包想成为邻居的条件:

1Area-id:两个路由器数据包必须在共同的网段上,它们的端口必须属于该网段上的同一个区且属于同一个子网",sans-serif;>

2、验证(Authentication OSPF):同一区域路由器数据包必须交换相同嘚验证密码,才能成为邻居

4stub区域标记:两个路由器数据包可以在Hello报文中通过协商Stub区域的标记来成为邻居

由器和网络每个邻居在收到lsa以後依次向它的邻居转发这些通告(泛洪),直到LSA被扩散到整个网络【其中LSA包括链路状态,路由器数据包接口到链路的代价度量值以及链蕗所连接的所有邻居】

3)     每台路由器数据包在数据库中保存一份它所收到的lsa的备份,如果工作正常所有的路由器数据包的数据库应该楿同

4)     通告完整的数据库,使用spf算法以自己为根计算到每个网络的最佳路径并将信息保存在路由表中。

1.3 三张表的联系概括

OSPF路由器数据包通过发hello包发现邻居构建邻居表接着相互通告LSA同步LSDB(拓扑数据库,包含一个区域内所有路由器数据包、和他们的链路信息一般同一个区域内的路由器数据包拥有同一个LSDB),以构建一张整体的拓扑表(对网络心中有数)最后根据SPF算法构建一张路由选择表。

     骨干区域(中转區域):主要是为快速高效地传输IP分组的OSPF区域和连接其他类型的区域。(通常用area 0表示骨干区域)常规区域:主要是连接用户和资源的OSPF区域它要和骨干区域相连。  (用area 0之外的表示常规区域)


(看流量的方向开销只与出接口有关,与入接口无关)

(这里的100M要转换成以bit为单位进荇计算其实就是bit

顺带一提如何查看接口带宽:

路由器数据包通过下面的Dijkstra的最短路径算法找到到达目的地最佳的路径:同一个区域内的每┅台路由器数据包都拥有一致的链路状态数据库.区域中的路由器数据包都以自己为根构建最短路径树.到达目的地整体链路成本之后最小的僦是最好的路径.最好的路由条目将进入转发数据库

每一个LSDB中的LSA 都有一个序列号.这个序列号是一个 4-byte

不同的网络类型,发送hello包的频率也不一样像以太网或者点对点网络发送hello时间是10s,如果是像非广播多路访问网络(NBMA网络)发送hello时间是30s

非广播多路访问网络(NBMA网络):

hello间隔和死亡间隔 : 多路访问网络上为10秒,死亡时间为40秒两端必须匹配一致

6)     LSA(链路状态通告):报告路由器数据包和链路的状态,(报告发生什么事和發生什么状态)它是LSU的重要内容

隐式确认:假如发送DBD,序列号不同,我也修改成一样的序列号告诉对发以示确认

本次介绍OSPF邻居和邻接关系的建立過程这个过程是OSPF协议交互的过程,包括Hello报文邻居状态变换以及链路状态数据库同步等内容。

2. 理解OSPF邻居状态变换
3. 理解邻居关系和邻接关系的建立过程


验证一个Hello报文是否合法之前首先需要验证一个OSPF报文是否合法
验证一个接收到的Hello报文是否合法包括:
1. 如果接收端口的网络类型是广播型,点到多点或者NBMA所接收的Hello报文中Network Mask字段必须和接收端口的网络掩码一致,如果接收端口的网络类型为点到点类型或者虚连接則不检查Network Mask字段。
2. 所接收的Hello报文中的HelloInterval字段必须和接收端口的配置保持一致
4. 所接收的Hello报文中的Options字段中的E-bit(表示是否接收外部路由信息)必须囷相关区域的配置保持一致。关于此比特的具体意义将在《OSPF特殊区域》中详细解释

如果路由器数据包发现所接收的合法Hello报文的邻居列表Φ有自己的Router ID,则认为已经和邻居建立了双向连接表示邻居关系已经建立。


这是形成邻居关系的过程和相关邻居状态的变化过程

Down:这是鄰居的初始状态,表示没有从邻居收到任何信息在NBMA网络上,此状态下仍然可以向静态配置的邻居发送Hello报文发送间隔为PollInterval,通常和RouterDeadInterval间隔相哃
Attempt:这个状态只在NBMA网络中存在,表示没有收到邻居的任何信息但是已经周期性的向邻居发送报文,发送间隔为HelloInterval如果RouterDeaInterval间隔内未收到邻居的hello报文,则转为Down状态
Init:在此状态下,路由器数据包已经从邻居收到了Hello报文但是自己不再所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系在此状态下的邻居要被包含在自己所发送的Hello报文的邻居列表中。
2-WayReceived:此事件表示路由器数据包发现与邻居的双向通信巳经开始(发现自己在邻居发送的Hello报文的邻居列表中)Init状态下产生此事件之后,如果需要和邻居建立邻接关系则进入ExStart状态开始数据库嘚同步过程,如果不能与邻居建立邻接关系则进入2-way
2-way:在此状态下,双向通信已经建立但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态
1-wayReceived:此事件表示路由器数据包发现自己没有邻居发送Hello报文的邻居列表中,通常是由于对端邻居重启造成的


DD序列号:烸个DD报文都有一个DD序列号,用于DD报文的确认机制DD序列号是一个两字节的值。
主从关系:当两个路由器数据包之间通过DD报文交换数据库信息的时候首先形成一个主从关系,Router ID大的优先为主确认主从关系之后,主路由器数据包发送DD报文从路由器数据包不能主动发送DD报文,呮能回应主路由器数据包发送的DD报文回应的时候使用的DD报文的序列号必须和所回应的主路由器数据包发送的DD报文的序列号一致。

ExStart:形成鄰接关系的第一个步骤邻居状态变成此状态以后,路由器数据包开始向邻居发送DD报文主从关系是在此状态下形成的;初始DD序列号是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述
Exchange:此状态下路由器数据包相互发送包含链路状态信息摘要的DD报文,描述本哋LSDB的内容
Full:两个路由器数据包的LSDB已经同步。


1. 邻居状态机变为ExStart以后RTA向RTB发送第一个DD报文,在这个报文中DD序列号被设置为552A(假设的值,实際中可能不一样)Initial比特置为1表示这个是第一个DD报文,More比特为1表示后续还有DD报文要发送Master比特为1表示RTA宣告自己为主路由器数据包。
3. 邻居状態机变为Exchange以后RTA发送一个新的DD报文,在这个新的报文中包含LSDB的摘要信息序列号设置为RTB在步骤2里使用的序列号,More比特为0表示不需要另外的DD報文描述LSDBMaster比特为0表示RTA宣告自己为从路由器数据包,收到这样的一个报文后RTB会产生一个NegotiationDone的事件,因此RTB将邻居状态改变为Exchange
4. 邻居状态变为Exchange鉯后,RTB发送一个新的DD报文该报文中包含LSDB的描述信息, DD序列号设为5529(上次使用的序列号加1)
5. 即使RTA不需要新的DD报文描述自己的LSDB,但是作为從路由器数据包RTA需要对主路由器数据包RTB发送的每一个DD报文进行确认。所以RTA向RTB发送一个新的DD报文,序列号为5529该报文内容为空。
发送完朂后一个DD报文之后RTA产生一个ExchangeDone事件,将邻居状态改变为Loading;RTB收到最后一个DD报文之后改变状态为Full(假设RTB的LSDB是最新最全的,不需要向RTA请求更新)


1. 邻居状态变为Loading之后,RTA开始向RTB发送LS request报文请求那些在Exchange状态下通过DD报文发现的,而且在本地LSDB中没有的链路状态信息
3. RTA向RTB发送LS Ack报文,确保信息传输的可靠性LS ack报文用于泛洪对已接收LSA的确认。

邻居状态变成Full表示达到完全邻接状态。


当有新的LSA生成或收到时这条新的LSA应当被泛洪。
1. 当RTA有新的LSA要泛红时RTA向RTB发送一个LS update报文,在这个报文里包含这条LSA
2. 收到新的LSA以后,RTB向RTA泛红一个LS ack报文进行确认

当在两个处于完全邻接状态(邻居状态为Full)的路由器数据包之间泛洪新的LSA时,邻居状态不受影响


224.0.0.6指代一个多路访问网络中DR和BDR的组播接收地址,
224.0.0.5指代在任意网络中所囿运行OSPF进程的接口都属于该组于是接收所有224.0.0.5的组播数据包。
重点理解好 属于某一组 和 接收怎样的组播数据包
比如 DR/BDR属于组播地址为224.0.0.6的组(Group),因此它接收目的地址为224.0.0.6的组播数据包也就可以理解为何多路访问通过设置DR/BDR可以防止信息过多处理(因为属于某组的接收者(指OSPF接ロ),只会剥离到二层而不会进一步处理,也就省去了很多资源浪费)

1. 如何验证一个Hello报文是否合法?
2. 邻居状态变换分为几个阶段
3. 不能建立邻接关系的情况下,邻居稳定工作状态是什么
4. 可以建立邻接关系的情况下,邻居稳定工作状态是什么

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

我要回帖

更多关于 路由器数据包 的文章

 

随机推荐