OSPF动态路由
目录:
OSPF路由协议是用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。
(1)自治系统(AS):各个系统相互不关联,比较独立
(2)内部网关协议(IGP)自治 系统内部,如RIP,OSPF等
(3)外部网关协议(EGP)自治系统与自治系统之间,如BGP
建立邻接关系→链路状态数据库→最短路径树→路由表
(1)OSPF协议启动后,某个端向本地所有启动OSPF协议的直连接口组播224.0.0.5发送hello包;
(2)链路状态数据库:当其他端收到后将回复hello包,建立邻接关系,端口学习链路状态信息存入链路状态数据库;
(3)最短路径树:Dijkstra算法,计算到达所有未知网段的最短路径;
(4)路由表:将计算出的最短路径加载到本地的路由表中,收敛完成。
- OSPF区域:为了适应大型的网络,OSPF在AS内划分了多个区域,每个OSPF都只维护所在区域的完整链路状态信息。加速收敛
- 区域ID:可以表示成一个十进制的数字,也可以表示成一个IP
- 骨干区域Area 0:负责区域间路由信息传播
- 非骨干区域:挂在骨干区域旁边,区域通信经过骨干区域
OSPF区域内唯一表示路由器的IP地址
Router ID选取规则:
- 选取路由器loopback接口上数值最高的IP地址(选择loopback接口,是因为该接口是虚拟出来的,不会物理down)
- 如果没有loopback接口,在物理端口中选取IP地址最高的
- 也可以使用router-id 命令指定 Router ID
在广播网络中,5台路由器总共需要建立n(n-1)/2 个邻接关系。占用了大量带宽,同时也不方便管理。
因此,需要配置DR和BDR来改进。
- DR(Designated Router):指定路由器,所有其他路由器只和它一个交换整个网络的一些路由更新信息,再由它对邻居路由器发送更新报文;
- BDR(Backup Designated Router):备份指定路由器,当DR出现故障时,BDR起着备份的作用;
- DROther(Designated Router Other):成员路由器
(1)自动选举DR和BDR
- 网段上Rouoter ID最大的路由器将被选举为DR,第二大的将被选举为BDR
(2)手工选举DR和BDR
- 优先级范围是0——255,数值越大,优先级越高,默认为1
- 如果优先级相同,则需要比较Router ID
- 如果路由器的优先级被设置为0,它将不参与DR和BDR的选举
注:
路由器的优先级可以影响一个选举过程,但是,它不能强制更换已经存在的DR或者BDR路由器。
如原来选举的DR router-id为1.1.1.1 之后又接入一个路由,router-id 为9.9.9.9 ,但是,因为DR已经选举出来,所以,9.9.9.9 不会替代1.1.1.1 成为新的DR
- DR会通过224.0.0.6,向所有邻居通告信息
- DRother 会通过224.0.0.5 向DR和BDR通告网络状态信息
OSPF数据包承载在IP数据包内,使用协议号89
类型:
OSPF的包类型 | 描述 |
Hello 包 | 用于发现和维持邻居关系,选举DR和BDR |
数据库描述包(BDR) | 用于向邻居发送摘要信息以同步链路状态数据库 |
链路状态请求包(LSR) | 在路由器收到包含新信息的BDR后发送,用于请求更详细的信息 |
链路状态更新包(LSU) | 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含几个LSA |
链路状态确认包(LSAck) | 确认已经收到LSU,每个LSA需要被分别确认 |
(1)OSPF启动的第一个阶段是使用Hello报文建立双向通信的过程
(2)OSPF启动的第二个阶段是建立完全邻接关系
- 点到点网络(Point-to-Point)
- 广播多路访问网络(Broadcast MultiAccess ,BMA)
- 非广播多路访问网络(None Broadcast MultiAccess , NBMA)
- 点到多点网络 (Point -to - Multipoint)
目前主要使用的是前两种
考虑:
- 网络规模:自治域内路由器数量
- 网络拓扑:是网型拓扑还是其他
- 其他特殊要求:收敛速度等
- 路由器自身要求:路由器本身的硬件性能
特点:
- 可适应大规模网络
- 路由变化收敛速度快
- 无路由环
- 支持区域划分支持可变长子网掩码VLSM
- 支持以组播地址发送协议报
OSPF | RIP v1 | RIP v2 |
链路状态路由协议 | 距离矢量路由协议 | |
没有跳数限制 | RIP的15 跳限制,超过15跳的路由被认为不可达 | |
支持可变长子网掩码(VLSM) | 不支持可变长子网掩码 | 支持可变长子网掩码 |
收敛速度快 | 收敛速度慢 | |
使用组播发送链路状态更新 | 周期性广播更新整个路由表 | 周期性组播更新整个路由表 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现