OSPF路由协议

OSPF路由协议概述

内部网关协议和外部网关协议

  • 自治系统(AS):每一个区域就是一个自治系统
  • 内部网关协议(IGP):每一个区域内的协议叫内部网关协议
  • 外部网关协议(EGP):区域之间的网络连接协议叫做外部网关协议

OSPF(开放式最短路径优先)是一个内部网关协议(简称IGP),用于在单一自治系统(AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。

OSPF工作过程

  • 邻居列表
  • 链路状态数据表
  • 路由表

建立邻接关系链路状态数据库(学习链路状态信息)最短路径树(Dijkstra算法)路由表

OSPF区域

  • 为了适应大型的网络,OSPFAS内划分多个区域
  • 每个OSPF路由只维护所在区域的完整链路状态信息

区域ID

  • 区域ID可以表示成一个十进制的数字
  • 也可以表示成一个IP

AREA 0(骨干区域)

  • Area 0 属于核心(骨干区域),骨干区域有且只有一个,每一个区域都和骨干区域相连

  • 负责区域间路由信息传播

Router ID

  • OSPF区域内唯一识别路由器的IP地址

Router ID选取规则

  • 选取路由器loopback接口上数值最高的IP地址
  • 如果没有loopback接口,在物理端口种选取IP地址最高的
  • 也可以使用router-id命令指定Router ID

DR和BDR

  • DR:负责发送信息到其他所有OSPF路由器

  • BDR:负责监控备份DR的状态,并在当前DR发生故障时接替其角色
  • DR失效BDR顶替DR

  • 其他路由器(DRothers)只和DRBDR形成邻接关系

DR和BDR的选举方法

  • 自动选举DRBDR
    • 网段上Router ID最大的路由器将被选举为DR,第二大的将被选举为BDR
  • 手工选择DRBDR
    • 优先级范围是0~255,数值越大,优先级越高,默认为我
    • 如果优先级相同,则需要比较Router ID
    • 如果路由器的优先级被设置为0,它将不参与DRDBR的选举

DR和BDR的选举过程

  • 路由器的优先级可以影响一个选举过程,但是它不能强制更换已经存在的DRBDR路由器

OSPF的组播地址

  • 224.0.0.5:负责将信息发送给下面的路由器
  • 224.0.0.6:负责接受下面路由的信息

OSRF的度量值为COST

  • COST=10的8次方/BW(百兆/带宽)
  • 最短路径是基于接口指定的代价(cost)计算的

OSPF的数据报类型

OSPF数据包

  • 承载在IP数据包内,使用协议号89

OSPF的包类型

OSPF的包类型 描述
Hello 用于发现和维持邻居关系,选举DRBDR
数据库描述包(DBD 用于向邻居发送摘要信息以同步链路状态数据库
链路状态请求包(LSR 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息
链路状态更新包(LSU 收到LSR后发送链路状态通告(LAS),一个LSU数据包可能包含几个LSA
链路状态确认包(LSAck 确认已经收到LSU,每个LSA需要被分别确认

OSPF启动的第一个阶段是使用Hello报文建立双向通信的过程

Down状态:未激活状态,信息交互,后激活

Init状态:初始化状态,发送信息进行交换

2-Way状态:信息交互,并选出DRBDR,单并未确认DRBDR

启动的第二个阶段是建立完全邻接关系

ExStart状态:准启动状态,并确认DRBDR

Exchange状态:交换状态,传输DBDLSAck数据包

Loading状态:传输LSRLSU(LSA)LSAck

Full状态:恒定状态,收敛

OSPF将网络划分为四种类型

  • 点到点网络(Point-to-Point
  • 广播多路访问网络(Broadcast Multiaccess,BMA
  • 非广播多路访问网络(None Broadcast Multiaccess,NBMA
  • 点到多点网络(Point-to-Multipoint

从以下几方面考虑OSPF的使用

  • 网络规模
  • 网络拓扑
  • 其他特殊要求
  • 路由器自身要求

OSPF的特点

  • 可适应大规模网络
  • 路由变化收敛速度块
  • 无路由环
  • 支持变长子网掩码VLSM
  • 支持区域划分
  • 支持以组播地址发送协议报

OSPF与RIP的比较

OSPF RIP v1 RIP v2
链路状态路由协议 距离矢量路由协议 距离矢量路由协议
没有跳数的限制 RIP15跳限制,超过15 的路由被认为不可达
支持可变长子网掩码(VLSM) 不支持可变长子网掩码(VLSM) 支持可变长子网掩码(VLSM)
收敛速度块 收敛速度慢 收敛速度慢
使用组播发送链路状态更新 周期性广播更新整个路由表 周期性广播更新整个路由表

OSPF配置命令

启动OSPF路由进程

router ospf process-id

指定OSPF协议运行的接口和所在的区域

network address inverse-mask area area-id (反码)

修改接口的优先级

ip ospf priority priority

修改接口的Cost值

ip ospf cost cpst

查看路由表

show ip route

查看邻居列表及其状态

show ip ospf neighbor

查看OSPF的配置

show ip ospf

查看OSPF接口的数据结构

show ip ospf interface type number

现实场景中哪个做DR哪个先启动

OSPF多区域原理与配置

生成OSPF多区域的原因

  • 改善网络的可扩展性
  • 快速收敛

OSPF的三种通信量

区域通信量

  • 单个区域的路由之间交换数据包构成的通信量

域间通信量 (ABR路由)

  • 不同区域的路由器之间交换数据包构成的通信量

外部通信量 (ASBR路由)

  • OSPF域内的路由器与OSPF区域外或另一个自治系统内的路由器之间交换数据包构成的通信量

OSPF路由类型

  • 区域边界路由器 ABR
  • 自治系统边界路由器 ASBR

OSPF区域类型

  • 骨干区域Area 0
  • 非骨干区域——根据能够学习的路由种类来区分

    • 标准区域
    • 末梢区域(stub)
    • 完全末梢(Totally stubby)区域
    • 非纯末梢区域(NSSA)
  • 不同的末梢区域中跑的是不同的是LSA

OSPF链路状态数据库的组成

  • 每个路由器都创建了由每个接口、对应的相邻节点和接口速度组成的数据库
  • 链路状态数据库中没个条目称为LSA(链路状态通告),常见的有六种LSA类型

链路状态通告(LSA)类型

类型代码 描述 用途
Type 1 路由器LSA 由区域内的路由器发出的(所有路由器都会发出)(交互链路状态)
Type 2 网络LSA 由区域内的DR发出的(宣告网络状态信息)(1和2每个区域都有)
Type 3 网络汇总LSA ABR发出的,其他区域的汇总链路通告(区域间路由信息汇总,跨区域传输)
Type 4 ASBR汇总LSA ABR发出的,用于通告ASBR信息(告诉其他路由ASBR位置)
Type 5 AS外部LSA ASBR发出的,用于通告外部路由(通告外部路由网段信息,收集外部网段信息)
Type 7 NSSA外部LSA NSSA区域内的ASBR发出的,用于通告本区域连接的外部路由(只在NSSA区域内存在)

每一种区域种允许泛洪的LSA

区域类型 1&2 3 4&5 7
骨干区域(区域0 允许 允许 允许 不允许
非骨干区域,非末梢区域 允许 允许 允许 不允许
末梢区域 允许 允许 不允许 不允许
完全末梢区域 允许 不允许* 不允许 不允许
NSSA 允许 允许 不允许 允许

OSPF常用查看命令

命令 功能
show ip route 查看路由表信息(直连/学习)
show ip route ospf 只查看OSPF学习到的路由
show ip protocol 查看OSPF协议配置信息
show ip ospf 查看OSPF是如何配置的以及ABR的信息
show ip ospf database 查看LSDB内的所有LSA数据信息
show ip ospf interface 查看接口上OSPF配置的信息
show ip ospf neighbor 查看OSPF邻居和邻接的状态
show ip ospf neighbor detail 查看OSPF邻居的详细信息(包括DR/BDR)
debug ip ospf adj 查看路由器”邻接”的整个过程
debug ip ospf packet 查看每个OSPF数据包的信息
clear ip route 清空路由表

路由器对路由条目的选择

  • 路由器只把最优的路由条目添加到路由表
  • 选择路由条目的依据

    • 管理距离
    • 度量值
  • 负载均衡的路由条目

末梢区域和完全末梢区域

  • 满足以下条件的区域

    • 只有一个默认路由作为其区域的出口
    • 区域不能作为虚链路的穿越区域
    • Stub区域里无自治系统边界路由器ASBR
    • 不是骨干区域Area 0
  • 末梢区域

    • 没有LSA4、5、7通告
  • 完全末梢区域
    • 除一条LSA3的默认路由通告外,没有LSA3、4、5、7通告

OSPF高级配置

理解路由重分发

  • 一个单一IP路由协议是管理网络中IP路由的首选方案
  • Cisco IOS能执行多个路由协议,每一个路由协议和该路由协议所服务的网络属于同一个自治系统
  • Cisco IOS使用路由重分发特性以交换由不同协议创建的路由信息

路由重分发的考虑

  • 度量值(带宽)
  • 管理距离

重分发到OSPF域中路由的路径类型

  • 类型1的外部路径 (Type 1 external path, E1)
  • 类型2的外部路径 (Type 2 external path, E2)

路由器A有两条到达外部目的网络10.1.2.0的路径

  • E1类型

    • 路径A-B-D的代价是25(20+5) (优先)
    • 路径A-C-D代价为48(18+30)
  • E2类型
    • 路径A-B-D的代价是20
    • 路径A-C-D的代价为18 (优先)

动态路由——OSPF 理论篇 (二)_第1张图片

路由重分发配置命令

  • redistribute protocol [metric metric-value] [metric-type type-value] [subnets]

NSSA区域

NSSA区域是OSPF RFC的补遗

  • 定义了特殊的LSA类型7
  • 提供类似stub areatotally stubby area的优点
  • 可以包含ASBR

OSPF链路状态通告

  • LSA(NSSA EXternal LSA,NSSA外部LSA)

NSSA区域重分发路由类型

  • N1N2
  • 经过NSSA区域ABR后转换为E1E2(7变成5)

配置NSSA区域命令

  • area area-id nssa [no-summary]

OSPF的路径类型

  • 区域内路径
  • 区域外路径
  • 类型1的外部路径
  • 类型2的外部路径

OSPF的路径类型的优先级

  • 区域内路径: 优先级1
  • 区域间路径: 优先级2
  • E1外部路径: 优先级3
  • E2外部路径: 优先级4
  • 1表示最高的优先级,4表示最低的优先级

OSPF虚链路

  • 虚链路

    • 值一条通过一个非骨干区域连接到骨干区域的链路
  • 虚链路的目的

    • 通过一个非骨干区域连接一个区域到骨干区域
    • 通过一个非骨干区域连接一个分段的骨干区域
  • 配置虚链路的规则及特点

    • 虚链路必须配置在两台ABR路由器之间
    • 传送区域不能是一个末梢区域
    • 虚链路的稳定性取决于其经过的区域的稳定性
    • 虚链路有助于提供逻辑冗余
  • 虚链路的配置命令
    • area area-id vrtual-link router-id

总结:

OSPF域中路由的路径类型

  • E1(N1)
  • E2(N2)

OSPF的四种路由类型

  • DR
  • BDR
  • ABR
  • ASBR

OSPF的五大区域

  • 骨干区域
  • 标准区域
  • 末梢区域
  • 存末梢区域
  • 非存末梢区域

OSPF的五大数据包类型

  • hello
  • DBD
  • LSR
  • LSU(LSA)
  • LSACK

OSPF的六种LSA

  • 路由器LSA
  • 网络LSA
  • 网络汇总LSA
  • ASBR汇总LSA
  • AS外部LSA
  • NSSA外部LSA

OSPF的七种状态

  • Down
  • init
  • 2-Way
  • Exstart
  • Exchange
  • loading
  • ful