OSPF核心机制精要:选路、防环与设计原理
一、OSPF选路规则解析
OSPF作为经典的链路状态路由协议,其选路规则采用层次化优先级机制,不同路由类型遵循严格比较顺序:
1. 路由类型优先级
优先级 | 路由类型 | 描述 |
---|---|---|
1 | 域内路由 | 通过1类、2类LSA生成 |
2 | 域间路由 | 通过3类LSA生成 |
3 | 域外路由 | 通过5类/7类LSA生成 |
2. 不同类型路由比较规则
域内路由之间,域间路由之间会选择开销值小的路由加到路由表上
域内与域间
域内路由(Intra-Area)绝对优先于域间路由(Inter-Area)
域间与域外
域间路由绝对优先于域外路由(External)
域外路由之间
E类型路由分为两类:
- 类型1(E1):总开销=种子度量值+路径开销
- 类型2(E2):总开销=种子度量值(默认类型)
比较规则:
- E1路由优先于E2路由
- 同类型比较:
- E1:比较总开销(种子+路径)
- E2:先比较种子度量值,相同则比较路径开销
二、OSPF防环机制深度剖析
1. 区域内防环(基于SPF算法的确定性计算)
1)基础概念
核心LSA类型:
Router-LSA (Type-1)
:描述路由器链路状态(接口、邻居、Cost)
Network-LSA (Type-2)
:由DR生成,描述广播/NBMA网段连接关系
2)有向图构建规则
链路类型(Link Type)
Stub链路:
Stub网段表示该网段只有数据入口,例如一个Loopback接口就是一个 Stub网段。 此胶片描述了路由器节点和Stub网段的表示方式。 Cost表示从一个端点到另一个端点的开销,该参数可以在OSPF接口上配置,表示数据离开该接口(出接口)的开销。
Transit链路:
Transit网段有能力转发既不是本网段产生的,也不以本网段做为目的地的数据。 有至少两台路由器的广播型网段或NBMA网段就是一种Transit网段。 从路由器到所连Transit网段的开销值就是连接到这个网段的接口所配置的开销值。 从一个Transit网段到连接到这个网段的路由器的开销为0。(称为伪节点)
Point-to-Point(P2P)链路:
LSDB描述两接口处于同一网段的点到点网段的规则如下: 两台路由器经由两条有向线段直接相连,每个方向一条。 连接两个接口的网段被表示成Stub网段。 两个路由器同时通告Stub连接到该PPP网段。
3)SPF计算过程
OSPF的SPF计算分为两个阶段,确保不会因Stub网段引入环路:
第一阶段:仅计算有双向箭头的节点,生成最短路径树(SPT)。
- 使用Dijkstra算法,每次选择最小Cost的节点加入SPT。
- 关键防环:Transit网段到路由器的Cost=0,确保不会反向计算。
第二阶段:挂载Stub网段到SPT,作为叶子节点。
- Stub网段不参与拓扑计算,仅作为终点,避免环路。
4)SPF计算实战
拓补:
生成有向图:
第一阶段(忽略Stub):
第二阶段(最终SPT):
2. 区域间防环(基于星型拓扑和水平分割)
1)骨干区域强制连接
所有非骨干区域(非Area 0)必须直接连接到Area 0,区域间路由需通过Area 0中转,形成逻辑星型拓扑,避免区域间直接传递路由。
2)ABR的严格规则
规则1:ABR仅将直连区域的内部路由注入Area 0,不会将非骨干区域的Type-3 LSA回传至Area 0。
示例:若ABR从Area 1收到Type-3 LSA,不会将其重新注入Area 0。
规则2:ABR不会将Type-3 LSA回传到原始区域(类似水平分割)。
规则3:ABR必须与Area 0有活跃邻接关系,否则不参与区域间路由计算。
3)Cost累加机制
区域间路由的Cost按距离矢量方式逐跳累加(ABR通告自身Cost,下游路由器叠加到达ABR的Cost),但通过星型拓扑限制路径唯一性。
3. 域外防环(依赖Type-4 LSA和ASBR定位)
1)ASBR的定位
外部路由(Type-5 LSA)的防环依赖于准确找到ASBR的位置:
- 同一区域:通过Type-1/2 LSA计算ASBR路径。
- 其他区域:依赖Type-4 LSA(ASBR Summary LSA)定位ASBR,确保路径可达。
2)Type-4 LSA的作用
- Type-4 LSA由ABR生成,描述ASBR的位置,其他区域路由器通过Type-4 LSA计算到达ASBR的最短路径,再结合Type-5 LSA计算外部路由。
- 防环逻辑:Type-5 LSA的传播依赖Type-1/4 LSA的路径计算,确保外部路由的下一跳始终指向正确的ASBR。
三、RFC 2328附录E
1. 问题背景
当存在相同网络号不同掩码的外部路由时:
OSPF是一种基于链路状态型路由协议,其中3 类、5 类、7类LSA传递的是路由信息,但是由于用于标识一条LSA的头部信息中没有掩码信息,会导致路由覆盖的情况。
2. 附录E解决方案
场景 | 处理方式 |
---|---|
短掩码先注入 | 长掩码路由使用定向广播地址作为Link-ID |
长掩码先注入 | 1. 撤销原LSA 2. 重新注入短掩码路由 3. 长掩码路由使用定向广播地址 |
3. 实现条件
- 网络地址需连续分配
- 避免真实网络使用定向广播地址
- 序列号递增保证LSA更新有效性