在同一个区域内,有四台路由器:
router-id:4.4.4.4:1,2,4
router-id:3.3.3.3:2,3,4
router-id::2.2.2.2:1,2,5
router-id::1.1.1.1:2,5,6
使用OSPF组网,这四台路由器的交互过程如下。
1. 接口启用 OSPF → 发送 Hello 包
四台路由器在网段 2 的接口都会:
- 以 224.0.0.5 组播发送 Hello 包
- 携带:Router-ID、区域号、掩码、Hello/Dead 时间、邻居列表
在网段 2上:
4.4.4.4、3.3.3.3、2.2.2.2、1.1.1.1 互相收到 Hello,开始建立邻居关系。
2. 邻居状态机变迁
- Down:初始状态
- Init:收到对方 Hello,但自己没在对方邻居列表里
- 2-Way:收到 Hello,且自己出现在对方邻居列表→ 至此,邻居关系建立完成
在多接入网络(网段 2) 中,接下来会选举:
- DR(指定路由器)
- BDR(备份指定路由器)其他为 DROther。
选举规则:
- 接口 OSPF 优先级高的胜出
- 优先级相同 → Router-ID 大的胜出
- 4.4.4.4 最大 → 最可能成为 DR
- 3.3.3.3 次之 → 最可能成为 BDR
- 2.2.2.2、1.1.1.1 → DROther
3. 建立邻接关系(Adjacency)
只有:
- DR ↔ BDR
- DR ↔ DROther
- BDR ↔ DROther
会建立完全邻接,进入 ExStart 状态。
DROther 之间只停留在 2-Way,不直接同步 LSA。
4. 数据库同步过程(DBD、LSR、LSU、LSAck)
(1)ExStart
DR/BDR 与邻居协商 主从关系(Router-ID 大为主),确定 DBD 序列号。
(2)Exchange
互相发送 DBD(数据库描述包),携带 LSA 头部,交换 “我有哪些 LSA”。
(3)Loading
收到 DBD 后,对比自己缺少的 LSA,发送:
- LSR(Link State Request):请求缺失的 LSA
对方回复:
- LSU(Link State Update):携带完整 LSA
收到 LSU 后回复:
- LSAck:确认收到
5. 数据库完全同步(Full 状态)
当所有 LSA 同步完成,邻居状态变为 Full。
此时:
四台路由器在同一区域拥有完全相同的 LSDB。
二、LSA 传播逻辑(同一区域)
- 每台路由器生成 Type 1 LSA(Router LSA),宣告自己直连链路
- DR 在广播网络生成 Type 2 LSA(Network LSA),描述网段 2 上所有节点
- 所有 LSA 在同一区域内泛洪
- 每台路由器用 SPF 算法计算最短路径,生成路由表