OSPF概述

技术背景

OSPF

  1. 网络规模扩大

  2. 网络可靠性要求提高

  3. 网络异构化趋势加强

  4. 图示

    alt OSPF技术背景

RIP

RIP协议缺点

  1. 逐跳收敛,收敛速度慢(周期30s),故障恢复时间长

  2. 分布式路由计算,缺少对全局网络拓扑的了解

  3. 以“跳数”为度量,存在选择次优路径的风险

  4. 图示

    alt RIP协议缺点

解决办法

  1. 图表

    RIP的问题 优化或解决方法
    收敛速度慢 触发式更新
    缺少对全局网络拓扑的了解 路由器基于拓扑信息,独立计算路由
    存在选择次优路由的风险 将链路带宽作为选路参考值
  1. 图示

    alt RIP协议问题的解决方法

OSPF协议

简介

内容

  1. 路由信息的传递(LSA)与路由计算(SPF算法)分离
  2. 基于SPF算法
  3. 以“累计链路开销”作为选路参考值
  4. 链路状态路由协议LSA

图示

alt OSPF协议

OSPF工作流程

工作流程

  1. 建立邻居(Hello包,OSPF状态)

  2. 同步数据链路状态

  3. 计算路由

  4. 通过LSDB掌握全网的拓扑结构,一个区域内的LSDB都是同步的

  5. 图示

    alt OSPF工作过程

  6. 设备内部的变化

    alt OSPF设备内部变化

  7. OSPF流程

    alt OSPF流程

OSPF RID

简介

  1. 用于自治系统中来标识唯一的路由器,每台运行OSPF的路由器都有一个唯一的Router ID

  2. 配置方式:自动或者手动

  3. 图示

    alt OSPF Router ID

Router ID配置方式

  1. 自动配置
    • 首先看有没有回环口,有回环口则用回环口的IP地址
    • 如果没有回环口,则从物理接口或者虚拟接口中选择IP地址最大的作为Router ID
    • 如果没有配置Router ID,则Router ID为0.0.0.0,此时OSPF协议没有启动起来
  2. 手动配置
    • 在开启OSPF协议的同时,直接设置Router ID
    • 强烈建议手动配置

OSPF建立邻居

OSPF邻居建立的过程

  1. 两个三层设备没有开启OSPF协议之前,down状态

  2. 当两个三层设备同时开启OSPF协议,此时两个三层设备都会同时发送Hello数据包

  3. A设备给B设备发送Hello包,其中没有与B设备相关的路由信息,B设备也给A设备发送Hello包,也没有与A设备相关的路由信息,此时两个设备进入init状态

  4. 当两个设备发送Hello包,同时也互相包含了对方的路由信息,此时两个设备都进入2-way状态,也是建立邻居的状态

  5. 图示

    alt OSPF邻居建立状态

手动建立邻居

  1. OSPF支持通过单播方式建立邻居关系

  2. 对于不支持组播的网络通过手动配置实现邻居的发现与维护

  3. 图表

    命令 备注
    ospf 1 router id 1.1.1.1 创建OSPF进程
    peer 192.168.1.1 手动创建邻居
  1. 图示

    alt OSPF手动创建邻居

OSPF建立邻接

LSDB同步

  1. 创建邻居关系(2-way状态)后,开启OSPF协议的三层设备进入ExStart状态,两个三层设备互相发送DD(Database Description)数据包,此时两个三层设备的DD数据包中,都表明自己是Master
  2. 当两个设备都收到对方的DD数据包之后,会比较两个三层设备的Router ID,Router ID大的作为Master,选举Master的作用为了遵从Master的序列号
  3. 选举完Master之后,进入ExChange状态,此时两个三层设备会发送DD数据包,比较两个三层设备的LSDB数据库,只更新自己LSDB数据库中没有的路由信息
  4. 此时进入Loading状态,两个设备会发送LS Request数据包,请求对方发送自己LSDB中没有的路由信息
  5. 收到LS Request 的设备会发送LS Update 数据包,将路由信息发送给请求方
  6. 请求方收到LS Update之后,会给发送方回复确认信息的LS ACK的数据包,此时进入Full状态

图示

alt LSDB同步

OSPF区域划分

OSPF单区域问题

  1. 收到LSA通告太多,LSDB过于庞大,OSPF路由器的负担会很大

  2. 内部动荡会引起全网路由器重新进行SPF计算

  3. 资源消耗过多,LSDB庞大,设备性能下降,影响数据转发的效率

  4. 每台路由器都需要维护的路由表越来越庞大,单区域无法进行汇总

  5. 图示

    alt OSPF单区域的问题

OSPF单区域问题解决办法(划分区域)

  1. 较少LSA泛洪的范围,有效的把拓扑控制在区域内,达到优化网络的目的、

  2. 在区域边界可以做路由汇总,较少路由表

  3. 充分利用OSPF特殊区域的特性,进一步减少LSA泛洪,从而优化路由

  4. 多区域提高了网路的扩展性,有利于组建更大规模的网络

  5. 图示

    alt OSPF单区域问题的解决方法

OSPF单区域配置案例

  1. 拓扑

    alt OSPF单区域实验拓扑

  2. 实验结果对比

    alt 第一种结果对比

  3. 以太网段的也运行OSPF

    alt OSPF单区域实验2

  4. 结果

    结果

  5. 验证命令

    命令 备注
    dis ospf peer brief 查看邻居状态
    dis ospf routing 查看OSPF路由表
    dis ospf lsdb 查看OSPF的LSDB
    dis ospf interface 查看OSPF接口
    dis ospf abr-asbr 查看ABR和ASBR

OSPF 度量值Cost

OSPF度量值计算

  1. 公式:Cost = 带宽参考值/实际带宽

  2. 更改Cost的两种方式

    • 直接在接口上配置
    • 修改带宽参考值(所有路由器都需要修改,确保选路一致)
  3. 路由Cost计算三层设备哪个接口的Cost

    • 数据发送方式,看的是出接口
    • 路由方向,看的是入接口
  4. 图示

    alt OSPF度量值计算

网络类型(基于接口)

图表

网络类型 常见链路层协议
P2P Point-to-Point PPP链路,HDLC链路
Broadcast Ethernet链路
NBMA FR链路、ATM链路
P2MP Point-to-MultiOoint
Virtual Link VC 虚连接

P2P网络

  1. 仅两台路由器互联

  2. 支持广播、组播

  3. 图示

    alt P2P网络

BMA 广播型网络

  1. 两台或者两台以上的路由器通过共享介质互联

  2. 支持广播、组播

  3. 选举DR、BDR

  4. 图示

    alt BMA广播型多路网络

NBMA网络

  1. 非广播多路访问

  2. 两台或两台以上路由器通过VC互连

  3. DLCI,Data Link Connection Identifier数据链路连接标识符,约等于交换机的二层MAC地址

  4. 不支持广播、组播,单播建立邻居

  5. 图示

    alt NBMA非广播多路访问

P2MP网络

  1. 点到多点

  2. 两台或两台以上路由器通过VC互连

  3. 支持广播、组播

  4. 图示

    alt P2MP点到多点

虚连接(Virtual Link)

背景

  1. 为了避免区域(area)间的环路,OSPF规定:不允许直接在两个非骨干区域之间发布路由信息。只允许在一个区域内部或者在骨干区与非骨干区之间发布路由信息
  2. 每个ABR(边界路由器)必须直接连接到骨干区域。即要求所有非骨干区域必须与骨干区域连接,同时骨干区域之间也必须连接
  3. 由于网络设计、升级、合并、改造等因素,从而造成不规范区域架构,最终导致路由学习不完整 ,解决方法:使用虚链路
  4. 虚链路的存在增加网络的复杂性,使得故障的排除比较困难。应该尽量避免使用虚链路
  5. 虚链路作为:修复无法避免:的网络拓扑问题的一种临时手段
  6. 虚链路可以作为标明网络的某个部分是否需要重新规划设计的标志

域内区域间环路

  1. 路由环路

    alt OSPF域内路由环路

  2. 不规范的路由架构

    alt 不规范的区域架构

  3. 避免域间环路

    alt 避免域间路由

实验

  1. 拓扑

    alt OSPF虚连接拓扑

  2. 配置

    • 图表

      命令 备注
      vlink peer x.x.x.x 配置虚连接,使用端口Router ID
      display ospf vlink 验证虚连接
  • R1配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sys
    sys R1
    int g0/0/0
    ip add 12.0.0.1 24
    int lo 1
    ip add 1.1.1.1 32

    ospf 1 router-id 1.1.1.1
    area 0
    net 12.0.0.0 0.0.0.255
    net 1.1.1.1 0.0.0.0
  • R2配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sys
    sys R2
    int g0/0/0
    ip add 12.0.0.2 24
    int g0/0/1
    ip add 23.0.0.1 24

    ospf 1 router-id 2.2.2.2
    area 0
    net 12.0.0.0 0.0.0.255
    area 1
    net 23.0.0.0 0.0.0.255
    vlink-peer 3.3.3.3
  • R3 配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sys
    sys R3
    int g0/0/0
    ip add 23.0.0.2 24
    int g0/0/1
    ip add 34.0.0.1 24

    ospf 1 router-id 3.3.3.3
    area 2
    net 34.0.0.0 0.0.0.255
    area 1
    net 23.0.0.0 0.0.0.255
    vlink-peer 2.2.2.2
  • R4配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sys
    sys R4
    int g0/0/0
    ip add 34.0.0.2 24
    int lo 1
    ip add 4.4.4.4 32

    ospf 1 router-id 4.4.4.4
    area 2
    net 34.0.0.0 0.0.0.255
    net 4.4.4.4 0.0.0.0
  1. 验证

    • 抓包

      alt 虚连接抓包

    • 虚链路发送的包

      alt 虚链路发送的包

    • ping

      alt ping

总结

alt 总结

alt 总结

邻居邻接关系

网络类型 是否和邻居建立邻接关系
P2P
Broadcast DR与BDR、DR Others建立邻接关系
BDR与DR、DR Others建立邻接关系
DR Others之间建立邻居关系
NBMA DR与BDR、DR Others建立邻接关系
BDR与DR、DR Others建立邻接关系
DR Others之间建立邻居关系
P2MP

DR与BDR

MA网络中的问题

  1. 需要n x (n-1)/2个邻接关系,管理复杂

  2. 重复的LSA泛洪,造成资源浪费

  3. 图示

    alt MA网络中的问题

DR与BDR作用

  1. 减少邻接关系

  2. 降低OSPF协议流量

  3. 图示

    alt DR与BDR作用

DR与BDR选举

  1. 选举原则
    • 基于接口
    • DR、BDR选举具有非抢占性
  2. 选举规则
    • 首先看接口的优先级 ,优先级越大的越优先
    • 接口的优先级相同的时候,看接口的router-id,router-id越大越优先
  3. 图示

实验

拓扑

alt FR实验拓扑

配置

帧中继DLCI配置

  1. 到对端的路径

    alt FR到对端的路径配置

  2. 关闭

命令

  1. 图表

    命令 备注
    ospf network-type
    broadcast
    nbma
    p2mp
    p2p
    配置接口OSPF网路类型
    回环口/32主机路由现象:
    OSPF认为回环口只有一个地址,因此在传递时
    自动变成/32主机路由信息,可以通过修改网络累心为Broadcast来进行还原
    peer x.x.x.x 手动配置邻居
    ospf dr-priority 100 配置接口优先级
    默认为1
    只有Broadcast和NBMA接口会进行DR与BDR选举
  1. 配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    sys
    sys R1
    int s4/0/0
    ip add 123.0.0.1 24
    link-protocol fr

    #关闭

    undo fr inarp

    #手动配置FR映射
    fr map ip 123.0.0.2 102 broadcast
    fr map ip 123.0.0.3 103 broadcast


    #帧中继交换中配置DLCI

    ospf 1 router-id 1.1.1.1
    area 0
    net 123.0.0.0 0.0.0.255
    q
    #手动配置邻居
    peer 123.0.0.2
    peer 123.0.0.3

    #接口网络累心修改
    int s4/0/0
    ospf network-type p2mp

结果验证

  1. FR抓包

    alt FR实验抓包验证

  2. OSPF端口状态

    alt OSPF端口状态

  3. OSPF Attempt状态

    alt OSPF Attempt状态

  4. OSPF接口网络类型修改

    alt OSPF接口网络类型修改

吴超 wechat
subscribe to my blog by scanning my public wechat account