华为——OSPF单区域实验配置,实验抓包分析,五种报文分析,六种LSA介绍,以及如何建立邻接关系的七种状态
前言
OSPF协议是一种链路状态协议。每个路由器负责发现、维护与邻居的关系,并将已知的邻居列表和链路费用LSU(Link State Update)报文描述,通过可靠的泛洪与自治系统AS(Autonomous System)内的其他路由器周期性交互,学习到整个自治系统的网络拓扑结构;并通过自治系统边界的路由器注入其他AS的路由信息,从而得到整个Internet的路由信息。每隔一个特定时间或当链路状态发生变化时,重新生成LSA,路由器通过泛洪机制将新LSA通告出去,以便实现路由的实时更新。
注:可以看下我另外一篇博客,这边理论就不再讲的那么详细
链接: https://blog.youkuaiyun.com/m0_47219942/article/details/106498790.
一:OSPF简介
1.1:工作原理
区域0:路由器A、路由器B |
区域1:路由器C、路由器D |
区域2:路由器E、路由器F |
区域3:路由器G、路由器H |
1.1.1:架构介绍
花瓣形状,骨干区域为0区域,其他区域1、2、3都围绕区域0相连,及个别的特殊情况,可以通过虚拟链路来连接
1.1.2:信息传递
向邻居发送是自己知道的所有状态的链路状态信息
1.1.3:路由标识
Router-ID是网络上唯一用于标识的一台路由器,线网用路由器的环回口来配置Router-ID,这边的地址是32位的公网IP地址,如果没有标,通过物理口来确认
1.1.4:区域规划
划分多个区域是为了优化网络性能
1.2:对于OSPF的一些总结
1.生产环境中,loopback设置32位的公网IP地址,router id 使用它
2.5类LSA向内通告
7类LSA向外通告
3.传送的 LSA link status advertisement链路状态通告,包括拓扑信息,具体包括:
网段的前缀
掩码
连接的路由器的哪些接口
直连哪些路由器
4.LSA分为7种类型
某些包含的是拓扑信息
但是有些包含的是路由信息
5.LSDB,他是LSA的的集合,链路状态数据库
对此进行spf算法得到spf树
(基于cost代价)再得出最优的路由并将其加入到路由表中
6.既支持vlsm可变掩码、又支持cidr(无类别域间选路)
7.封装layer | 2 | ip | ospf | fcs
直接封装到P报头内,上层协议号为89 ,eigrp为88
8.OSPF默认使用v2版本,v3版本针对IPv6
1.3:OSPF协议五种报文分析
1、Hello | 发现邻居并建立和维护邻居关系 (Hello报文)
2、DataBase Description | 检查所有路由器的LSDB是否同步(数据库描述报文DBD)
3、Link-State Request | 向另外一台路由器请求特定的链路状态记录 (链路请求报LSR)
4、Link-State Update | 发送被请求的链路状态记录 (链路回应报文LSU)
5、Link-State Acknowledgment | 对其他类型的分组进行确认
一:hello发送周期分为10s和30s两种, hello hold的时间为发送时间*4即40s或120s
二:DBD数据库描述报文包含LSA的报头,即告诉邻居路由器本地的LSDB中包含哪些LSA信息
同步LSDB过程中如果没有此描述可能会发送重复的LSA,造成资源的浪费,导致低效LSA中除了拓扑或路由信息的载荷外还有LSA的报头也叫LSA的摘要,报头中包含此LSA的标识,从而避免发送重复的LSA信息
三:路由器请求邻居有但是本地没有的LSA,以保证LSDB一致,根据交互的DBD,将没有的LSA的报头放在LSAR中,表明需要的LSA
四、根据上面的一条将邻居请求的LSA信息放在LSU中,由本地路由器发送给邻居LSU包含完整的LSA信息
五、 LSACK为确认机制,由OSPF定义的确认机制
OSPF定义了两类的确认:
一种为显式的确认
另一类为隐式的确认(基于序列号的确认机制)
前者收到一个报文针对此报文生成一个单独的确认报文
(只有osp支持确认)后者收到一个报文使用相同的报文再发送回来序列号设置为一致既传输了信息又做了确认
1.4:OSPF协议6种LSA分析
1.4.1:6种LSA
1类: