OSPF实验
一、概述
开放式最短路径优先路由协议
1. 特点
- 无环路
- 收敛速度快:支持触发更新
- 良好的扩展性
- 支持认证
2. 工作原理
运行OSPF协议的路由器了解网络拓扑中的所有链路状态信息,路由器向周围的所有路由器泛洪自己的链路状态信息,将所有的链路状态信息汇聚成LSDB,从而得到了网络的链路地图,通过算法计算出最短路径树,然后进行路由计算得出最优路由,从而形成路由表项加入到路由表中,当进行数据转发时可以通过查表找到路由信息,从而进行数据的转发。
3. OSPF报文
- OSPF封装在IP报文中,协议号为89
- OSPF的5中报文类型:
- Hello报文:发现维护邻居关系 (Type:1)
- DD(Database Description)报文:两台路由器在同步LSDB时用来描述链路状态信息(传输摘要信息) (Type:2)
- LSR(Link State Request)报文:用于请求LSDB中缺少的内容 (Type: 3)
- LSU(Link State Update)报文:向对端发送它所需要的LSA (Type:4)
- LSACK(Link State Acknowledgment)报文:用于收到LSU时进行确认 (Type:5)
4. Router ID、邻居和邻接
- Router ID:32位的值,类似于IP地址格式,是OSPF路由器的身份标识
- 通过Hello报文发现邻居,当参数协商一致时形成邻居(2-Way状态)
- 双方交互DD报文,同步LSDB后形成邻接关系(Full状态)
5. OSPF的邻居状态机
6. 邻居发现
- Hello报文用于邻居发现和邻居维护
7. 数据库同步
- 路由器通过DD报文进行主从路由器的选举和数据库摘要信息的同步
- 根据Router ID选举主从路由器,Router ID大的为主路由器
- 当双方的数据库同步,则状态直接转变为Full状态
- 若双方的数据库不同步状态为(Loading):则通过LSR报文请求所需的LSA,通过LSU报文进行LSA的更新,收到LSU报文之后通过LSACK报文进行确认
8. OSPF支持的网络类型
- 缺省情况,OSPF认为以太网的网络类型为广播类型,PPP的网络类型为点到点
- 缺省情况,OSPF认为帧中继、ATM的网络类型为NBMA(非广播多路访问)
- 点到多点
9. DR和BDR选举
- DR基于接口进行选举
- DR可以减少链路中的邻接关系,BDR是DR的备份,链路中的所有路由器只和DR&BDR建立邻接关系
- DR是基于端口的DR优先级进行选举(0-255)
- 优先级值越高越优先,当优先级值相同时比较Router ID,Router ID越大越优先
- 非抢占式选举
- 广播网络中,DR和BDR用来接收链路状态更新报文的目的地址为组播地址224.0.0.6,发出的地址是224.0.0.5
10. OSPF区域
- 每个区域维护一个独立的LSDB
- Area 0为骨干区域,当其他区域之间交互信息时必须通过骨干区域
- ABR是边界路由器,维护两个区域的路由表
- OSPF的cost值=参考带宽/实际带宽
二、基本配置
1. 实验拓扑
2. 实验配置
- 连接拓扑
- 配置主机和路由器端口的ip地址
- 以AR4为例进行配置
- 配置Router ID:ospf 1.1.1.1
- 划分区域,并将网段宣告到区域中:命令如图7
- 对其他路由器进行配置
- 当端口配置成功后可以看到端口状态的改变
三、OSPF协议报文交互过程
- 在AR4上查看它的邻居关系,命令:ospf display peer
1. 报文交互过程概述
2. 捕获数据包分析
- Hello报文,用于发现和维护邻居关系
- 在AR3的GE0/0/1端口捕获数据包
注意:数据包中可以看到它宣告邻居Router ID为3.3.3.3即AR1
- AR3发给AR1的DD报文
- AR3发给AR1的LSR报文
- AR1分给AR3的LSU报文
- AR3发送给AR1的LSACK报文
四、OSPF协议的链路状态描述
LSA描述链路状态目前我只了解三类:Router-LSA(一类)、Network-LSA(二类)、Sum-Net(三类)
1. Router-LSA
- 一类LSA:所有路由器都会产生这一类链路状态通告,指明它们的状态和每条链路方向出站的代价,以及链路上所有已知的OSPF邻居,在本区域洪泛,链路状态ID为源路由器ID
- 查看AR3 的链路状态数据库,使用命令:display ospf lsdb router self-originate
- Type:Router标识为一类LSA
- Ls id:链路状态的ID即源路由器ID
- Adv rtr:产生此LSA的路由器的Router ID
- Link ID:为DR的接口IP地址
- Data:宣告此Router LSA的路由器的接口IP地址
- Link Type:MA型网络TransNet(表示的是描述的为DR的信息),点到点的链路路由信息为stubNet(路由信息)
2. Network-LSA
- 二类LSA:由DR产生,指明所有与之相连的路由器,只在本区域泛洪,链路状态ID为DR的接口ip地址
- 通过命令查看:display ospf lsdb network self-originate
- 二类LSA描述MA和NBMA型的网络
- Ls id:DR接口的ip地址
- Adv rtr:DR的Router ID
- Attached Router:连接到该网段的路由器列表
3. Sum-LSA
- 三类LSA:由ABR产生,将从一个区域学习到的信息发送给其他区域,链路状态ID为目的网络ID
- 通过命令查看数据库信息:display ospf lsdb summary 10.1.2.0
- Type:为三类LSA
- Ls id:为目的网段地址
- Adv rtr:产生此LSA的Router ID
- 三类LSA为纯粹的路由信息
五、参考资料
- OSPF-链路状态路由协议
- OSPF两个选举机制
- OSPF链路状态通告类型汇总
六、总结
通过本次实验了解了OSPF的基本工作原理,理解了OSPF的状态转换过程,通过使用eNSP简单掌握了OSPF的一些配置命令,捕获数据包观察到了OSPF中的不同报文的作用和工作过程。但还有许多细节没有掌握,需要后期进行查阅资料解决相应问题。