动态路由——OSPF 理论篇
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态路由——OSPF 理论篇相关的知识,希望对你有一定的参考价值。
OSPF路由协议OSPF路由协议概述
内部网关协议和外部网关协议
- 自治系统(
AS
):每一个区域就是一个自治系统 - 内部网关协议(
IGP
):每一个区域内的协议叫内部网关协议 - 外部网关协议(
EGP
):区域之间的网络连接协议叫做外部网关协议
OSPF
(开放式最短路径优先)是一个内部网关协议(简称IGP
),用于在单一自治系统(AS
)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP
),故运作于自治系统内部。
OSPF工作过程
- 邻居列表
- 链路状态数据表
- 路由表
建立邻接关系⟶链路状态数据库(学习链路状态信息)⟶最短路径树(Dijkstra
算法)⟶路由表
OSPF区域
- 为了适应大型的网络,
OSPF
在AS
内划分多个区域 - 每个
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
)只和DR
及BDR
形成邻接关系
DR和BDR的选举方法
- 自动选举
DR
和BDR
- 网段上
Router ID
最大的路由器将被选举为DR
,第二大的将被选举为BDR
- 网段上
- 手工选择
DR
和BDR
- 优先级范围是
0~255
,数值越大,优先级越高,默认为我 - 如果优先级相同,则需要比较
Router ID
- 如果路由器的优先级被设置为
0
,它将不参与DR
和DBR
的选举
- 优先级范围是
DR和BDR的选举过程
- 路由器的优先级可以影响一个选举过程,但是它不能强制更换已经存在的
DR
或BDR
路由器
OSPF的组播地址
- 224.0.0.5:负责将信息发送给下面的路由器
- 224.0.0.6:负责接受下面路由的信息
OSRF的度量值为COST
COST=10的8次方/BW
(百兆/带宽)- 最短路径是基于接口指定的代价(
cost
)计算的
OSPF的数据报类型
OSPF数据包
- 承载在
IP
数据包内,使用协议号89
OSPF的包类型
OSPF 的包类型 |
描述 |
---|---|
Hello 包 |
用于发现和维持邻居关系,选举DR 和BDR |
数据库描述包(DBD ) |
用于向邻居发送摘要信息以同步链路状态数据库 |
链路状态请求包(LSR ) |
在路由器收到包含新信息的DBD 后发送,用于请求更详细的信息 |
链路状态更新包(LSU ) |
收到LSR后发送链路状态通告(LAS ),一个LSU 数据包可能包含几个LSA |
链路状态确认包(LSAck ) |
确认已经收到LSU ,每个LSA 需要被分别确认 |
OSPF启动的第一个阶段是使用Hello报文建立双向通信的过程
Down
状态:未激活状态,信息交互,后激活
Init
状态:初始化状态,发送信息进行交换
2-Way
状态:信息交互,并选出DR
和BDR
,单并未确认DR
和BDR
启动的第二个阶段是建立完全邻接关系
ExStart
状态:准启动状态,并确认DR
和BDR
;
Exchange
状态:交换状态,传输DBD
和LSAck
数据包
Loading
状态:传输LSR
、LSU(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 |
---|---|---|
链路状态路由协议 | 距离矢量路由协议 | 距离矢量路由协议 |
没有跳数的限制 | RIP 的15 跳限制,超过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
通告
- 除一条LSA3的默认路由通告外,没有
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
(优先)
- 路径
路由重分发配置命令
redistribute protocol [metric metric-value] [metric-type type-value] [subnets]
NSSA区域
NSSA区域是OSPF RFC的补遗
- 定义了特殊的
LSA
类型7
- 提供类似
stub area
和totally stubby area
的优点 - 可以包含
ASBR
OSPF链路状态通告
LSA(NSSA EXternal LSA,NSSA外部LSA)
NSSA区域重分发路由类型
N1
、N2
- 经过
NSSA
区域ABR
后转换为E1
、E2
(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
以上是关于动态路由——OSPF 理论篇的主要内容,如果未能解决你的问题,请参考以下文章