ospf 实验和协议分析

协议介绍

ospf 协议是非常常见的内部网关协议, 属于链路状态路由协议. 就是路由器之间相互学习路由信息, 并共享所有的拓扑关系, 然后自动计算出自己跟不同节点之间的最佳路径.

ospf 的节点经过沟通, 最终会形成三个表

  1. OSPF 邻居表, 存储相邻的节点
  2. LSDB 表, 存储整个网络的拓扑结构
  3. OSPF 路由表, 存储经过计算的最佳路由

ospf 机制的分为5个阶段

  1. 发现并建立邻居关系
  2. 协商主从. 为了减少相互的同步, 会从路由器节点中选取一个主节点, 其他节点只要和这个主节点同步数据即可.
  3. 相互发送各自的LSDB摘要信息. LSDB 存储的是网络的拓扑结构, 两两节点会进行交互, 并根据对方的拓扑结构更新自己的 LSDB. 为了减少数据交换量, 会先发送摘要信息, 相互匹配不同的值, 然后再由第四步更新 LSA (链路状态通告, 也就是拓扑结构).
  4. 根据 3 的差异值相互发送 LSA 请求, 并根据请求信息返回 LSA 完整信息, 并更新 LSDB.
  5. 节点自己计算路由规则.

拓扑结构

基于 eNSP 模拟器进行模拟, 拓扑结构如下

目标是配置 AR1 和 AR2 使用 ospf 协议进行动态路由的配置, 使得 PC1 能 ping 通 PC2.

配置很简单:

AR1 :

  1. ospf 1 router-id 1.1.1.1 (1是进程号的意思, 1.1.1.1 是路由id, 仅作为名称, 和路由没什么关系)
  2. area 0 (进入 area 0 进行设置)
  3. network 192.168.1.0 0.0.0.255 (把 192.168.1.0 网络加入 area0)
  4. network 192.168.2.0 0.0.0.255

AR2 :

  1. ospf 1 router-id 2.2.2.2
  2. area 0
  3. network 192.168.2.0 0.0.0.255
  4. network 192.168.3.0 0.0.0.255

这时候 AR1 和 AR2 已经在交换拓扑结构了

AR1:dis ospf peer (OSPF邻居表)

AR1 已经识别到 AR2 了

AR1:dis ospf lsdb (LSDB 表)

AR1:dis ip routing-table protocol ospf (OSPF 路由表)

已经生成了 192.168.3.0/24 -> 192.168.2.2 的路由, 使得和 AR1 直连的 PC1 能 ping 得通 PC3.

PC1: ping 192.168.3.1 (PC3)

ospf 通讯协议

从 AR1 抓包可以看到 AR1 和 AR2 通讯的情况

前面提到 ospf 的机制, 其实就是对应这些具体的协议

  1. (23-25) 因为我先配置的 AR1 , 所以 19-23 号帧 AR1 会10s 广播一次自己. 224.0.0.0 是四类地址, 叫做组播地址. 24 的时候, AR2 配置好了, 会回复 Hello Packet, 并在路由表添加R1, 并把状态设置为 Init. 25 的时候, AR1 会继续广播已知了 AR2. 后面流程结束后, AR1, AR2 会继续广播自己的信息.
  1. (26-27) 协商主从, 两个节点相互发消息, 都说自己是主节点, 但最后收到了对方的 DD Sequence 就知道谁才是主节点了 (谁大谁是 Master)

主节点叫 DR, 一个广播域有一个 DR, 为了防止在一个广播域里面同步过多次 LSA , 因此需要选 DR, 让其他的节点和 DR 同步就可以了.

  1. 28 28: .1->.2 发送 LSA 摘要信息 29: .1 广播了自己的 LSA (不清楚为什么要广播) 30: .2 知道了 .1 的 LSA 的摘要信息, 知道自己缺了什么路由, 于是发送 LS Request 请求给 .1 请求详细的信息 31: .2 接收到 .1 的 LSA 详细信息, 并更新自己的路由信息.

32-35: 和上面同理.

38-40 发送确认信息

总结

ospf 协议还是很复杂的, 还支持区域级别的通讯, 但范围一大要同步的 LSA 就会非常多, 所以需要划分区域, 区域之间只需要和边界路由器同步一次 LSA 即可. ospf 还有非常多的设置, 这里就不展开了, 后面如果遇到相关问题再细看.

OSPF配置 - 华为 (huawei.com)

相关推荐
发光小北4 小时前
西门子 PLC 串口转网口模块现场应用有哪些问题?
网络协议
楚Y6同学7 小时前
QT上位机开发-UDP通信-模拟下位机数据联调的方法
网络协议·udp·联调方法
captain37614 小时前
网络原理(3)-TCP核心机制连接管理▲▲▲
java·服务器·网络·ide·网络协议·tcp/ip·java-ee
易岳群14 小时前
搞清 Socket、TCP、MQTT 的通信关系:从底层协议到物联网实战
网络协议·tcp/ip·socket·通信协议关系
宵时待雨14 小时前
linux笔记归纳19:网络层协议IP
linux·网络·笔记·网络协议·tcp/ip
只睡四小时15 小时前
内网穿透+WebSocket:Node 零依赖远程桌面实战
网络·websocket·网络协议
Jeremy_WW15 小时前
802.3协议解读 05:116章节 200 Gb/s 和 400 Gb/s 网络介绍 V
网络·网络协议·信息与通信·光模块·802.3协议
梦想平凡16 小时前
百游棋牌源代码开发搭建教程(七):WebSocket房间同步与断线恢复
网络·websocket·网络协议
tachibana218 小时前
WebSocket 和 SSE 通信的区别及局限性
网络·人工智能·websocket·网络协议·ai·llm·agent
为思念酝酿的痛19 小时前
Linux网络进程守护
网络协议·tcp/ip·udp