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)

相关推荐
搬码临时工9 小时前
使用自定义固定公网URL地址远程访问公司内网OA办公系统,本地无需公网IP和专线让外网访问
网络·网络协议·tcp/ip
sheepwjl12 小时前
《嵌入式硬件(三):串口通信》
网络·嵌入式硬件·网络协议·串口通信
noravinsc12 小时前
RPC和HTTP的区别?
网络协议·http·rpc
XMYX-016 小时前
解决 Apache/WAF SSL 证书链不完整导致的 PKIX path building failed 问题
网络协议·apache·ssl
XXYBMOOO16 小时前
Qt UDP 通信类详解与实现
开发语言·网络·c++·qt·网络协议·ui·udp
dog25016 小时前
乐观并发: TCP 与编程实践
网络·网络协议·tcp/ip
计算机毕设定制辅导-无忧学长20 小时前
MQTT 认证与授权机制实践(二)
网络协议
Jayyih1 天前
嵌入式系统学习Day30(udp)
网络协议·学习·udp
耐达讯通信技术1 天前
耐达讯自动化RS485与Profinet双向奔赴,伺服驱动器连接“稳稳拿捏”
运维·人工智能·物联网·网络协议·自动化·信息与通信
耐达讯通信技术1 天前
嘎嘎厉害!耐达讯自动化RS485转Profinet网关就是食品温控的“天选之子”
运维·服务器·网络·人工智能·网络协议·自动化·信息与通信