OSPF:开放式最短路径优先协议 无类别链路状态型路由协议
公有协议;跨层封装到IP报头,协议号89; 组播更新:224.0.0.5 224.0.0.6
触发更新、周期更新(30min);
需要结构化的部署:区域划分 地址规划
数据包结构:
数据包种类:五种数据包:hello DBD(DD)RSR RSU RSAck
七种状态机:
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协议启动后,A向本地所有启动了OSPF协议的直连接口组播224.00.5发送hello包;本地hello包中携带本地的全网唯一的router-id;
之后对端B运行OSPF协议的设备将回复hello包,该hello包中若携带了A的routerid,那么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 DBD补充知识点:
1,DBD包中携带MTU值,要求邻居MTU值必须相同,否则将卡在exstart或exchange状态;
默认华为未开启MTU检测;
2,隐性确认—不使用确认包,而是从设备复制主设备的序列号来确认收到了主的DBD;
3,OSPF标记位 I M MS I为1本地发出的第一个DBD包
M为0,表示本地发出的最后一个DBD; MS为1代表主,为0代表从;
4,O 同一区域内,本地通过拓扑计算所得
O IA 域间路由,ABR通过其他区域的拓扑计算所得路由,然后共享到另一个区域;本地区域另一区域
O E1/2 域外路由 其他协议或其他进程产生后,通过ASBR重发布进入到OSPF协议
ON1/2 NSSA域外路由 其他协议或其他进程产生后,通过ASBR重发布进入到OSPF协议,同时学习到这条路由的设备处于ospf的一种NSSA的特殊区域中
5,度量(cost)
开销值 参考带宽/接口带宽 华为设备,环回接口不计算为一段路径;默认的参考带宽为1000M;
优选cost值之和最小路径;
6,管理距离(华为为优先级)
Cisco设备定义管理距离为110 在华为设备上优先级为10
OSPF协议邻居成为邻接关系的条件
在点到点网络中,所有的OSPF邻居将直接建立为邻接关系;
在MA网络中,为了避免大量的重复的LSA更新—因为OSPF需要邻接间进行DBD对比,故没有接口水分割机制;故必须进行DR/BDR选举,非DR/BDR间仅建立邻居关系;---在每一个MA网络中均需要进行一次选举;
选举规则:
- 优先级 数值大优,默认为1; 若为0为放弃选举;
- 优先级一致,比较参选接口所有设备的router-id,数值大优;
切记:DR选举非抢占 ,故在修改优先级后,必须重启参选设备ospf进程来重新选举
OSPF的收敛被称为LSA洪泛,也被称为LSDB同步;
OSPF接口网络类型 –OSPF协议在不同网路类型的接口下,其不同的工作方式
OSPF接口网络类型(ospf工作方式):
1,LoopBack 0. Cisco – LoopBack 没有hello包 以32位主机路由发送
华为—显示为p2p类型 实际为LoopBack工作方式
2,点到点
(串线HDLC/PPP/GRE) p2p. hello time10s 自动建邻 不选DR/BDR
3,BMA
以太网 Broadcast hello time 10s 自动建邻 选DR/BDR
4,NBMA
帧中继 nbma hello time 30s 手工建立邻居 选DR/BDR
5,MGRE p2p. hello time10s 自动建邻 不选DR/BDR –在一个网段中只
能存在一个邻居;华为设备在一个MGRE网段,接口为点到点工作方式时,仅和最先收到hello的设备建立邻居关系;
注:在MGRE环境中,接口默认的ospf工作方式为点到点,这种方式无法实现该NBMA网段的邻居全连;故只能去修改接口的工作方式:
修改MGRE网段所有接口为Broadcast工作方式,切记若一部分接口修改为Broadcast,另一部分接口依然保持为点到点,由于hello time相同可以建立邻居关系,但工作机制在DR/BDR选举处不同,故最终该网段无法正常收敛;
- 同时,必须关注网络拓扑结构;若该网段为全连网状结构,那么DR选举将正常进行;但若为部分网状或中心到站点拓扑,将可能出现DR位置错误问题;
- 若网络拓扑只能为部分网状或中心到站点,需要人为手工干预DR位置或者将所有接口的工作方式修改为点到多点工作方式Ospf的点到多点工作方式:只能手工配置,适用于部分网状结构拓扑; Hello time30s,不选DR/BDR,自动建立邻居关系;
- OSPF的不规则区域
一台ABR设备若没有连接到骨干区域0,那么默认不能进行区域间路由的共享
- 远离了骨干的非骨干区域
- 不连续骨干
解决方案:
- 在合法与非法ABR上建立tunnel,然后将其宣告到ospf协议中
缺点:1、周期更新、保活,触发更新对中间穿越区域产生资源占用
- tunnel
- 虚链路
- 多进程双向重发布(推荐)
多进程--- 同一台设备上,不同的进程可以工作在不同的接口上,建立各自的邻居关系,生成各自的数据库(不共享);仅将各自计算所得路由加载于同一张路由表内;一个接口只能被一个进程来宣告;
双向重发布,ASBR(自治系统边界路由器、协议边界路由器),将不同进程或不同协议产生的路由进行双向共享;
操作:
[r2]ospf 1
[r2-ospf-1]import-route ospf 2
[r2-ospf-1]q
[r2]ospf 2
[r2-ospf-2]import-route ospf 1
- OSPF的各种LSA --- 数据库表
- 查看LSDB
<r1>display ospf lsdb
<r1>display ospf lsdb router 1.1.1.1
所有类别的LSA,均携带以下信息
Type : Router 类别名 此处为1类
Ls id : 1.1.1.1 link-id 在目录中的编号
Adv rtr : 1.1.1.1 通告者 --- 该LSA的更新源设备的RID
Ls age : 1359 老化时间 1800s周期刷新为0 触发更新归0 最大3609s
Len : 48
Options : E
seq# : 8000000c 序列号
chksum : 0x818c 校验码
OSPF的LSA是1800会更新一次更新一次序列号会加一
LSA的新旧比较
1、会先比较序列号,序列号越大越优,
2、如果序列号相同,会比较校验值(checksum)越大越优
3、如果校验值也相同,会比较LSA Age时间,是否等于MAX-age时间(3600)
4、如果age时间不等于max-age时间,会比较他们的差值,如果差值大15分钟(900秒),小的优
5、如果age时间不等于max-age时间,会比较他们的差值,如果差值小于15分钟,说明是同一条LSA,忽略其中一条
什么情况下LSA会更新:
1、1800到期会周期更新
2、触发更新(接口地址变化(增加,或删除),修改接口开销值,删除接口,或者删除通告)
LSA的分类
1类LSA-router 传播范围:本区域内 通告者:本区域内的每台路由器 携带的信息:该区域每台设备的直连拓扑 link-id :通告者的RID
2类LSA-Network 传播范围:本区域内 通告者:该网段的DR 携带的信息:该网段的拓扑 link-id : DR接口的ip地址
3类LSA-summary 传播范围:整个OSPF域 通告者:ABR,在经过下一台ABR时,修改为新的ABR 携带的信息:O IA 域间路由 link-id : 域间路由的目标网络号
4类LSA-asbr 传播范围:除ASBR所在区域外的 整个ospf域,ASBR所在区域使用1类标记位置 通告者: ABR, 在经过下一台ABR时,修改为新的ABR 携带的信息:ASBR的位置 link-id : ASBR的RID
5类LSA-ase 传播范围:整个OSPF域 通告者:ASBR ,在ospf内部传递时不变 携带的信息:O E 域外路由 link-id : 域外路由的目标网络号
7类LSA-nssa 传播范围:单个的NSSA区域内 通告者:ASBR 携带的信息:O N 域外路由 link-id : 域外路由的目标网络号