OSPF:开放式最短路径优先协议
概念:
OSPF路由协议是用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。
特点:
使用范围:IGP
协议算法:链路状态路由协议, SPF算法
基于IP协议封装
1.OSPF 是一种典型的链路状态型路由协议
2.传递信息称作LSA,LSA 链路状态通告,包含路由信息和拓扑信息。
路由LSA:描述本路由器上接口的路由信息
拓扑LSA:描述路由器之间的链接状态
3.更新方式: 触发更新+30分钟的链路状态刷新
4.更新地址: 组播和单播更新,组播地址: 224.0.0.5(ALL SPF router) 224.0.0.6(ALL DR router)
5.支持路由认证
6.支持手工汇总
7.支持区域划分
8.OSPF 比较消耗设备资源一个路由器上最多支持31个OSPF 进程
无类别链路状态路由协议--传递网络掩码
公有协议;
跨层封装到IP报头,协议号89;
触发更新、周期更新
一、 OSPF的数据包—5种数据包
跨层封装于3层报头,协议号89;
Hello 包 :邻居的发现、建立、周期保活 hello time 默认10s或30s
DBD数据库描述包 :
------主从选举DBD: 比较双方的router-id ,router-id大的一方为主(master ),小的一方为从 (slave);主用于控制LSA的交互
LSR 链路状态请求:
------链路状态请求,按照DBD中报文的未知LSA头部进行请求。
LSU 链路状态更新 :
----携带LSA信息
LSack 链路状态确认(30min)
**LSA – 链路状态更新 – 是具体的每一条拓扑或者路由信息;基于LSU包来进行传输;
二、 邻居与邻接关系建立过程
OSPF状态机—两台允许OSPF协议的路由器间的不同关系的阶段
Down 一旦接收到hello,进入下一个状态
Init初始化 一旦接收到的hello包中,存在本地的RID进入下一状态
2way 双向通讯 邻居关系建立的标志
条件:
点到点网络将直接进入下一个状态; MA网络类型将进行DR/BDR选举,非DR/BDR间将无法进入下一状态;
DR选举: 1.比较优先级 (范围:0255,默认优先级为1 ,越大越优)
注意:1.DR抢占是关闭的 2.DR是一个接口概念 3.优先级范围0-255,数字为0代表不参与选举 4.先 选举BDR ,再升级为DR
Exstart 预启动 使用不携带内容的DBD包进行主从关系选举,RID数值大为主;优先进入下一个状态机;
Exchange 准交换:使用携带数据库目录的DBD包进行交换,需要ACK确认;
Loading加载:将本地和邻居发送过来的目标进行比对,针对本地未知的LSA,使用LSR向对端进行请求;对端使用LSU来共享新的LSA信息;本地需要LSack确认;收敛完成后进入下一个状态;
Full转发:邻接关系建立的标志
三、 OSPF的工作过程:
启动配置完成后,ospf的邻居开始组播224.0.0.5收发hello包;hello包中将携带本地的RID;在接收到的hello包中若存在本地的RID,及代表对端已经认识本端,那么邻居关系建立;生成邻居表;
邻居关系建立后,需要关注网络类型;
若条件不允许将卡在邻居关系,仅hello包周期保活即可;
若条件允许将可以建立为邻接关系;
邻接关系的建立需要先使用不携带目录信息的DBD进行主从关系选举,RID数值大为主;可以优先进行携带目标信息的DBD收发;在和邻接间收发完DBD后,将基于DBD中本地未知的LSA信息,使用LSR/LSU/LSack来获取具体的LSA信息;
在收集齐整个网络的LSA后,本地数据库表(LSDB链路状态数据库)完成;
当本地的数据库同步完成后,先将其转换为有向图,再基于图生成最短路径树;最后将本地到达所有未知网段的最短路径加载于本地的路由表中;该计算过程被称为SFP最短路径优先计算;
路由表生成后,邻接关系建立;收敛完成;正常仅hello包周期保活即可;
结构的突变:
1、 新增网段
2、 断开网段
3、 无法沟通 – dead time到时时,断开邻居关系,删除信息,能否重建关系关注hello包;
Hello包:hello time 10s 或者30s dead time 为hello time 4倍
邻居间建立邻居关系时,必须完全一致的参数,否则无法正常建立邻居关系
1、Hello、dead time 2、区域ID 3、认证字段 4、特殊区域标识
5、在华为的设备中,要求邻居间接口配置的子网掩码也必须一致;
四、 OSPF的基础配置
[r1]ospf 1 router-id 1.1.1.1 启动时需要定义进程号;以及RID
进程号仅具有本地意义;不定义进程,默认为进程1;不定义RID,默认将自动生成—先去环回上最大数值的ip地址—》物理接口上最大数值的ip地址
RID必须全网唯一;
进行宣告:1、区域划分 2、选择接口激活 3、宣告接口的信息
[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
OSPF的区域划分规则:
1、 星型结构拓扑 – 所有非骨干区域必须连接到骨干区域 区域0为骨干,大于0非骨干
2、 区域间必须使用ABR相连 ABR—区域边界路由器
启动和宣告配置完成后,邻居间基于组播224.0.0.5收发hello包,生成邻居表:
[r2]display ospf peer 邻居关系详述表
[r2]display ospf peer brief 查看邻居关系简表
OSPF Process 1 with Router ID 2.2.2.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 1.1.1.1 Full
0.0.0.1 GigabitEthernet0/0/1 3.3.3.3 Full
区域 本地连接该邻接的接口 邻居的RID 状态机
邻居关系建立后,进行条件匹配,匹配失败将维持邻居关系;匹配成功将可以建立为邻接关系;邻接关系间将使用DBD和LSR/LSU/LSack来获取未知的LSA信息;
最终和邻接间同步数据库-LSDB;
[r2]display ospf lsdb
LSA洪泛、LSDB同步(OSPF收敛的名词)完成后;本地基于数据库转换为—有向图—最短路径树;最终计算本地到达所有未知网段的最短路径,然后将其加载到本地的路由表中;
在华为体系中,OSPF所得路由默认优先级为10,优于静态路由的60;
在cisco体系中,OSPF所得路由优先级为110,不如静态路由的1;
使用cost值作为选路的度量;
Cost值=开销值=参考带宽/接口带宽 默认参考带宽100M;
若接口带宽大于参考带宽,cost值取1;
故在接口带宽大于参考带宽的网络中,可能导致选路不佳;可以通过修改默认的参考度量来干涉:
[r1]ospf 1
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000 切记:一旦修改,全网需修改的一致;
五、 OSPF邻居建立为邻接关系的条件:
邻居间只有hello包,没有其他数据包,没有LSA;
邻接关系都是在邻居关系之上来建立;
基于网络类型来确定关系:
1、点到点 串线的PPP/HDLC 虚拟的GRE 因为一个网段只能存在两个节点;故必然从邻居关系成为邻接关系
2、 MA多路访问—一个网段中节点的数量不限制
由于节点数量的不限制,故若两两间皆邻接关系,将可能导致大量的重复更新;在距离矢量协议中可以使用接口水平分割来解决该问题;
但OSPF协议需要邻接间比对数据库,故不能使用接口水平分割;最终进行DR/BDR选举;所有非DR/BDR之间为邻居关系,不进行LSA的同步;来避免大量重复更新;
1)DR/BDR选举 -- 先比较参选接口的优先级,大优;默认所有接口为1;0-255;
[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf dr-priority 2修改接口优先级
2)若所有接口优先级相同,将比较参选设备的RID,数值大优;
切记:DR/BDR选举是非抢占的,一旦选定,后加入者无论参数如何只能认可之前的选举结果;
因此在修改完接口优先级后,选举结果将不变化,除非人为重启选举;
所有设备全部重启OSPF进程,之后将重选DR/BDR
<r1>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
或者将非DR/BDR的优先级修改为0,0代表不参选,不用重启设备的进程;万万不能一个网段所有设备优先级为0,否则将导致无法正常收敛。
六、 OSPF接口网络类型
----OSPF协议在不同的网络类型下,其不同的工作方案;
[r1]display ospf interface GigabitEthernet 0/0/1 查看OSPF协议在该接口工作方式
网络类型 OSPF接口网络类型(工作方式)
环回 P2P点到点 没有hello包;默认32位路由传递
点到点(串线PPP/HDLC/GRE)P2P点到点 hello time10s;不选DR/BDR
BMA (以太网) Broadcast广播 hello time10s,选DR/BDR
NBMA(帧中继、MGRE)
在MGRE接口,由于ospf协议默认为点到点的工作方式,只能建立一个邻居关系;
故将无法全网可达;
解决方法:修改接口的工作方式
[r1-Tunnel0/0/0]ospf network-type broadcast 修改为广播型
注:broadcast工作方式的hello time 为10s,但需进行DR/BDR选举;P2P也是10s,不进行DR/BDR选举,两者若相遇可以建立邻居关系,但无法正常收敛LSA;故在一个网段内所有接口的工作方式应该一致;
修改接口网络类型后,必须关注拓扑的结构;
1、 中心到站点(星型、轴辐状)--由于分支站点间不知道其他分支的存在,从而导致整个网段的DR选举错误,最终导致该网络无法正常收敛;中心站点作为DR,无BDR;
2、 全连网状 --在所有接口修改为broadcast后一切正常
3、 部分网状---排除星型结构外的非全连结构—结合拓扑的实际情况来干涉DR的位置;
七、 OSPF的不规则区域
默认OSPF协议要求区域设计基于星型结构;中心为骨干区域,编号0;其他大于0为非骨干区域,所有非骨干必须直接连接骨干;
OSPF的不规则区域
1) 远离了骨干的非骨干区域
2) 不连续骨干
解决方案:
1、 将非法ABR与区域0中的设备进行GRE的建立;然后将该GRE宣告到OSPF协议中;
缺点:1)周期性保活和更新将对中间穿越区域照成很大的影响
2)选路不佳
2、 OSPF虚链路
连接骨干区域的合法ABR对非法ABR进行授权;之后非法ABR可以实施区域间路由共享的能力;
[r2]ospf 1
[r2-ospf-1]area 1 两台ABR同时所在的区域
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR 的RID
优点:没有新增新的物理或逻辑链路,故不存在选路不佳的问题;
缺点:1)cisco 取消两台ABR间的周期保活及更新,避免对中间区域资源占用;但失去可靠性;
2)华为保留了两台ABR间的周期保活及更新,增加了对中间区域的资源占用,导致网络的转发延时大幅上升;
3、(推荐)多进程双向重发布
多进程:在一台设备上若同时启动多个进程,且不同进程宣告到不同的接口;它们将存在各自独立邻居,及独立的数据库;且数据不共享;最终所有计算所得路由加载于同一张路由表中;
若将同一个接口再多个进程同时宣告;仅最先宣告的进程生效;
双向重发布可以将不同路由协议或相同协议的不同进程,计算所得路由进行共享,最终实现全网可达
[r4]ospf 1
[r4-ospf-1]import-route ospf 2
[r4-ospf-1]q
[r4]ospf 2
[r4-ospf-2]import-route ospf 1
八、 关于OSPF的MTU值问题;
Ospf协议要求邻接关系间的接口MTU必须完全相同,否则将卡在exstart或exchange状态机;因为MTU值被携带与DBD包中;
默认cisco将自动检测DBD包中的MTU值;而华为设备默认不携带MTU值;
[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf mtu-enable 在与邻接直连的接口上,开启MTU值检测功能;两端设备均需开启;
九、 OSPF的数据库表
[r1]display ospf lsdb 查看数据库简表
由多种LSA构成;OSPF协议使用不同类型的LSA来携带不同条件下产生的拓扑或路由信息;
无论哪类的LSA均存在以下信息
[r1]display ospf lsdb router 12.1.1.2 详细查看某种类别的LSA信息
类别名 LINK-ID
Type : Router 类别名,此处为1类
Ls id : 12.1.1.2 link-id 在目录中的编号,类似页码
Adv rtr : 12.1.1.2 通告者的RID,该条LSA发出的源头设备的RID
Ls age : 1269 老化时间,周期30min归0;触发更新马上归0;最大老化3609s
Len : 48
Options : ABR E
seq# : 8000000b 序列号,每一条LSA存在不同的序列号,每一次更新序列号+1
(OSPF使用的是棒棒糖序列号机制)
chksum : 0xb43b
LSA类别 传播范围 通告者 携带的内容
LSA1- Router 单区域 该区域内每台设备 本地直连拓扑
LSA2- Network 单区域 该网段的DR 该DR所在网段的拓扑
LSA3- summary 整个OSPF域 ABR 域间路由
LAS4-asbr 除ASBR所在区域 ABR ASBR的位置
以外的整个OSPF域
ASBR所在区域基于1类交代位置
LSA5- ase 整个OSPF域 ASBR 域外路由
LSA类别 link-ID 通告者
LSA1-router 通告者的RID 该区域每台运行OSPF的路由
LSA2-network DR接口的ip地址 该网段的DR
LSA3- summary 域间路由的目标网络号 ABR,在经过下一台ABR时,修改为新的ABR
LSA4-asbr ASBR的RID ABR,在经过下一台ABR时,修改为新的ABR
LSA5- ase 域外路由的目标网络号 ASBR
思维导图