OSPF 高级特性

Stub 不能引入外部路由,NSSA 可以引入外部路由。ABR 会将来自 NSSA 区域的 7 类 LSA 转换成 5 类 LSA

LSDB

OSPF Process 1 with Router ID (自身RouterId)
Area : 区域

  • Type:Router
  • Ls id: LSAid
  • Adv rtr: 发送者的 RouterID
  • Ls age: 生命周期
  • Len: 长度
  • Options:
    • E: 普通区域
    • 没有则为 Stub 区域
  • seq: 序列号
  • chksum: 校验和
  • Link count: 链路信息数量
    • Link ID: DR 的 IP 地址
    • Data: 自身接口的 IP 地址
    • Link Type: 链路类型
    • Metric: 开销 (10^8 / 带宽)

LSA 类型

类型 LSA 说明
1 Router-LSA 每个设备都会产生,描述设备的链路状态和开销,在所属的区域内传播
2 Network-LSA 由 DR 产生,描述本网段的链路状态,在所属的区域内传播
3 Nework-summary-LSA 由 ABR 产生,描述区域内某个网段的路由,并通告给发布或接收此 LSA 的非 Totally Stub 或 NSSA 区域
4 ASBR-summary-LSA 由 ABR 产生,描述到 ASBR 的路由,通告给除 ASBR 所在区域的其他相关区域
5 AS-external-LSA 由 ASBR 产生,描述到 AS 外部的路由,通告到所有的区域(除了 Stub 和 NSSA 区域)
7 NSSA LSA 由 ASBR 产生,描述到 AS 外部的路由,仅在 NSSA 区域内传播
9 Opaque LSA 提供用于 OSPF 的扩展通用机制。仅在接口所在的网段范围内传播,例如:支持 GR 的 Grace LSA
10 Opaque LSA 提供用于 OSPF 的扩展通用机制。在区域内传播,例如:支持 TE 的 LSA
11 Opaque LSA 提供用于 OSPF 的扩展通用机制。在自治域内传播

Router-LSA

Router-LSA

Type: Router

Network-LSA

地址 + 掩码

Type: Network

Nework-summary-LSA

目标网段 + 下一跳

Type: Sum-Net

ASBR-summary-LSA

距离最近的 ABR + ASBR route id

Type: Sun-ASBR

AS-external-LSA

目标网段 + ASBR route id

Type: External

NSSA LSA

路由类型

  • Intra 区域内路由 (O)
  • Inter 区域间路由 (OIA)
  • Type1 External 一类外部路由 (OE2 OE1)
  • Type1 External 二类外部路由 (ON2 ON1)

Type2 不会累加内部开销,Type1 会给引入的路由条目加上内部开销

Option

Option 可选字段出现在每一个 Hello 、DD 和 LSA 中。字段允许路由器和其他路由器进行一些可选性能的通信

  • DN: 用于避免环路
  • O: 支持 Opaque LSA
  • DC: 支持按需链路
  • EA: 支持外部属性 LSA
  • N/P: 对 7 类 LSA 的控制
  • MC: 支持 MOSPF
  • E: 支持接收外部 LSA
  • MT: 支持多拓扑 OSPF

快速收敛

  • 增量最短路径优先算法 I-SPF
    • 节点进行路由计算
    • 只第一次计算全部节点
  • 部分路由计算 PRC
    • 只对发生变化的路由进行重新计算
    • 根据 I-SPF 算出来的 SPT 来更新路由
  • 智能定时器
    • 对接口翻动等原因带来的网络不稳定进行智能控制,减少 LSA 泛洪

按优先级收敛
能够让某些特定的路由优先收敛

Database Overflow

限制非缺省外部路由数量,避免数据库超限

  1. 进入 Overflow 状态时,删除所有自己产生的非缺省外部路由
  2. 处于 Overflow 状态中,路由器不产生非缺省外部路由;丢弃新收到的非缺省外部路由且不回复确认报文
  3. 当超限状态计时器超时(默认 5s),检查外部路由数量是否仍然超过上限,如果超限则重启定时器,如果没有则退出超限状态
  4. 退出 Overflow 状态时,路由器删除超限状态计时器。产生非缺省外部路由,接收新收到的非缺省外部路由并回复确认报文,准备下一次进入超限状态

缺省路由

  • 普通区域
    • ASBR 上手动配置产生缺省 5 类 LSA,通告到整个 OSPF 自治区(特殊区域除外)
  • Stub 区域
    • ABR 自动产生一条缺省 3 类 LSA。通告到整个 Stub 区域
  • Totally Stub 区域
    • ABR 自动产生一条缺省 3 类 LSA。通告到整个 Stub 区域
  • NSSA 区域
    • 在 ABR 自动产生一条缺省 7 类 LSA,通告到整个 NSSA 区域内
    • 在 ASBR 手动配置产生一条缺省 7 类 LSA,通告到整个 NSSA 区域内
  • Totally NSSA 区域
    • ABR 自动产生一条缺省 3 类 LSA。通告到整个 NSSA 区域

路由过滤

路由过滤的方法

  • 路由引入过滤
  • 路由视图下 LSA 过滤
    • 3 类 LSA 学习、发布的过滤
    • 5、7 类 LSA 生成的过滤
  • 接口视图下 LSA 过滤
  • 路由计算的过滤
    • OSPF 对数据库中的 LSA 计算为路由条目时进行过滤
    • 只对通过 SPF 算法计算出来的路由是否放置到路由表有效,产生该路由的 LSA 仍然会在 OSPF 自治系统内扩散

OSPF 双栈

OSPFv3

OSPFv3

与 OSPFv2 的差别

基于链路的运行

OSPFv2 基于网路运行,两个路由器要形成邻居关系必须在同一网段

OSPFv3 基于链路运行,一个链路可以划分为多个子网,节点即使不在同一子网内,只要在同一链路上就可以直接通信

使用链路本地地址

链路本地地址: FE80::/

  • OSPFv3 使用链路本地地址作为发送报文的源地址
  • 在虚链路上必须使用全球范围地址或站点本地地址作为 OSPFv3 协议报文的源地址。
  • 由于链路本地地址只在本链路上有意义且只能在本链路上泛洪,因此链路本地地址只能出现在 Link LSA 中

链路支持多实例复用

OSPFv3 支持在同一链路上运行多个实例,实现链路复用并节约成本

多实例复用

通过 Router ID 唯一标识邻居

OSPFv2 中,当网络类型为点到点/虚连接与邻居相连时,通过 Router ID 来标识邻居路由器,当网络类型为广播/ NBMA 时,通过邻居接口 IP 地址来标识邻居路由器

OSPFv3 取消了这种复杂性,无论何种网络类型

认证的变化

因 IPv6 扩展头部提供了认证功能, OSPFv3 取消了认证字段

Stub 区域的支持

由于 OSPFv3 支持对未知类型 LSA 的泛洪,为防止大量未知类型 LSA 泛洪进入 Stub 区域,对于向 Stub 区泛洪的未知类型 LSA 进行了明确规定,只有当未知类型 LSA 的泛洪范围是区域或链路而且 U 位没有置位时,未知类型 LSA 才可以向 Stub 区域泛洪

U位

报文的不同

报头区别

Hello 区别

LSA 区别

U-bit:
S1/S2:

Option 字段的不同

Option 字段区别

LSA 的类型和内容不同

Function Code|LS Type|描述|说明

1
2
3
4
5
6
7
8
9

OSPFv2 LSA | OSPFv3 LSA | 异同点说明

LSA | OSPFv2 LS ID | OSPFv3 LS ID

在 OSPFv3 中,由同一个设备产生相同类型的多个 LSA ,根据 LS ID 区分。LS ID 格式为本地唯一的 32 位整数

LSA

Type 8

Intra Area Prefix LSA

Type 9

相关指令

系统视图

查看路由器始发的 LSDB

# display ospf lsdb router RouterID
display ospf lsdb router 192.168.0.1

查看 OSPF 路由表

display ospf routing

查看 OSPF 报错信息

display ospf error

创建 OSPFv3 进程

# ospfv3 进程号
ospfv3 1 

显示 OSPFv3 接口信息

# display ospfv3 interface 接口号
display ospfv3 interface g0/0/0

查看 OSPFv3 LSDB

# display ospfv3 lsdb [参数]
display ospfv3 lsdb

接口视图

接口过滤 LSA

# ospf filter-lsa-out 参数
ospf filter-lsa-out summary acl 2000

接口开启 OSPFv3 功能

# ospfv3 进程号 area 区域号 [instance 实例号]
ospfv3 1 area 0
ospfv3 1 area 0 in stance 1

OSPF 视图

生成缺省路由

# default-route-advertise [参数]
default-route-advertise always

调用过滤策略 # ASBR 能够影响邻居的路由表

# filter-policy {acl|acl-name|ip-prefix|route-policy} [参数] {export|import}
filter-policy ip-prefix 1 import

OSPFv3 视图

指定 OSPFv3 RouteId

# router-id RouteId
router-id 1.1.1.1