OSPF数据包和状态机以及详细的工作过程

OSPF七种状态机

一、DOWN(失效)

此状态说明还没有发现其他OSPF邻居。

二、init

收到了HELLO(包),但该报文中列出的邻居中没有包含我的router-ID(对方没有收到我发出的hello报文)。

三、2-way(邻居关系建立的标志)

表示双方互相收到了对端发的hello报文,建立了 邻居 关系。在广播和NBMA类型网络中,除与DR/BDR由器之间进入高级状态外(也就是下边这几种状态),其他路由器之间将停留在此状态。

四、EXSTART(预启动,主从关系选举用没有数据库信息的DBD包来选举)

在此状态下,路由器和它的邻居之间通过互相,交换DBD报文(该报文不包含实际的内容,只包含一些标志位)来确定发送时的主从关系。建立主从关系主要是为了保证在后续的DBD报文中交换能够有序的发送。

五、EXCHANGE(准交换,使用携带有数据库信息的DBD包来进行共享和相互学习)

信息交换,路由器开始交换DBD分组这里的DBD中包含了LSA条目的摘要信息等。

六、Loading(加载,看完对方的DBD后,来学习自己没有的,通过LSR-LSU-LSack来获取未知的LSA信息)

信息加载,这个时候双方开始同步数据库信息了,如果发现本端没有的链路状态信息就开始学习,直到同步为止。

七、Full(邻接关系建立)

完全建立连接,建立稳定的 邻接 状态。

OSPF五种类型的数据包

1、HELLO-----周期10S(hello包中包含RID,用于选举)

用于发现和维持邻居关系的数据包;

2、DBD----链路状态数据库描述数据包

对OSPF的网络拓扑进行描述;
数据包在链路状态数据库交换期间产生,作用:

  • 选举交换链路状态数据库过程中的主从关系;
  • 确定交换链路状态数据库过程中的初始序列号;
  • 交换所有的LSA数据包头部。

3、LSR----链路状态请求数据包

用于请求在DBD交换过程中发现本端路由器中没有的或者过期的LSA包;

4、LSU----链路状态更新数据包

用于更新本端链路中没有的LSA信息;

5、LSack----链路状态确认数据包

用于对接受到的LSU进行确认

  • 如果发送确认的路由器的状态是DR,确认数据包发送到OSPF的组播地址是224.0.0.5;
  • 如果发送确认的路由器的状态不是DR,确认数据包发送到OSPF的组播地址是224.0.0.6;

OSPF工作过程

LSDB(链路状态数据库)将本地的所有的LSA集合在一起。

路由器上ospf协议启动配置完成后,本地收发hello包,该包中存在RID,建立邻居关系;生成邻居表
邻居表关系建立后,基于条件进行抉择;

  • 条件匹配失败,只能维持在邻居关系,仅hello包周期保活;

  • 条件匹配成功,可以建立邻接关系;使用DBD包来共享本地的LSDB目录,之后本地基于其他邻接共享过来的DBD,判断本地未知的LSA信息有哪些;

  • 再使用LSR向邻接进行查询,邻接返回LSU也来传递具体的LSA信息,同时本地需要ack确认接收;
    当本地收到所有的LSA信息后,本地LSDB数据库建立完成生成了数据库表

  • 然后本地基于LSDB生成有向图(树型结构图)————>在生成路由表;此时收敛完成,hello包周期保活。每30min周期进行一次DBD包的比对;

结构突变:

  • 新增网段:直连新增网段的设备,直接使用LSU将新增网段的LSA信息发送给本地所有的邻接关系;对端确认(需2次);
  • 断开网段:直连新增网段的设备,直接使用LSU将新增网段的LSA信息发送给本地所有的邻接关系;对端确认(需2次);
  • 无法沟通:hello包照常10s发送,等到dead时间40s到,断开邻居关系,删除从该邻接学习到的信息;

状态机和五种包相互作用的总结:(假设由A、B两台路由器)也好比男女生谈恋爱:

  • DOWN ————状态下  A、B互相不认识(男女互不认识)一旦发过hello包(一旦留了联系方式如:VX)就进入下一状态;
  • init 初始化————状态下  A、B互发的hello包中有对方的RID(例如:A给B发的hello包中,就有B的RID),A、B就知道自的邻居是谁了(男女互加了好友,并且相互问好);
  • two-way ————状态下  A、B建立了邻居关系(男女双方成为普通朋友),看条件匹配是否能够进行接下来的状态(男女双方互相提自己的择偶标准和要求,看对方能否接受——————接受则建立男女朋友的关系,若不接受则只能成为普通朋友,以后见面只是打个招呼)匹配则A、B继续接下来的状态,不接受则就周期hello包保活;
  • EXSTART 预启动————状态下 A、B双方发送DBD包(只含有目录无具体的LSA)双方比较RID,选取主从,RID大的为主,先进入下一状态(深入交流,相互了解对方,成为男女朋友);
  • EXCHANGE 准交换————状态下 A、B双方发送LSDB(含有DBD包其中有真实的路由条目或拓扑内容)然后对端回复LSack包确认收到了LSDB;(订婚)
  • Loading 加载——————状态下 查看完对端邻居的DBD包后,使用LSR/LSU/LSack来获取未知的LSA信息(结婚);
    FULL转发——————状态下 邻接(毗邻)关系建立(生子)
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值