OSPF基本知识:
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯加算法被用来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。
是一个无类别链路状态路由协议,使用组播224.0.0.5/6更新,跨层封装到网络层,协议号89。
DV距离矢量 -- 邻居间共享路由表 传闻型协议 更新量小
LS 链路状态 --邻居间共享LSA-链路状态通告—主要共享拓扑信息 更新大 防环
邻居间hello包中必须有4个参数完全一致,否则无法建立邻居关系:1、hello和dead time 2、区域ID 3、认证字段 4、 末梢区域标记
OSPF的5种基本数据包:
HELLO---用于邻居的发现、建立、保活
DBD---数据库描述报文 ---数据库目录信息
LSR---链路状态请求
LSU---链路状态更新,携带各种LSA(LSA:链路状态通告 LSDB:链路状态数据库,是LSA的集合)
LSACK---链路状态确认
OSPF的状态机:
Down:一旦本地发出ospf的hello包进入下一个状态
Init初始化:接收到的hello包中存在本地的RID,进入下一状态
2way:双向通信:邻居关系建立的标志;
条件匹配:点到点直接进入下一状态;MA网络进行DR/BDR选举(40s),非DR/BDR间不进入下一状态
Exstart预启动:使用类似hello 的DBD包来进行主从关系选举,RID数值大为主,优先进入下一状态;
Exchange准交换:使用真实的DBD包来共享数据库目录;
Loading加载:使用LSR/LSU/LSack来获取未知的LSA信息;
Full转发:邻接关系建立的标志
OSPF的工作过程:
1、启动配置完成后,邻居间组播(224.0.0.5)使用hello包,建立邻居关系,生成邻居表;
2、邻居表生成后,基于邻居表中的各个邻居,进行条件的匹配;匹配失败将维持邻居关系, 仅hello包周期保活即可;
条件匹配成功者间将建立邻接关系,邻接关系间将使用DBD来共享本地的数据库摘要;邻接关系间可以通过识别摘要,来请求本地未知的LSA信息;请求时使用LSR,对端使用LSU来分享这些LSA信息;
当获取到网络中所有的LSA后,本地数据库建立完成,LSDB同步结束;数据库表可查看;
3、默认OSPF协议通过本地的数据库,启用SPF最短路径选路规则,计算本地到达所有未知网段的最佳路径,然后将其加载于路由表中;
收敛完成---hello包周期保活 邻接关系间每30min周期进行DBD的比对,若一致继续保持安静;
4、结构突变
1)新增网段---直连新增网段的设备,使用DBD包来告知本地所有邻居;
2)断开网段---直连断开网段的设备,使用DBD包来告知本地所有邻居;
3)无法沟通---dead time到时时,断开邻居关系,是否能够重建关注hello包;
OSPF的区域划分规则:
1、星型结构---骨干区域0;非骨干大于0;非骨干必须直连骨干区域;
2、必须存在ABR--区域边界路由器
OSPF的选举规则和干涉选举:
1、先比较优先级,默认1;数值大优 若优先级为0,标识不参选
2、优先级一致比较RID,数值大优
干涉选举:
1、DR优先级最大,BDR次大,其余不修改(注:OSPF选举非抢占,修改优先级后,必须重启所有设备进程)
2、DR优先级最大,bdr次大,其他设备修改为0;不需要重启进程
切记:不得将所有参选接口修改为0;至少存在DR;
OSPF的网络类型:
网络类型 | OSPF的接口网络类型 | 工作方式 |
环回-LOOPBACK | LOOPBACK | 无hello包,主机路由发送 |
点到点--PPP/HDLC/GRE | POINT-TO-POINT | hello time10s;自动建邻,不选DR/BDR |
BMA-以太网 | BROADCAST |
hello time10s;自动建邻,选DR/BDR |
NBMA--帧中继、MGRE |
POINT_TO_MULTIPOINT |
hello time30s;自动建邻,不选DR |
在MGRE环境中运行OSPF,因为OSPF协议在tunnel接口默认的工作方式为点到点,这种方式只能建立一个邻居,故多点端将出现邻居关系翻滚;
解决方法:修改接口的工作方式:
1、修改为 broadcast ,所有节点必须全部修改,否则无法建立邻居关系,后者无法正常收敛,卡在exstart状态机;
注:在星型或部分网状使用broadcast工作方式,将出现DR位置问题;
解决:-DR固定在一个点;-所有接口工作方式修改为点到多点;
2、在全连网状结构中,建议不使用点到多点;因为将全网邻接关系,重复更新;
注:NHRP服务器可以多台,用于备份服务器;开启全连网状,不是增加NHRP服务器的数量,而是在没有邻居关系的设备间,互相配置伪广播;
OSPF的不规则区域:
OSPF协议的规则区域-星型结构,非骨干区域必须同时工作骨干区域;否则该非骨干区域的ABR不能进行区域间路由共享;
1、远离了骨干的非骨干区域
2、不连续骨干
解决方案:
1、tunnel 在两台ABR上建立隧道,然后将其宣告到OSPF协议中area0
缺点:对周期、触发更新和保活流量对中间区域存在资源占用 选路不佳
2、OSPF虚拟路--非骨干区域间的ABR到骨干区域ABR处授权--建立一条虚链路
3、多进程双向重发布:
1)多进程---一台设备上同时运行多个进程时,不同进程存在各自的RID和数据库;当从各自邻居处学习到了信息后,存储在自己的数据库中,数据不共享;仅将计算所得路由加载到同一张路由表中; 若将一个接口同时宣告于多个进程,仅最先宣告进行工作;
2)双向重发布--两种协议或两个进程间,进行路由条目的双向共享;
各种类别的LSA:
名称 | 传播范围 |
通告者 |
携带的信息 |
link-id |
通告者ID |
LSA1 router |
设备所在区域 |
该区域的每台设备 |
本地直连拓扑 |
通告者的RID |
该区域的每台设备 |
LSA2 network |
设备所在区域 |
DR |
MA网段部分的拓扑 |
DR的接口ip |
DR的RID |
LSA3Summary |
整个OSPF域 注意区域水平分割 |
ABR |
O IA 域间路由 |
O IA 路由条目的网络号 |
ABR;经过下一台ABR时,修改为新的ABR RID |
LSA4 asbr-summary |
ASBR所在区域外的整个OSPF域 |
ABR |
ASBR位置 |
ASBR RID |
ABR(与ASBR在同一区域)经过下一台ABR时,修改为新的ABR RID |
LSA5External |
整个OSPF域 |
ASBR |
O E1/2 域外路由 |
O E1/2 路由条目的网络号 |
ASBR-默认在传播过程中不修改 |
LSA7nssa-external |
单个NSSA区域 |
ASBR |
O N1/2域外路由 |
O N1/2路由条目的网络号 |
ASBR-在传递出该NSSA区域后,被新的ASBR转换为5类 |
给大家推荐一个博文,讲述很详细:
https://ccie.lol/knowledge-base/ospf-ospfv3-lsa/
文中部分内容来源网络,仅供参考学习!