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)

相关推荐
hgdlip12 分钟前
怎么快速换电脑浏览器的ip:方法与注意事项
网络·网络协议·tcp/ip·电脑
Think Spatial 空间思维3 小时前
【HTTPS基础概念与原理】TLS握手过程详解
数据库·网络协议·https
2501_915909064 小时前
开发日常中的抓包工具经验谈:Charles 抓包工具与其它选项对比
websocket·网络协议·tcp/ip·http·网络安全·https·udp
利刃大大6 小时前
【网络编程】十、详解 UDP 协议
网络·网络协议·udp
LaoZhangGong1237 小时前
W5500使用ioLibrary库创建TCP客户端
网络·经验分享·stm32·网络协议·tcp/ip
天天爱吃肉82189 小时前
车载以太网驱动智能化:域控架构设计与开发实践
java·运维·网络协议·微服务
IP管家10 小时前
企业级IP代理解决方案:负载均衡与API接口集成实践
服务器·网络·数据库·网络协议·tcp/ip·容器·负载均衡
{⌐■_■}10 小时前
【gRPC】HTTP/2协议,HTTP/1.x中线头阻塞问题由来,及HTTP/2中的解决方案,RPC、Protobuf、HTTP/2 的关系及核心知识点汇总
网络·网络协议·计算机网络·http·rpc·golang
Clownseven11 小时前
[IP地址科普] 服务器公网IP、私网IP、弹性IP是什么?区别与应用场景详解
服务器·网络协议·tcp/ip
兴达易控11 小时前
ProfibusDP主站转modbusTCP网关与ABB电机保护器数据交互
网络协议