OSPF

稚 发布于 2024-08-26 34 次阅读


OSPF 基础

OSPF(Open Shortest PathFirst,开放式最短路径优先)OSPF报文采用IP报文封装可靠传输,在IP报文的IP头部中,协议号89。共有两个版本。V2版本用于IPV4。V3版本用于IPV6。互相不兼容。OSPF组播地址:224.0.0.5(所有运行ospf协议的路由器侦听的组播地址),224.0.0.6 (DR和BDR侦听的组播地址)

OSPF宣告路由时宣告的掩码为反掩码

链路状态路由协议的工作原理:
1. 建立邻居(通过Hello报文发现直连链路上的邻居)
2. 泛洪LSA,收集LSA存放在LSDB中
3. 根据SPF算法计算,以自己为根的无环的,拥有最短路径的树
    > SPF --- Shortest Path First,最短路径优先
4. 将计算出来的路由存放在OSPF路由表中

Area 用于表示一个OSPF区域,表示方式:area ID。其中Area 0表示骨干区域,其他为非骨干区域必须与骨干区域相连

Router ID : RouterID用于在自治系统中唯一标识一台运行OSPF的路由器,它是一个32位的无符号整数

选举规则:

1. 手动配置OSPF路由器的Router ID(建议手动配置)
2. 如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID
3. 如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID

OSPF度量值cost : 计算方法:cost=100/接口带宽 100Mbit/s 100为默认值可以更改 不足为1的置为1 一条OSPF路由的开销值计算:路由器到目的网段经过所有的出接口的cost值的和 每一个激活OSPF的接口都会维护一个接口cost值 优先走Cost小的那条路

s口速率很低只有1.544mbit/s cost常见为64或48

三张表

  1. 邻居表:存放邻居关系
  2. LSDB表:存放lsa
  3. OSPF路由表:存放OSPF路由

四种网络类型

网络类型 是否需要选举DR/BDR
点到点(P2P) PPP/HDLC 不需要
点到多点(P2MP) 手工指定 不需要
广播多路访问(BMA) 以太网 需要
非广播多路访问(NBMA) 帧中继 需要

五种报文

Type 报文名称 报文功能
1 Hello 发现、维护邻居关系;MA网络中选举DR和BDR
2 Database Description 交互链路状态数据库摘要:携带LSA头部,在Exstart状态下选举主从
3 Link State Request 请求特定的链路状态信息:请求特定的LSA头部
4 Link State Update 发送详细的链路状态信息:更新请求LSA(完整的LSA信息)
5 Link State Ack 针对LSU进行确认:确认LSA

HELLO报文


DD报文

当两个路由器之间通过DD报文交换数据库信息的时候,首先形成一个主从关系,Router id大的一定为主

OSPF包含的报文头部信息都是一样的

七种状态

邻居关系(使用Hello报文)

  1. down --- 初始状态没有从邻居收到任何信息

  2. init --- 当收到对端发过来的Hello报文,报文中没有自己的router-id

  3. 2-way --- 当收到对端发送的Hello报文,报文中有自己的router-id。表示邻居关系建立;在MA中选举DR/BDR

邻接关系(首先要建立邻居关系)

  1. Exstart --- 通过空DD报文选举主从

  2. Exchange --- 交互携带LSR头部的DD报文

  3. loading --- 互相发送LSR/LSU/LSAck

    1->2 发送LSR 用于向邻居请求完整的LSA

    2->1 发送LSU 包含完整的LSA信息

    1->2发送LSAck 确认LSU报文

    两个路由均发送

  4. Full --- 代表邻接关系的建立

OSPF建立邻居关系的原则:

  1. Router id 不相同
  2. area 相同
  3. 验证类型和验证口令相同
  4. Hello/dead时间相同(10s/40s)
  5. 掩码要相同
  6. 特殊区域相同

DR/BDR

DR:指定路由器,负责在MA网络中建立和维护邻接关系并负责LSA同步。同一网段选举一个DR和BDR。DR和BDR会其他路由器建立邻接关系,其他路由器之间不会建立邻接关系,但是会建立邻居关系,状态停留在2-way BDR:备份指定路由器。在DR失效时候快速接管DR工作。

选举规则: DR/BDR的选举是非抢占式的 DR/BDR的选举是基于接口的

  1. 接口的DR优先级越大越优先 (0-255) 默认为1。 0不参与选举
  2. 接口的DR优先级相等时,Router ID越大越优先。
    优先级为0不参与选举 新设备不能直接成为DR/BDR

063f2785-8898-4f3e-b5d6-d2d94d7388ef

为什么要在MA中网络选举DR和BDR

  1. 减少邻接关系
  2. 减少LSA泛洪
  3. 减少设备资料的消耗

LSA

常见LSA 类型

类型 名称 描述
1 路由器LSA(Router LSA) 每个设备都会产生,描述了设备的链路状态和开销,该LSA只能在接口所属的区域内泛洪
2 网络LSA (Network LSA) 由DR产生,描述该DR所接入的MA网络中所有与之形成邻接关系的路由器,以及DR自己。该LSA只能在接口所属区域内泛洪
3 网络汇总LSA (Network Summary LSA) 由ABR产生,描述区域内某个网段的路由,该类LSA主要用于区域间路由的传递
4 ASBR汇总LSA (ASBR Summary LSA) 由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域
5 AS外部LSA (AS External LSA) 由ASBR产生,用于描述到达OSPF区域外的路由
7(没有六类) 非完全末梢区域LSA (NSSA LSA) 由ASBR产生,用于描述到达OSPF区域外的路由。NSSALSA与AS外部LSA功能类似,但是泛洪范国不同。NSSALSA只能在始发的NSSA内泛洪,并且不能直接进入Area0。NSSA的ABR会将7类LSA转换成5类LSA注入到Area

优先级 LSA1>LSA3>LSA5(1)>LSA5(2)

区域划分

区域划分路由角色:

  1. 区域内路由器(IR ---Internal Router):路由器的所有接口都属于同一区域
  2. 区域边界路由器(ABR --- Area Border Router ):路由器至少有一个接口属于骨干区域,且路由的接口同时属于两个以上区域
  3. 自治系统边界路由器(ASBR --- AS Boundary Router):只要一台OSPF路由器引入了外部路由信息,他就成为ASBR

区域间路由计算: 通过ABR产生的三类LSA(Network Summary LSA)的Cost实现。
外部路由计算: 如果和ASBR在同一个区域,那么通过1类和2类LSA计算到达ASBR的路由信息 如果和ASBR不在同一个区域,那么通过4类的LSA去计算去往ASBR的路由信息

区域间路由防环机制:

  1. OSPF要求所有的非骨干区域必须和骨干区域相连,由area0中转
  2. ABR不会将描述到达某个区域内网段路由的3类LSA发送再次到该区域
  3. ABR从非骨干区域收到是3类LSA不能用于区域间路由的计算。

虚连接:
虚连接可以在任意两个ABR上建立,但是要求这两个ABR都有端口连接到一个相同的非骨干区域
虚连接的创建使得OSPF协议可以通过非骨干区域通信,违背OSPF区域间的放环机制,因此不建议部署OSPF虚连接。
配置命令

进入area区域

vlink-peer 对端Router ID  
两个需要连接的路由器上均需要配置

Router LSA

产生者:每台路由器
Link State ID:router_id
泛洪范围:区域内
Router LSA 使用Link来承载路由器直连的接口信息 每条Link都包含链路类型 链路ID 链路数据 度量值

Link Type Link ID Link Data
P2P 描述本路由器到邻居路由器之间的点到点链路,属于拓扑信息 邻居路由器的Router ID (对端的router-id) 宣告该RouterLSA的路由器接口的IP地址
TransNet 描述本路由器到Transit网段(例如MA或者NBMA网段)的连接,属于拓扑信息 DR的接口IP地址 宣告该RouterLSA的路由器接口的IP地址
StubNet:描述本路由器到一Stub网段(例如Loopback接口)的连接,属于网段信息 宣告该RouterLSA的路由器接口的网络IP地址
网络地址
该Stub网络的网络掩码,
virtual 对端的router-id 连接virtual的接口IP地址

Network LSA

产生者:DR
Link State ID : DR的接口IP地址
泛洪范围:区域内
该LSA作用:描述MA网络的掩码信息和参与者

SPF 算法

第一阶段计算路由节点和Transit拓扑, 第二阶段计算Stub网段

  1. 以自己为跟检查Router LSA 将不是StubNet类型的Link加入候选列表
候选列表(Link ID) 候选总开销(到根节点的Metric总和) 根/父节点
  1. 将开销最小的移到最短路径树上并将其从候选列表中删除
  2. 查询刚才移动的路由的LSA 并重复此操作直到候选列表为空

Network Summary LSA

产生者:ABR
Link State ID:目的网段IP
泛洪范围:区域间
作用:描述区域间的路由信息

ASBR Summary LSA


产生者:ABR
Link State ID:ASBR的Router-id
泛洪范围:除ASBR的其他相关区域
作用:描述ASBR的位置

AS External Router


产生者:ASBR
Link State ID: 外部路由网络号
泛洪范围:整个AS内
作用:描述外部路由(外部路由网络号掩码、度量值(默认是type2)),FA)

NSSA LSA

产生者:ASBR LS ID:外部路由网络号 泛洪范围:NSSA区域 作用:描述外部路由(外部路由网络号掩码、度量值(默认是type2)),FA)

汇总

类型 英文名称 产生者 LINK ID 泛洪区域
1 路由器LSA(Router LSA) 每台路由器 邻居的ID 区域内
2 网络LSA(Network LSA) DR DR的接口IP地址 区域内
3 网络汇总LSA(Network Summary LSA) ABR 目的网段IP 区域内
4 ASBR汇总LSA(ASBR Summary LSA) ABR ASBR的Router ID 区域内
5 AS外部LSA(As Boundary Router) ASBR 外部网络地址 整个AS内
7 非完全末端区域LSA(NSSA LSA) ASBR 外部网络地址 NSSA区域

特殊区域

OSPF的区域可分为两种类型(了解):

  1. 传输区域(Transit Area):除了承载本区域发起的流量和访问本区域的流量外,还承载了源IP和目的IP都不属于本区域的流量.
  2. 末端区域(Stub Area):只承载本区域发起的流量和访问本区域的流量.
    如果将一个区域配置成为Stub区域,则该区域中的所有路由器都要配置Stub区域属性
 配置stub 
 进入area 视图
 输入 stub
Stub area

不允许LSA4和LSA5进入 区域里允许LSA1/LAS2/LSA3存在 同时在ABR会生成一条默认的路由到stub区域,由LSA3描述的。

Totally stub area

与Stub区域配置的区别在于,在ABR上需要追加no-summary关键字

与末梢区域相同但是在区域内的LSA3内部路由不能存在

NSSA

NSSA区域能够引入外部路由,同时又不会学习来自OSPF网络其它区域引入的外部路由

不允许LSA4和LSA5进入 区域里允许LSA1/LSA2/LSA3存在 同时在ABR会生成一条默认的七类路由到NSSA区域和详细的七类lsa用来标识引用的外部网络。 可以引入外部路由,ABR收到LSA7会执行7转5操作,把外部路由以LSA5通告给OSPF域内的其他路由器)

Totally NSSA

与NSSA区域配置的区别在于,在ABR上需要追加no-summary关键字

不允许LSA4和LSA5进入LSA3(域间路由)

允许LSA1/LSA2/LSA3(ABR产生的默认路由)存在 同时在ABR会生成一条默认的路由到Totally NSSA区域,由LSA7描述的。

特殊区域的作用:

  1. 减少特殊区域的LSA数量
  2. 减少特殊区域LSA计算的工作量
  3. 减少特殊区域的路由表的数量
  4. 减少特殊区域路由器的资源消耗

路由汇总

路由汇总:将一组前缀相同的路由汇聚成一条路由,从而减小路由表规模以及优化设备资源利用率
区域间路由汇总:在ABR上汇总 汇总后向其他路由通告汇总后路由

abr-summary 网段ip 掩码

外部路由:在ASBR上汇总 ;ASBR将自己所引入的外部路由进行汇总;NSSA区域的ASBR也可以对引入的区域的外部路由进行汇总 在NSSA区域中,ABR执行7类LSA转化成5类LSA动作,此时它也是ASBR

OSPF协议特性

silent-interface 不会接受和发送ospf报文

进入ospf视图
silent-interface 接口

OSPF报文认证

路由器支持两种OSPF报文认证方式,当两种认证方式都存在时,优先使用接口认证方式 区域认证方式(Simple 明文):一个OSPF区域中所有的路由器在该区域下的认证模式和口令必须一致, 接口认证方式(MD5 密文):相邻路由器直连接口下的认证模式和口令必须一致。

配置命令

配置Router-id

# 系统视图下  
ospf router-id 设置的ip

配置Area

# ospf视图下  
area 设置的区域ip

宣告ip

# area区域内  
# 1. 宣告ip  
network 接口ip 反掩码  
# 2. 宣告网段  
network 接口网段地址 反掩码

查看ospf路由表

display ospf routing

查看ospf邻接关系

display ospf peer

查看LSDB表

display ospf lsdb

修改OSPF网络类型

ospf network {p2p| p2mp| broadcas(默认)| nbma}

查看ospf 所有网络信息

display  ospf interface all

查看LSA

display ospf router self-originate

下发默认路由

default-route-advertise always

查看ospf邻居关系建立失败原因

display ospf error

配置虚连接 在AR4与AR6之间

[Huawei-ospf-1]vlink-peer 2.2.2.2 对端routerid