OSPF:开放式最短路径优先协议
基本概念:无类别(携带掩码)链路状态(基于拓扑)型IGP(AS内部)协议
更新量大——>为了能在中大型网络中生存——进行结构化的部署——趋向于划分,地址规划
触发更新:每30min周期更新;组播更新——224.0.0.5——all ospf 224.0.06——DR\BDR
存在V1–V3 目前通用V2 V3时IPV6使用的;
跨层封装3层报头,协议好89;支持等开销、负载均衡
一、OSPF的数据包类型
下面是OSPF数据包的头部结构:
跨层封装到IP报头,协议时89,
存在5个类型的数据包
(1)、hello——组播周期发送,用于邻居、邻接关系的海岸、建立、周期保活;
在hello包中存在本地一职邻居的RID,用于保活这些邻居;
hello time 10s 或者 30s dead time 为 hello time的4倍
(2)、DBD——数据库描述包
(3)、LSR——链路状态请求
(4)、LSU——链路状态更新——携带具体的LSA信息
(5)、LSACK——链路状态确认
二、状态机
down——一旦接收到hello包,进入下一个状态机
init——初始化 接收到的hello包中,若存在本地的RID,进入下一个状态
2way——双向通讯 邻居关系建立的标志
注意——若以上条件匹配则再进行下面的状态!!!
exstart——预启动 使用不携带信息的DBD包进行主从关系选举,RID数值大的为主,优先进入下一个状态机
exchange——准交换 使用DBD进行数据库目录的共享,需要ACK确认
loading——加载 基于对端的数据库目录,对照本地,然后使用LSR来获取位置的LSA信息;对端使用LSU来共享LSA,需要ACK确认;
full——转发 邻接关系建立的标志
三、OSPF 的工作过程
启动配置完成后,邻居间组播收发hello包,建立邻居关系,然后生成邻居表,
之后进行条件匹配,匹配失败的邻居关系将保持为邻居关系,仅hello包周期性保活即可;
匹配成功的邻居关系,将进行邻接关系的建立;过程中先使用DBD进行目录交互,
在使用LSR / LSU / LSACK来获取本地未知的LSA信息;最终完成邻接关系间的LSDB同步;
生成数据库表;
再然后,本地基于LSDB,生成有向图——>树形结构——>最短选路 SPF算法
基于树形结构计算本地到达所有未知网段的最短路径,然后将其加载到路由表中;
收敛完成,hello包周期保活;每30min邻居间再周期比对DBD包
结构突变:
(1)、新增网段——直连新增网段的设备,直接使用更新包告知本地的所有的邻接
(2)、断开网段——直连断开网段的设备,直接使用更新包告知本地的左右的邻接
(3)、无法沟通——dead time倒计时结束后,邻居间断开关系,删除信息
名词解释:
**LSA ——链路状态通告,再不不同环境下产生不同的拓扑或路由,一条信息为一个LSA **
LSDB——链路状态数据库 整个网络LSA的集合
LSDB同步——OSPF的收敛行为, 整个网络LSDB需要一致
LSA洪泛——OSPF的收敛性为, 需要整个网络接收到同一条LSA
四、OSPF的基础配置
[r1]ospf 1 router-id 1.1.1.1————启动时需要定义进程号,仅具有本地意义
建议配置RID——全网唯一——手工配置——本地环回接口最大数值——物理接口最大值
[r1-ospf-1]area 0 ——进入对应的区域进行宣告
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0
OSPFD的区域划分规则:
(1)、星型拓扑——非骨干区域需要连接骨干区域
(2)、必须存在ABR——区域边界路由器——区域间必须存在以一个边界设备
启动配置后,邻居间收发hello包,建立邻居关系,生成邻居表
hello包携带的参数:
注意——邻居间在进行邻居关系建立时,hello包有几个参数必须完全一致,否则无法建立邻居关系:
Hello time和dead time 区域ID(ABR) 认证字段 末梢区域标记
华为设备还要求邻居间建立邻居的接口ip地址子网掩码必须一致
配置:
[r2]display ospf peer —— 查看邻居表
[r2]display ospf peer brief ——查看邻居表的简表
邻居关系建立后,进行条件的<