OSPF:开放式最短路径优先协议

本文详细介绍了OSPF协议的工作原理、数据包类型、状态机、网络类型、配置基础以及优化策略。OSPF是一种无类别链路状态型IGP协议,依赖拓扑更新,适用于大、中型网络。它通过区域划分和地址规划来优化网络资源,支持正常等开销负载均衡,并使用协议号89。OSPF路由器间经历不同状态阶段建立邻居和邻接关系,通过LSA进行信息同步。文章还讨论了OSPF的选路规则、特殊区域配置以及防环机制,提供网络管理员深入理解和优化OSPF网络的参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

无类别链路状态型IGP协议;由于其基于拓扑进行更新收敛,故更新量会随着拓扑的变大而成指数上升;故OSPF协议为了能在大、中型网络中运行,需要结构化的部署----合理的区域划分、良好的地址规划 。正常等开销负载均衡; 跨层封装协议,协议号89;

更新方式:组播更新 224.0.0.5 224.0.0.6 触发更新+周期更新(30min)

距离矢量 DV 链路状态LS
分类 RIP EIGRP OSPF ISIS
特点 邻居间共享路由条目 邻居间传递的是拓扑
传闻性协议 本地计算路

判断一个路由协议好坏的三方面:

  1. 收敛速度快

  2. 选择路径佳(前提防环)

  3. 占用资源少

一、OSPF的数据包 -- 5种

种类 名称 作用
HELLO hello包 组播收发,用于邻居、邻接关系的发现、建立、周期保活
DBD 数据库描述包 本地LSDB(链路状态数据库)目录
LSR 链路状态请求 用于询问对端本地未知的LSA信息
LSU 链路状态更新 用于共享具体的每一条LSA信息
LSack 链路状态确认 确认包

LSA--链路状态通告--具体的一条一条 路由或者拓扑信息,不是一种数据包,所有的LSA是使用LSU这种包来转发的;

OSPF的数据包是跨层封装于3层报头后方 ,协议号89

二、OSPF的状态机 -- 两台OSPF路由器间不同关系的阶段

状态 工作方式
Down 一旦接收到对端的hello包进入下一个状态
Init 初始化 若接收到的hello包中存在本地的RID,那么进入下一个状态机
2way 双向通讯 邻居关系建立的标志
Exstart预启动 使用不携带数据库目录信息的DBD包,进行主从关系的选举,RID数值大为主,优先进入下一个状态机
exchange准交换 使用携带数据库目录信息的DBD包,进行目录共享,需要ACK确认
loading加载 接收到其他邻接的目录信息后,和本地进行比对,若本地存在未知的LSA信息,将使用LSR询问对端,对端使用LSU来更新这些LSA信息,直至双方数据库一致;LSU需要ACK确认
Full 转发 标志着邻接关系已经建立

条件:点到点网络直接进入下一个状态机;MA网络进行DR/BDR选举,非DR/BDR之间不能进入下一个状态机;

三、OSPF的工作过程

  1. 路由器上启动OSPF协议后,直连的邻居间,开始组播收发hello包,hello包中将存储本地已知邻居的RID,在双方RID均已知的情况下,建立邻居关系,生成邻居表;

  2. 邻居关系建立后,邻居间将进行条件匹配,匹配失败将停留为邻居关系,仅hello周期保活即可;匹配成功者间将进行邻接关系的建立;

  3. 邻接关系间的路由器,将使用DBD/LSR/LSU/LSack来获取本地未知的所有LSA信息;使得同一区域内所有路由器的数据库完全一致; ---- 数据库表;

  4. 当本地数据库完成同步后,将数据库-->有向图-->树型结构图-->将本地到达所有未知网段的最短路径加载于本地路由表中;

  5. 收敛完成,仅hello包周期保活即可;正常每30min,邻接关系间再进行一次DBD的对比,若一致及正常;若不一致将马上进行同步;

结构突变:触发更新

  1. 断开网段 直连断开网段的设备,直接使用LSU告知邻接,需确认

  2. 新增网段 直连新增网段的设备,直接使用LSU告知邻接,需确认

  3. 无法沟通 hello time 对应的 dead time ;dead time 到时时,断开邻居关系,去除基于该邻接共享的LSA计算所得路由;

四、OSPF的基础配置

启动时,定义进程号,仅具有本地意义;建议配置RID;

RID格式为ipv4地址,且需要全网唯一;

手工配置-->环回接口上取最大数值的ip地址--->物理接口上最大ip地址的数值

[r1]ospf 1 router-id 1.1.1.1

宣告: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.0 0.0.0.255

区域划分规则:

  1. 星型结构 -- 区域0为骨干 大于0为非骨干 非骨干区域必须直连骨干区域

  2. ABR--区域边界路由器 两个区域间必须依靠ABR连接

1.启动配置完成后,邻居间使用hello包建立邻居关系,生成邻居表

hello包 -- 组播收发 周期发送 -- hello time 10s 或30s dead time 为hello time 4倍

 邻居间hello包中有一些参数必须完全一致,否则无法建立邻居关系;(图中带星号)

Hello 和dead time 、区域ID、认证参数、末梢区域标记;另外在华为的设备中OSPF要求邻居间接口上配置的ip地址,其掩码长度必须一致;

[r2]display  ospf peer  查看邻居表
​[r2]display  ospf peer  brief  查看邻居关系简报 

2.当邻居关系建立后,邻居间进行条件匹配,匹配失败,将保持为邻居关系;匹配成功,将建立为邻接关系,邻接关系将使用DBD/LSR/LSU/LSack来获取本地未知的所有LSA信息,同步生成数据库表---LSDB 链路状态数据库

[r2]display  ospf lsdb 查看数据库表

3.数据库表同步完成后,邻接间的互动完成,仅hello包保活;之后本地基于本地的数据库表;转换为有向图,再转换为树形结构,最终将本地到达所有未知网段的最短路径,加载于本地的路由表中:

<r1>display  ip routing-table protocol  ospf 

默认ospf协议在华为设备中,优先级为10;度量为cost值

cost值=开销值= 参考带宽/接口带宽 默认参考带宽为100M

ospf协议将cost值之和最小定义为最佳路径,加载于本地路由表中

若接口带宽大于参考带宽,cost值为1,将可能导致选路不佳;可以修改默认的参考带宽

  • 修改默认参考带宽:

[r1]ospf 1 
​
[r1-ospf-1]bandwidth-reference ?
​
 INTEGER<1-2147483648>  The reference bandwidth (Mbits/s)
​
[r1-ospf-1]bandwidth-reference 1000

切记:一旦修改,整个网络所有ospf路由器需要一致;

关于ospf的MTU问题:

在ospf协议的DBD包中将携带本地接口的MTU值,若两端一致可以正常建立邻居关系;若不一致将无法建立邻接关系;

默认华为设备不携带MTU;

  • 开启MTU---两端设备均需开启MTU

[r1-ospf-1] int g0/0/1 
​
[r1-GigabitEthernet0/0/1]ospf mtu-enable   

五、关于OSPF协议从邻居

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值