【1】
OSPF:开放式最短路径优先协议 无类别链路状态型路由协议
公有协议;跨层封装到IP报头,协议号89; 组播更新:224.0.0.5 224.0.0.6
触发更新、周期更新(30min);
需要结构化的部署:区域划分 地址规划
一、OSPF协议的数据包:
1.数据包结构
2.数据包种类
Hello:用于邻居、邻接 发现、建立、保活 hello time 默认10s或30s
DBD:数据库描述包{
携带MTU值,要求邻居MTU值必须相同,否则将卡在exstart或exchange状态;
默认华为未开启MTU检测
}
LSR:链路状态请求
LSU:链路状态更新
LSack:链路状态确认
【2】ospf的工作过程
启动配置完成后,邻居间开始收发hello包;hello包中将携带本地及本地所有已知邻居的rid;之后生成邻居表;邻居间需要关注是否可以成为邻接的条件;若不能建立为邻接,将保持为邻居关系,仅hello包周期保活即可;
若可以建立邻接关系;将使用DBD进行本地数据库目录的对比;之后基于对比的结果,使用LSR/LSU/LSack来获取本地未知的LSA信息;使邻接关系间数据库(lsdb)完成同步(一致),生成数据库表;
之后本地基于lsdb,使用spf算法,生成有向图—>最短路径树——>计算本地到达所有未知网段的最短路径,将其加载到本地路由表中;收敛完成;
收敛完成后,邻居和邻接关系间均hello每10s保活;每30min一次邻接关系间周期数据库比对,保障一致;
【3】比较规则:
- 先比较该网段所有参选设备接口的优先级,越大越优;
默认优先级为1;取值范围0-255,0标识不参选
- 若所有参选者优先级相同,比较参选设备的RID,数值大优;
【4】OSPF协议邻居成为邻接关系的条件
在点到点网络中,所有的OSPF邻居将直接建立为邻接关系;
在MA网络中,为了避免大量的重复的LSA更新—因为OSPF需要邻接间进行DBD对比,故没有接口水分割机制;故必须进行DR/BDR选举,非DR/BDR间仅建立邻居关系;---在每一个MA网络中均需要进行一次选举;
【5】OSPF的不规则区域
一台ABR设备若没有连接到骨干区域0,那么默认不能进行区域间路由的共享
- 远离了骨干的非骨干区域
- 不连续骨干
【6】解决方案:
1.在合法与非法ABR上建立tunnel,然后将其宣告到ospf协议中
缺点:
1、周期更新、保活,触发更新对中间穿越区域产生资源占用
2.选路不佳 -- 当ospf学习到两条相同目标,但不同区域同时过来时,优选骨干区域;
Tunnel区域应该宣告在同一个区域
3.虚链路 --- 在合法与非法ABR上建立虚链路,由合法ABR为非法ABR进行授权;
使得非法ABR可以进行区域间路由的共享;
因为并没有增添新的路径,故不存在选路不佳的问题;
[r2-ospf-1]area 1 两台ABR共同所在的区域
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR的RID
Cisco为了避免周期信息对中间区域的占用,取消虚链路上的所有周期行为;---不可靠
华为在虚链路上依然保持周期的保活、更新 --- 对中间区域的资源占用
4.多进程双向重发布(推荐)
多进程--- 同一台设备上,不同的进程可以工作在不同的接口上,建立各自的邻居关系,生成各自的数据库(不共享);仅将各自计算所得路由加载于同一张路由表内;一个接口只能被一个进程来宣告;
双向重发布,ASBR(自治系统边界路由器、协议边界路由器),将不同进程或不同协议产生的路由进行双向共享;
【7】OSPF的各种LSA --- 数据库表(目的:画出拓扑图)
12最先找 3类后找45为一类(当有新路由变化时)