OSPF底子与特性
一.OSPF 的技术背景OSPF出现是因为RIP协议无法满足大型网络的设置
RIP协议中存在的问题
RIP中存在最大跳数为15的限制,不能顺应大规模组网
RIP周期性发送全部路由信息,占用大量的带宽资源
路由收敛速度慢
以跳数作为度量衡,选路可能会不优
存在路由环路的可能性
每隔30秒更新
OSPF协议的特点
没有跳数限制,适合大规模组网
利用组播更新变化的路由和网络信息
路由收敛快
以COST作为度量值
采用SPF算法有用制止环路
每隔30分钟更新
在互联网上大量利用,是运用最广泛的路由协议
二.OSPF 的表与数据包
OSPF三张表
邻人表:用来记录邻人状态和关系
拓扑表:包含链路状态数据库(LSDB)
路由表:记录SPF算法盘算的路由,存放在OSPF路由表中
LSDB 的更新:
https://i-blog.csdnimg.cn/direct/18eafd20927747378ca7cbc453aa2415.png
OSPF的数据包
OSPF报文直接封装在IP报文中,协议号为89
头部数据包内容:
https://i-blog.csdnimg.cn/direct/981ef6f12ac6463f8630a2c8fcd9bae1.png
版本(Version) 对于OSPFv2,该字段值恒为2----在IPV4中。对于OSPFv3,该字段值恒为3----在IPV6中
范例(Type) 该OSPF报文的范例。该字段的值与报文范例的对应关系是:1-Hello;2-DD;3-LSR;4-LSU;5-LSAck
Packet Length) 整个OSPF 报文的长度(字节数)
路由器ID (Router Identification) 路由器的OSPF Router-ID
区域ID (Area Identification) 该报文所属的区域ID,这是一个32bit 的数值
校验和(Checksum) 用于校验报文有用性的字段
认证范例(Authentication Type) 指示该报文利用的认证范例
认证数据(Authentication Data) 用于报文认证的内容
OSPF工作过程中的数据包
(1)hello
hello包携带自己的router ID、被发现的邻人标识,用来周期保活的,发现,创建邻人关系
https://i-blog.csdnimg.cn/direct/862488c9ec20468594392ce98ac5e113.png
网络掩码(Network Mask) 一旦路由器的某个接口激活了OSPF,该接口即开始发送Hello报文,该字段填充的是该接口的网络掩码。两台OSPF 路由器假如通接口直连,那么双方的直毗连口必须设置相同的网络掩码,否则影响邻人关系创建
Hello隔断(Hello Interval) 接口周期性发送Hello报文的时间隔断(单位为s)。两台直连路由器要创建OSPF邻人关系,需确保接口的Hello Interval相同,否则邻人关系无法正常创建
可选项(Options) 该字段一共8bit,每个比特位都用于指示该路由器的某个特定的OSPF 特性。Options字段中的某些比特位会被查抄,这有可能会直接影响到OSPF邻接关系的创建。(特殊区域的标记)
(Router Priority) 路由器优先级,范围:0-255,默认是1,数字越大,代表路由优先级越高,也叫DR优先级,该字段用于DR、BDR 的选举
路由器失效时间(Router Dead Interval) 在邻人路由器被视为无效前,需等待收到对方Hello报文的时间(单位为s)。两台直连路由器要创建OSPF 邻人关系,需确保双方直毗连口的Router Dead Interval相同,否则邻人关系无法正常创建。缺省情况下,OSPF路由器接口的Router Dead Interval为该接口的Hello Interval的4倍
指定路由器(Designated Router) 网络中DR的接口IP所在。假如该字段值为0.0.0.0,则体现没有DR,大概DR尚未选举出来
备份指定路由器(Backup Designated Router) 网络中 BDR的接口IP所在。假如该字段值为0.0.0.0,则体现网络中没有BDR,大概BDR尚未选举出来
邻人(Neighbor) 在直连链路上发现的有用邻人,此处填充的是邻人的Router-iD,假如发现了多个邻人,则包含多个邻人字段
(2)DBD
数据库描述报文,仅包含LSA择要
https://i-blog.csdnimg.cn/direct/35332b4ed7a9431e84649748130fb838.png
接口最大传输单位(Interface Maximum Transmission Unit)
接口的MTU
可选项(Options)
路由器支持的OSPF可选项
DD报文置位符
I:init位,I=1,这是第一个DD报文
M: more位,M=1体现后续还有DD报文
MS:master位,MS=1,体现本端为主
DD序列号(DD Sequence Number)
DD报文的序列号,在DD报文交互的过程中,DD序列号被逐次加1,用于确保DD报文传输的有序和可靠性。值得注意的是,DD序列号必须是由Master路由器来决定的,而Slave路由器只能利用Master路由器发送的DD序列号来发送自己的DD报文。(route id大的设备会成为master)
LSA头部(LSA Header)
当路由器利用DD报文来描述自己的LSDB时,LSA的头部信息被包含在此处。一个DD报文可能包含一条或多条LSA的头部
(3)LSR
哀求自己没有的大概比自己更新的链路状态更详细的信息
https://i-blog.csdnimg.cn/direct/1531503542634e82b69309cc2c9674ad.png
链路状态类型,链路状态ID,通告路由器 ---- “LSA三元组”
通过这三个参数可以唯一的标识出一条LSA (4)LSU
链路状态更新信息
https://i-blog.csdnimg.cn/direct/cd5625eb06b746ee83e911a25b5c2b70.png
一个LSU报文可以包含多个LSA
当路由器感知到网络发生变化时,也可以触发LSU报文的泛洪,以便将该变化通知给网络中的其他OSPF 路由器
在MA网络中,非 DR、BDR路由器向224.0.0.6这个组播地址发送LSU报文,
而DR及 BDR会侦听这个组播地址,DR在接收LSU报文后向224.0.0.5发送LSU报文,
从而将更新信息泛洪到整个OSPF区域,所有的OSPF 路由器都会侦听224.0.0.5这个组播地址
224.0.0.5所有运行OSPF的接口都会监听
224.0.0.6所有DR/BDR的接口会监听 (5)LSAck
对LSU确认的包
https://i-blog.csdnimg.cn/direct/76136c3a72374684a3ac3737d1fd8e35.png
报文中包含着路由器所确认的LSA的头部(每个LSA头部的长度为20byte)
三.OSPF 的工作过程
邻人双方通过hello报文,相互熟悉邻接邻人创建后,进行一系列报文交互,当两台路由器LSDB同步完成,开始独立盘算路由时,这两台路由器形成了邻接关系 (1)确承认达性,创建邻人
https://i-blog.csdnimg.cn/direct/356e03f30d494be484bf732e6ec2ba51.png
outer ID :标明的是路由器身份
手工配置:IPV4地址格式
自动选举:
环回口:IP地址大的优先
物理口:IP地址大的优先 2-way前,确认DR/BDR
2-way是OSPF协议中的一中邻人状态,当两台路由器相互收到对方发送的Hello包,并且在Hello包中发现了自己的路由器ID时,他们就会创建双向通讯,此时邻人状态就会变成2-way
选举原因:广播网络中使路由信息交换更加高速有序,可以降低需要维护的邻接关系数目
https://i-blog.csdnimg.cn/direct/b0c788e761cf4100bd75677d37f1b000.png
选举范围:每个网段都需要选出一个DR和BDR(0-255)
选举规则:1.优先级大的优先,默认优先级是1;2.router-id大的优先
https://i-blog.csdnimg.cn/direct/0651519343e04334affd5e090a2c3fd8.png
https://i-blog.csdnimg.cn/direct/45b6f121454e4996b18559cc23449e9f.png
DR/BDR的选举没有抢占性
关系状态:DRother与DR创建邻接关系:
DRother与BDR创建邻接关系;
DR /BDR创建邻接关系;
DRother之间保持邻人关系
(2)择要同步,开始创建邻接关系
1.向邻接路由器发送DBD报文,通告本地LSDB中所有LSA的摘要信息
2.收到DBD报文后,与本地LSDB对比,向对方发送LSR报文,请求发送本地所需要的LSA的完整信息
3.收到LSR后,把对方所需的LSA的完整信息打包为一条LSU报文,发送至对方
4.收到LSU后,向对方回复LSAck报文,进行确认 邻接创建的过程:
https://i-blog.csdnimg.cn/direct/14b2e4fafe0f44b6b82231e9e30df066.png
https://i-blog.csdnimg.cn/direct/4b6405e09eb64d75ae7ceeef001c4934.png
(3)完备信息同步,完全邻接关系创建
完全邻接关系创建,LSDB表与路由表形成
四.OSPF 的状态机
https://i-blog.csdnimg.cn/direct/3d007e4024ca4ad692378e21d9f2192f.png
Down 关闭状态(稳定状态),这种情况处于手动指定邻人的情况下,发送hello包之后进入下一个状态
Init 初始化状态,收到对方的hello报文,但没有收到对方的hello确认报文
Attempt 一般不会出现,只出现在NBMA网络中,发出hello,但收不到对方的hello包
2-way(稳定状态)
双方相互发现,邻人状态稳定,并确认了DR/BDR的角色;
当选举完毕后,就算出现一台优先级更高的路由器,也不会更换成新的DR\BDR
Exstart
交换开始状态;发送第一个DD报文,但不发送LSA择要,仅用于确定LSDB协商的主从,ROUTER-ID大的成为master
Exchange
交换状态;发送后续DD报文,用于通告LSDB择要
Loading
读取状态,进行LSA的哀求(LSR)、加入(LSU)和确认(LSACK)
Full 邻接状态(稳定状态),两端同步LSDB
2-way 的条件:
[*]无辩论,修改router-id需要重置ospf进程使生效;
[*]掩码长度一致(MA网络中);
[*] 区域ID一致;
[*]验证暗码一致;
[*] hello-time一致;
[*] dead-time一致;
[*] 特殊区域范例一致
Full 的条件: 两端MTU一致,否则可能卡在Exstart/Exchange状态
能够盘算路由的条件:两端网络范例一致,否则邻人状态full,但无法学习路由
五.OSPF 的区域划分
1.区域产生背景
OSPF路由器在同一个区域中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步
假如OSPF域仅有一个区域,随着网络规模越来越大,OSPF路由器的数目越来越多,这将导致诸多问题
2.分区的利益
淘汰LSA泛洪范围
进步网络拓展性,有利于组建大规模网络
3.区域范例
https://i-blog.csdnimg.cn/direct/a3f81b195d4049ee80b05a47cdaeab04.png
骨干区域: area 0
非骨干区域: area 1
特殊区域: 减少邻居关系 邻人关系过多会造成的影响:
[*]大量产生hello包,斲丧CPU性能
[*]产生重复路由通告,斲丧CPU性能
[*]任何一台路由器的路由变化都会导致多次通报,浪费了带宽资源
多区互连原则:
[*]非骨干区域与非骨干区域不能直接相连;
[*]全部非骨干区域必须与骨干区域相连;
[*]此计划是为防止区域间环路
六.OSPF的路由器范例
https://i-blog.csdnimg.cn/direct/e6bf2339199149ec8cd9a9cba5eedb96.png
区域内路由器(IR)全部接口在同一区域骨干路由器(BR)全部接口都在骨干区域区域边界路由器(ABR)毗连骨干区域和非骨干区域自治系统边界路由器(ASBR)毗连外部自治系统并引入外部路由
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]