文章目录
ospf 的五种报文格式
hello 报文
hello 报文是用来 " 打招呼 " 的报文
-
hello 报文会周期性的发送给路由器本身的邻居–使用组播地址 224.0.0.5 进行发送
-
DR / BDR 发送和接受路由更新使用的是组播地址 224.0.0.6
-
hello 报文里面描述了 DR 和 BDR 的邻居,接口状态、接口类型等
区域类型封装在 hello 报文中
-
hello 报文中的 Option 字段
DN:在 MPLS 网络中进行防止环路的
O:是否支持 9 、10 、11 类LSA
N:是否支持 NSSA 区域,如果置位则表示支持
P:需做一个七类转五类的 LSA
DC:按需链路,发送一次 hello
E:支持五类的 LSA
E 和 N 不能同时置位
DD 报文
- DD报文是路由器之间发送 DD 报文来告知对端自己拥有的路由条目
- DD报文的内容是每条路由的 LSA 的 header 信息, header 信息占用的资源比较小
- DD报文中的假 DD 报文是指在 Exstart 状态下发的 DD 报文,是用来确认主从关系的
- 真的 DD 报文是指带有路由信息的 DD 报文,对方收到后会对比自己的 LSDB 数据库,如果发现自己缺失 LSA 条目则会发送 LSR 报文进行请求信息
LSR 报文
- 两台路由器交互完彼此的 DD 报文之后,会发现自己缺失的路由信息条目,之后就会使用 LSR 报文进行请求
LSU 报文
用来告知对方需要的 LSA 信息
LSA 信息在 LSU 报文中携带
-
LSA 的固定字段
LS Age:LSA 生存的时间 (单位为秒)
LS Type:LSA 的类型,常见的 LSA 类型有五种
Link State ID:是指该 LSA 描述的链路状态信息
Advertising Router:是指该 LSA 的产生设备
Sequence Number:用于检测新旧的 LSA
-
通过以下三个字段唯一标识一条 LSA
LS Type
Link State ID
Advertising Router
-
LSA 的更新规则
ospf 的 LSA 每 1800s (30分钟)更新一次,每更新一次序列号就会 +1
ospf 的Max age 超过 3600s (60分钟)删除此条 LSA
LSA 的 Age 时间越小越新,越大越旧
LSDB 里面的每一条 LSA 都有自己的序列号
序列号最小为:80000001
序列号最大为:7FFFFFFF
-
LSA 的新旧比较
先比较序列号,越大越优先
如序列号相同,则比较校验值 (checksum) 越大越优先
如果校验值相同则比较 LSA 的 Age 时间是否等于 Max Age
如果 Age 时间不等于 Max Age 时间,则会比较它们的差值,如果差值大于 900s 小的优先
如果 Age 时间不等于 Max Age 时间,则会比较它们的差值,如果差值小于 900s 说明是同一条 LSA
-
什么情况下会触发 LSA 的更新
1800s 时间到期
触发更新(接口地址变化、接口开销变化、删除接口、删除通告/重新通告 等)
LSACK 报文
- 当请求端收到来自发送端的 LSA 信息条目,会发送 LSACK 进行消息确认
ospf 的网络类型
-
P2P----点到点网络
ospf 的点到点网络会生成两种一类的 LSA (p2p stub )
串口网络默认开销值为 48 ,默认的带宽为 2 MB
-
P2MP----点到多点网络
-
NBMA----帧中继网络(淘汰)
-
Broadcast----广播网络(以太网)
广播网络的默认开销值为 1
计算方式为:默认带宽除以实际带宽
-
Vinual Link----虚连接网络
用于连接非骨干区域
虚连接可以另外提供冗余链路
一般不推荐使用虚连接,所以在网络规划的时候要规划好自己的网络
ospf 虚连接应用问题
-
应用场景
非骨干区域没有连接到骨干区域
骨干区域被分割
为了保证骨干区域的健壮性
解决次优路径问题
虚连接代替骨干区域
-
虚连接的缺点
必须要手动指定邻居
不能汇总
很容易产生环路
不推荐使用虚连接
ospf 中 DR / BDR
DR:指定路由器
BDR:备份指定路由器
-
DR 和 BDR 的产生
DR 和 BDR 只在 广播 和 NBMA 网络中才会出现
DR 和 BDR 是一条链路上产生一个
-
DR 和 BDR 的作用
DR 不支持抢占,如果支持抢占的话会引发 LSDB 数据库的重新收敛,引起网络震荡,占用较大的带宽资源
ospf 网络中如果没有 DR 数据库是不会进行同步的
网络中所有的路由器都和 DR 和 BDR 建立邻接关系
网络中的 DRther 和普通设备建立邻居关系
-
DR 和 BDR 的选举
DR 和 BDR 都不支持抢占
先选举 BDR 之后 BDR 升为 DR 然后重新选择 BDR
比较优先级,默认优先级为 1 越大越优先,优先级为 0 则表示不参与 DR 和 BDR 的选举
如果通过优先级没有比较成功,则比较设备自己的 Router-id 越大越优先
ospf 的 LSDB
减少 ospf 中 LSDB 数据库的规模,可以提高带宽的利用率
使用以下方法可以对 LSDB 进行优化,后面的文章会有解释
- 划分区域(设置多个非骨干区域,前提是非骨干区域必须和骨干区域相连接)
- 特殊区域(使用 Stub、NSSA 等等特殊区域进行网络的优化)
- 路由汇总(将一个网段的路由信息进行整合,方便快捷)
ospf 的真假 ABR 问题
- 真 ABR 需要满足在骨干区域有邻居
- 假 ABR 在骨干区域无邻居
从非骨干区域收到的三类 LSA 只接受不选路
作者:DC