开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情
前言
学习数通知识,考证书~ 考证书,记笔记,记笔记~
OSPF
开放式最短路径优先OSPF(Open Short Path First)协议是IETF定义的一种基于链路状态的内部网关路由协议。而RIP是一种基于矢量距离算法的路由协议,存在着慢收敛,易产生环路、可拓展性差等问题,目前已经逐渐被OSPF取代
OSPF概述,开放最短路径优先
- 大中型网络上使用最为广泛的IGP协议
- 链路状态路由协议
- 无类
- 使用组播方式(224.0.0.5和224.0.0.6)
- 收敛较快
- 以开销(Cost)作为度量值
- 采用的SPF算法可以有效的避免环路
- 触发式更新,(以较低的频率发送定期更新,被称为链路状态范洪)
- 区域的设计使得OSPF能够支持更大的网络规模
- 通过LSA的形式发布路由
- 不支持自动汇总,支持手动汇总
术语
- 区域(Area) 为了适应大型的网络,OSPF在AS内划分多个区域,区域是以接口为单位来划分的,每个OSPF路由器只维护所在区域的完整链路状态信息
- 区域ID (Area ID)可以表示成10进制的数字,如1 也可以表示成一个IP,如0.0.0.1
- 区域的优点 尽可能减少路由条目,使拓扑变化仅影响本区域内部
一个接口只能属于一个区域
OSPF的区域类型
- 骨干区域 Area 0,核心区域,也叫传输区域(负责在不同的非骨干区域之间分发路由信息)
- 非骨干区域 非Area 0 也称为常规区域
- 备注 所有其他非骨干区域必须和骨干区域直接相连
OSPF的路由器类型
- IR Internal Router, 内部路由器
- BR Backbone Router, 骨干路由器
- ABR Area Border Router, 区域边界路由器,连接一个或者多个区域到骨干区域,至少有一个接口属于骨干区域
- ASBR 自治系统边界路由器,把从其他路由器协议学习到的路由以引入的方式到OSPF的进程中
- 备注:一台路由器可以同时属于多种类型
OSPF的核心工作流程
- 发现并建立邻居
- 传播LSA(区别于距离矢量的路由表更新)
- Link State Advertisement 链路状态宣告,路况信息
- 链路,路由器的接口
- 状态,描述接口信息(地址、掩码、开销、网络类型、邻居关系等)
- 将LSA范洪到区域中所有的OSPF路由器,而不仅是直连的路由器
- 收集LSA创建LSDB,链路状态数据库,地图
- 使用SPF算法计算到每个目标网络的最短距离,并将其置于路由表中
发现邻居
范洪LSAS
计算最佳路径
生成路由信息
OSPF建立的三张表格
- 邻居表 记录所有邻居关系
- 链路状态数据库 记录所有链路状态信息
- 路由表 记录最佳路由
Router ID
- 运行OSPF协议前,必须选取一个RID
- 用来唯一标识一台OSPF路由器
- RID可以手动配置,也可以自动生成
RID选取规则
- 手动配置 不需要是任何一个接口地址
- 活动回环接口上选择IP地址最高的
- 活动物理接口上选取IP地址最高的
- 宕掉的接口不参与选举
- RID选举具有非抢占性,除非重启OSPF进程
OSPF的协议类型
- 封装在IP协议之后 协议号89
- 头部和Hello数据包
OSPF 数据包类型和作用
- Hello 建立和维护邻居关系
- Database Description LSDB的摘要(仅包含LSA的头部)
- Link State Request 请求LSA
- Link State Update 发送LSU
- Link State Acknowledge 对LSU的确认
OSPF状态机制
-
邻居
- 失效状态(Down)没有收到Hello包
- 初始状态(Init)收到Hello包,但是没有看到自己
- 双向通讯状态(2-way)收到了hello包,且看到了自己,形成邻居关系
-
邻接
- 交换初始状态(Exstart)决定信息交换是路由器的主从关系
- 交换状态(Exchange)向邻居发送DD数据包
- 加载状态(Loading)LSR和LSU交换
- 完全邻接状态(Full)LSDB同步,形成邻接关系
-
备注 只有2-way和full是最稳定的状态
-
第一阶段
-
第二阶段
- 第三阶段
邻居建立的条件
- RID唯一
- Hello/Dead时间间隔一致
- 区域ID一直
- 认证一致
- 链路MTU大小一致
- 子网掩码一致
- 网络地址一致
- 末梢区域一直
OSPF的网络类型
- 基于接口 缺省状态下,OSPF认为以太网的网络类型是广播类型,PPP、HDLC的网络类型是点到点类型。
DR和BDR
-
只要是多路访问BMA和NBMA网络中,为了减少邻接关系的数量,从而减少数据包交换次数,最终节省带宽,降低路由器处理的压力因此选举BR和BDR
参与的邻居越多,交换过程越多,数据包越多,占据带宽越多。
-
DR Design Router ,指定路由器,类似班长、总经理
-
BDR Backip DR ,备用DR,类似于副班长,副经理
-
DRouters 类似于学生,普通员工
-
关系,DR BDR DRothers之间都保持邻接关系
-
DRothers之间保持邻居关系
-
选举规则
- 首先比较Hello报文中携带的优先级
- 优先级范围0-255 默认为1
- 优先级最高的被选举为DR,优先级次高的被选举为BDR
- 优先级为0的不参与选举
- 优先级一致的情况下,比较RID,越大越优先
- 选举具有非抢占性,除非当DR或者BDR都失效或重启OSPF进程
-
地址
- 224.0.0.6 向DR、BDR发送链路状态更新
- 224.0.0.5 向所有OSPF路由器发送
-
DR和BDR跟之前的主仆关系无关,只有多路访问的时候才会有DR和BDR选举等
当路由器R3感知到外部的拓扑变化之后,向组播地址224.0.0.6发送LSU
- DR向组播地址224.0.0.5发送更新以便通知其他路由器
- 所有的OSPF路由器监听224.0.0.5这一组播地址,便能收到DR泛洪的LSU。
OSPF的度量值
在每一个运行OSPF的接口上,都维护着一个接口Cost Cost = 10^8/BW(bps) = 100Mbps/BW = 接口带宽参考值/接口带宽
到一个目标网络的度量值 =
- 从源到目标所有出站接口的Cost值累加(数据方向)
- 从源到本路由器沿途所有入站接口的Cost累加 (路由方向)
备注:华为回环口默认设置为0
Cost分别是65和129。
OSPF配置
ospf 1 router-id 1.1.1.1
area 0/0.0.0.0
network 192.168.0.0 0.0.0.255 【0.0.0.255 反掩码】
network 192.168.4.4 0.0.0.0 == 192.168.4.4/32
display ospf peer brief
ospf timer hello 10
ospf timer dead 40
display ospf interface g0/0/0
ospf dr-priorty 100 # 修改ospf的接口范围
ospf cost 10
bandwidth-rederence 100 # 调整带宽参考值,默认100Mbps,需要在整个OSPF网络中进行统一调整
reset ospf process # 重启OSPF进程