基本概念
OSPF 是链路状态路由协议,目前业内使用最广泛的 IGP 协议之一
OSPF 版本
- IPv4 协议使用的是 OSPF Version 2(RFC2328)
- IPv6 协议使用的是 OSPF Version 3(RFC2740)
这里暂时记录 OSPF Version 2 的使用
常用属性
- Router-id(路由器标识符)在一个 OSPF 区域内唯一,用于标识该路由器,以 IP 地址格式来定义
- OSPF Area(OSPF 区域)用于标识一个 OSPF 的区域,类似于分组
- Cost(开销)路由的度量值,华为设备的 Cost 计算为 Cost = "100Mit/s" / "接口带宽"。这个 "100Mbit/s"是一个参考值,可以自己配置
OSPF 的五种报文
报文名称 | 报文功能 |
Hello | 周期性发送,用于发现维护 OSPF 邻居关系 |
Database Description | 声明自身数据库摘要信息,用于设备之间数据库同步 |
Link State Request | 用于向对方请求所需要的 LSA,只有成功交换 DD 保文后才会向对方发送 LSR 报文 |
Link State Update | 用于向对方发送所需的 LSA |
Link State ACK | 用于对接收到的 LSA 进行确认 |
OSPF 三张表
- 实验图
- 邻居表
// 查看 OSPF 邻居摘要表
display ospf peer brief
- LSDB 表
// 查看 LSDB 数据库
display ospf lsdb
- OSPF 路由表
// 查看 OSPF 路由表
display ip routing-table protocol ospf
OSPF 邻居建立流程
状态 | 工作 |
down | 未建立连接 |
init | 发送 Hello 报文 |
2-way | 建立邻居关系,选举 DR 和BDR |
exstart | 确定由哪边开始先发DD报文, |
exchange | 通过 DD 包,建立拓扑表 |
loading | 请求路由信息,交互 LSR、LSU、LSA 报文 |
full | 建立邻接关系,LSDB同步完成 |
OSPF 支持的网络类型
- P2P(Point to Point 点对点)
- BMA(Broadcast Multiple Access 广播式多路访问),典型的就是 Ethernet
- NBMA(Non-Broadcast Multiple Access 非广播是多路访问)
- P2MP(Point to Multi-Point 点到多点)
DR与BDR
出现背景
- 如果每台 OSPF 路由器都与其他路由器建立邻接关系,会导致网络中出现过多的 OSPF 邻接关系,增加了设备的负担
- 如果拓扑出现变更,会造成带宽的浪费及设备资源的损耗
应用场景
目的是为提升网络收敛是速度。主要应用于广播型多路访问的网络(BMA)、非广播型多路访问(NBMA)。以太网(Ethernet)就是一种典型的广播型多路访问网络
选举规则
- 通过优先级,优先级最高的成为 DR,次高的成为 BDR(DR 的备份,当 DR 出现故障,BDR接替 DR)
- 如果优先级相同,比较 router-id,router-id 更大,谁就是 DR
OSPF 区域
出现背景
OSPF 链路算法比较复杂,如果网络过大,在网络收敛计算路由时,如果绘制全网的路由,会消耗大量内存资源,可能会超出计算能力
优点
- 将一个 OSPF 区域划分为多个区域,可以 OSPF 支持更大规模的组网
- OSPF 减少了 LSA 泛洪的的范围,这样可以减轻算法的工程量,从而优化网络
- 在区域边界可以做路由汇总,减小了路由表的规模
- 多区域提高了网络扩展性,有利于组建更大规模的网络
OSPF 路由器类型
- 区域内路由器(Internal Router)
- 区域边界路由器ABR(Area Border Router)分割 OSPF 区域之间的连接的路由器
- 骨干路由器(Backbone Router)
- 自治系统边界路由器ASBR(AS Boundary Router)分割不同协议之间连接的路由器
注意:只要是多区域,必须有区域 0,且其他区域必须与区域 0 直连