OSPF路由协议是动态路由协议的其中一种。
动态路由协议基于AS分类:
基本概念
OSPF为AS之内运行的一种动态路由协议,首先它是开放式最短路径优先协议,无类别链路状态型路由协议。其次它是公有协议;跨层封装到IP报头,协议号为89; 组播更新:224.0.0.5或224.0.0.6。存在触发更新、周期更新时间为30分钟。在跑OSPF协议之前需要对环境进行结构化的部署:区域划分、ip地址规划。
OSPF协议的5种数据包
Hello:用于邻居、邻接 发现、建立、保活;hello time 默认10s或30s
DBD:数据库描述包
LSR:链路状态请求
LSU:链路状态更新
LSack:链路状态确认
OSPF状态机7个状态
Down:一旦本地发出hello包进入下一个状态
Init:初始化 收到的hello包若存在本地的RID进入下一个状态
2way:双向通讯 邻居关系建立的标志
条件匹配:点到点网络将直接进入下一个状态; MA网络类型将进行DR/BDR选举,非DR/BDR间将无法进入下一状态
Exstart:预启动 使用类似hello的DBD进行主从关系的选举,RID大为主优选进入下一状态
Exchange 准交换 使用真正的DBD进行数据库目录的共享,需要使用ACK确认
Loading 加载 使用LSR/LSU/LSAck来获取未知的LSA信息
Full转发 邻接关系建立的标志
OSPF的工作过程
此过程将生成OSPF协议中最重要的三张表。
OSPF协议启动后,A向本地所有启动了OSPF协议的直连接口组播224.0.0.5发送hello包;本地hello包中携带本地的全网唯一的router-id;之后对端B运行OSPF协议的设备将回复hello包,该hello包中若携带了A的router-id,那么A-B建立为邻居关系;生成邻居表。
邻居关系建立后,邻居间进行条件匹配,匹配失败就停留于邻居关系,仅hello包周期保活;条件匹配成功可以开始建立邻接关系:邻接间共享DBD包,将本地和邻接的DBD包进行对比,查找到本地没有的LSA信息目录;之后使用LSR来询问,对端使用LSU应答具体的LSA信息,之后本地再使用ack确认,可靠;该过程完成后,生成数据库表。
再之后本地基于数据库表,启用SPF选路规则,计算到达所有未知网段的最短路径,然后加其加载到本地的路由表中;收敛完成,hello包周期保活,每30min再周期收发一次DBD来判断和邻接间数据库是否一致。
结构突变
新增网段 :直连新增网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
断开网段 :直连断开网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
无法沟通 :dead time 为hello time 的4倍;当dead time到时,断开邻居关系,删除通过该邻接生成的路由协议
OSPF协议基础配置
本文所展示的配置命令均为华为,非思科。
[r1]ospf 1 router-id 1.1.1.1 启动时,需要定义进程号;进程号仅具有本地唯一性
路由宣告:ospf协议在宣告的同时需要进行区域划分
区域划分规则:
1、星型拓扑结构,区域0为中心骨干区域,其他大于0为非骨干站点区域;
2、必须拥有ABR--区域边界路由器
[r2-ospf-1]area 0 先进入区域,之后再该区域内宣告属于该区域的接口,宣告时必须携带反掩码
[r2-ospf-1-area-0.0.0.0]network 1.1.1.1 24
[r2-ospf-1-area-0.0.0.0]q
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]network 2.2.2.2 24
[r2]display ospf peer 查看邻居表
OSPF接口网络类型
OSPF协议在不同网路类型的接口下,工作方式不同。
接口网络类型 | OSPF接口网络类型(ospf工作方式) |
LoopBack 0. | Cisco – LoopBack:没有hello包,以32位主机路由发送, 华为—显示为p2p类型 实际为LoopBack工作方式 |
点到点(串线HDLC/PPP/GRE) | p2p. hello time10s;自动建邻;不选DR/BDR |
BMA以太网 | Broadcast;hello time 10s;自动建邻;选DR/BDR |
NBMA帧中继 | nbma ;hello time 30s;手工建立邻居;选DR/BDR |
MGRE | p2p. hello time10s;自动建邻;不选DR/BDR –在一个网段中只能存在一个邻居; 华为设备在一个MGRE网段,接口为点到点工作方式时,仅和最先收到hello的设备建立邻居关系; Cisco在这种情况将出现邻居的翻滚; |
OSPF的不规则区域
一台ABR设备若没有连接到骨干区域0,那么默认不得区域间路由的共享
1、远离了骨干的非骨干区域
2、不连续骨干
解决方案:
1、在合法与非法ABR上建立tunnel,然后将其宣告到ospf协议中
2、虚链路
3、多进程双向重发布(推荐)
OSPF的LSA优化—减少LSA更新量
1、汇总
2、特殊区域 不能是骨干区域,不能存在虚链路;
2.1同时不存在ASBR
1、末梢区域
2、完全末梢区域
2.2同时存在ASBR
1、NSSA 非完全末梢区域
2、完全NSSA – 完全的非完全末梢区域;