【HCIA】学习--动态路由之OSPF协议

300 阅读6分钟

image.png

开启掘金成长之旅!这是我参与「掘金日新计划 · 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
  • 区域的优点 尽可能减少路由条目,使拓扑变化仅影响本区域内部

image.png

一个接口只能属于一个区域

OSPF的区域类型

  • 骨干区域 Area 0,核心区域,也叫传输区域(负责在不同的非骨干区域之间分发路由信息)
  • 非骨干区域 非Area 0 也称为常规区域
  • 备注 所有其他非骨干区域必须和骨干区域直接相连

image.png

OSPF的路由器类型

  • IR Internal Router, 内部路由器
  • BR Backbone Router, 骨干路由器
  • ABR Area Border Router, 区域边界路由器,连接一个或者多个区域到骨干区域,至少有一个接口属于骨干区域
  • ASBR 自治系统边界路由器,把从其他路由器协议学习到的路由以引入的方式到OSPF的进程中
  • 备注:一台路由器可以同时属于多种类型

image.png

OSPF的核心工作流程

  1. 发现并建立邻居
  2. 传播LSA(区别于距离矢量的路由表更新)
  • Link State Advertisement 链路状态宣告,路况信息
  • 链路,路由器的接口
  • 状态,描述接口信息(地址、掩码、开销、网络类型、邻居关系等)
  1. 将LSA范洪到区域中所有的OSPF路由器,而不仅是直连的路由器
  2. 收集LSA创建LSDB,链路状态数据库,地图
  3. 使用SPF算法计算到每个目标网络的最短距离,并将其置于路由表中

发现邻居

image.png

范洪LSAS

image.png

计算最佳路径

image.png

生成路由信息

image.png

OSPF建立的三张表格

  • 邻居表 记录所有邻居关系
  • 链路状态数据库 记录所有链路状态信息
  • 路由表 记录最佳路由

Router ID

  • 运行OSPF协议前,必须选取一个RID
  • 用来唯一标识一台OSPF路由器
  • RID可以手动配置,也可以自动生成

RID选取规则

  • 手动配置 不需要是任何一个接口地址
  • 活动回环接口上选择IP地址最高的
  • 活动物理接口上选取IP地址最高的
  • 宕掉的接口不参与选举
  • RID选举具有非抢占性,除非重启OSPF进程

OSPF的协议类型

  • 封装在IP协议之后 协议号89
  • 头部和Hello数据包

image.png

OSPF 数据包类型和作用

  • Hello 建立和维护邻居关系
  • Database Description LSDB的摘要(仅包含LSA的头部)
  • Link State Request 请求LSA
  • Link State Update 发送LSU
  • Link State Acknowledge 对LSU的确认

OSPF状态机制

image.png

  • 邻居

    • 失效状态(Down)没有收到Hello包
    • 初始状态(Init)收到Hello包,但是没有看到自己
    • 双向通讯状态(2-way)收到了hello包,且看到了自己,形成邻居关系
  • 邻接

    • 交换初始状态(Exstart)决定信息交换是路由器的主从关系
    • 交换状态(Exchange)向邻居发送DD数据包
    • 加载状态(Loading)LSR和LSU交换
    • 完全邻接状态(Full)LSDB同步,形成邻接关系
  • 备注 只有2-way和full是最稳定的状态

  • 第一阶段 image.png

  • 第二阶段

image.png

  • 第三阶段

image.png

邻居建立的条件

  • RID唯一
  • Hello/Dead时间间隔一致
  • 区域ID一直
  • 认证一致
  • 链路MTU大小一致
  • 子网掩码一致
  • 网络地址一致
  • 末梢区域一直

OSPF的网络类型

  • 基于接口 缺省状态下,OSPF认为以太网的网络类型是广播类型,PPP、HDLC的网络类型是点到点类型。

image.png

DR和BDR

  • 只要是多路访问BMA和NBMA网络中,为了减少邻接关系的数量,从而减少数据包交换次数,最终节省带宽,降低路由器处理的压力因此选举BR和BDR

image.png

参与的邻居越多,交换过程越多,数据包越多,占据带宽越多。

  • 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选举等

image.png

当路由器R3感知到外部的拓扑变化之后,向组播地址224.0.0.6发送LSU

image.png

  • DR向组播地址224.0.0.5发送更新以便通知其他路由器
  • 所有的OSPF路由器监听224.0.0.5这一组播地址,便能收到DR泛洪的LSU。

OSPF的度量值

在每一个运行OSPF的接口上,都维护着一个接口Cost Cost = 10^8/BW(bps) = 100Mbps/BW = 接口带宽参考值/接口带宽

到一个目标网络的度量值 =

  • 从源到目标所有出站接口的Cost值累加(数据方向)
  • 从源到本路由器沿途所有入站接口的Cost累加 (路由方向)

image.png

备注:华为回环口默认设置为0

image.png

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进程

image.png