第五章 开放最短路径优先协议

目录

第一节 链路状态协议和OSPF

第二节 单区域OSPF的工作原理

第三节 单区域OSPF的基本配置

第四节 OSPF协议中的多路访问网络

第五节 单区域OSPF的高级配置

第六节 单区域OSPF的管理与排错

第七节 多区域OSPF的工作原理

第八节 多区域OSPF的配置与排错

第九节 IPv6中的OSPFv3


第一节 链路状态协议和OSPF

驱动问题

      • OSPF协议有什么特点?

        • 通过泛洪消息获得一致的网络互连信息

        • 基于完整的互连wang'luo信息进行最佳路由计算

      • 相对于RIP,OSPF协议有什么优点?

        • 收敛快、效率高、可扩展性强

      • OSPF协议有哪些部署方式?

        • 单区域、多区域

1、链路状态路由协议操作

最短路径优先协议

OSPF和IS-IS

最短路径优先算法——Dijkstra算法

2、链路状态路由过程

  • 每个路由器学习自己的链路和直连的网络

  • 每个路由器通过Hello报文发现其在直连网络上的邻居

  • 每个路由器建立一个链路状态包(LSP),其中包含每个直接连接链路的状态

  • 每台路由器将LSP扩散到所有邻居,邻居将收到的LSP存储在一个数据库中

  • 每个路由器使用数据库来构建一个完整的拓扑映射,并计算出到达每个目标网络的最佳路径

3、最短路径优先树

  • 路由区域内的每台路由器使用link-state数据库和SPF算法来构建SPF树

  • 每台路由器构建自己的SPF树,独立于其他所有路由器

  • 所有路由器的SPF树必须相同

  • 这些路径被添加到路由表中

4、链路状态路由协议的优点

  • 建立完整的网络拓扑图,确定最短路径

  • 立即泛洪LSP,加快收敛速度

  • 只有当拓扑发生变化时,才会发送带有新信息的LSP

  • 使用区域概念来支持汇总

5、链路状态路由协议的缺点

  • 需要额外的内存来维护数据库和SPF树

  • 计算SPF算法和创建完整的拓扑图需要更多的CPU处理

  • 在路由器初始启动时需要更多带宽,在不稳定的网络上可能是一个问题

6、Open Shortest Path First(OSPF)开放最短路径优先

  • 三个主要组件

    • 数据结构,路由协议消息和算法

  • 实现收敛

    • 建立邻居邻接

    • 交换链路状态的信息

    • 建立拓扑表

    • 执行SPF算法

  • OSPF路由器交换报文——这些报文用来发现相邻路由器,也用来交换路由信息,以保持网络的准确信息

    • Hello包

    • 数据库描述数据包

    • 链路状态请求包

    • 链路状态更新包

    • 链路状态确认包

7、开放最短路径优先的特征

  • 无类的——OSPFv2被设计成无类;支持IPv4的VLSM和CIDR

  • 高效——路由变化触发路由更新。它使用SPF算法来选择最优路径

  • 快速收敛——它快速传播网络变化

  • 可扩展——它在小型和大型网络中都能很好的工作。路由器可以被分组成区以支持分层系统

  • 安全的——OSPFv2协议支持MD5和SHA认证

8、链路状态操作

  • 路由器在共享信息之前必须在网络中相互识别,它们向所有支持OSPF的接口发送Hello报文,以确定邻居是否在这些链路上。

  • 如果邻居存在,则尝试与该邻居建立邻接关系

  • LSA包含了每条直连链路的状态和开销

  • 路由器向相邻的邻居发送LSA

  • 邻居收到LSA后,会立即将LSA扩散到其他直连的邻居,直到该区域内所有路由器都拥有该LSA

  • 根据接收到的LSA建立拓扑表

  • 这个数据库最终保存了关于网络拓扑的所有信息

  • 执行SPF算法

  • 从SPF树中,最好的路径被插入到路由表中

9、单区域和多区域OSPF

  • 单区域OSPF

    • 区域0又称为骨干区域

    • 单区域OSPF适用于路由器较少的小型网络

  • 多区域OSPF

    • 使用两层区域层次结构实现,因为所有区域必须连接到骨干区域(区域0)

    • 相互连接的路由器称为ABR(Area Border routers)

    • 用于大型网络部署,以减少处理和内存开销

第二节 单区域OSPF的工作原理

驱动问题

      • OSPF路由器之间传递哪些类型的消息?

        • Hello,DBD,LSU,LSAck

      • OSPF邻居关系经历哪些状态?

        • Down->Init->Two-way

        • ExStart->Exchange->Loading->Full

1、OSPF报文类型

Packet Name

描述

1

Hello包

发现邻居并在他们之间建立邻接关系

2

数据库描述包(DBR)

检查路由器之间的数据同步

3

链路状态请求包(LSR)

从路由器到路由器请求特定的链路状态记录

4

链路状态更新包(LSU)

发送特定请求的链路状态记录

5

链路状态确认包(LSAck)

确认其他数据包类型

2、Hello包

  • 发现OSPF邻居,建立邻居邻接关系

  • 发布两台路由器必须同意成为邻居的参数

  • 在以太网和帧中继等多址网络上选择指定路由器(DR)和备份指定路由器(BDR)

  • Hello包时间间隔

    • 发送OSPF Hello报文

    • 到224.0.0.5和IPv4和FF02::5在IPv6

    • 每10秒(多址和点对点网络的默认设置)

    • 每30秒(非广播多址【NBMA】网络的默认值)

    • 死亡间隔是路由器在宣布邻居死亡之前等待收到Hello报文的时间

    • 缺省值是Hello时间间隔的4倍

3、链路状态更新(LSU)

LSU包含一个或多个LSAs

LSA包含目的网络的路由信息

4、OSPF操作状态

  • 当一个OSPF路由器最初连接到一个网络时,它会尝试:

    • 与邻居建立邻接关系

    • 交换路由信息

    • 计算最佳路由

    • 达到收敛

  • OSPF在试图达到收敛的过程中,会经历多个状态

5、建立邻居邻接关系

DR和BDR的选举只在多址网络(如以太网)中进行

第三节 单区域OSPF的基本配置

驱动问题

      • OSPF路由协议基本配置包括哪些部分?

        • 启动OSPF路由进程

        • 配置Router-ID

        • 激活相应的网络

        • 调整链路开销值

      • OSPF路由协议中某个链路的Metric有哪些修改方法?

        • 修改参考带宽值(分子)

        • 指定带宽值(分母)

        • 指定开销值(分数)

1、路由器ID

  • 路由器ID是路由器的唯一标识,用于使能OSPF协议的路由器参与DR的选举

  • 基于三个条件之一的路由器ID

    • 通过OSPF router-id rid 命令明确配置

    • 路由器选择任何配置的回环接口的最高IPv4地址

    • 如果没有配置loopback接口,则选择其物理接口中最高的活动IPv4地址

  • 清楚OSPF进程是重置路由器ID的首选方式

2、配置参考网络

  • 支持OSPF

    • 路由器上与network命令中的网络地址匹配的任何接口都将使能发送和接收OSPF报文

  • 通配符掩码

    • 在通配符掩码中,二进制0等于一个匹配,二进制1不等于一个匹配

3、被动接口

  • 默认情况下,OSPF消息从所有使能OSPF的接口转发出去。但是,这些消息实际上只需要发送到与其他使能OSPF的路由器相连的接口

  • 在LAN上发送不需要的消息会以三种方式影响网络:

    • 带宽利用率低

    • 资源使用效率低

    • 安全风险增加

  • 被动接口特性有助于限制路由更新发布的范围

被动接口配置

使用passive-interface router configuration mode 命令可以禁止路由消息通过某个路由器接口传输,但仍允许将该网络通告给其他路由器

4、OSPF度量值:成本

Cost = 引用带宽/接口带宽

默认参考带宽为10^8bps

Cost = 100,000,000 bps / 接口带宽,单位bps

OSPF累计成本

OSPF路由开销是指从一台路由器到目的网络的路由开销的累计值

5、调整参考带宽

使用命令——auto-cost reference-bandwidth

必须在OSPF域内的每台路由器上配置

注意,该值的单位是 Mb/s:

千兆:auto-cost reference-bandwidth 1000

10千兆:auto-cost reference-bandwidth 10000

6、默认接口带宽

在路由器上,大多数串行接口的默认带宽为1.544Mb/s

7、手动设置OSPF开销

使用bandwidth接口命令和ip ospf cost 接口命令可以达到相同的效果,为OSPF在确定最佳路由时提供一个精确的值

8、验证OSPF邻居

确认路由器与相邻路由器形成邻接关系

9、验证OSPF协议设置

10、验证OSPF进程信息

11、验证OSPF接口配置

第四节 OSPF协议中的多路访问网络

驱动问题

      • CSMA链路中的LSA泛洪过程与点对点链路中有什么不同,为什么?

        • 在CSMA链路中需要选举DR与BDR来主持泛洪

        • CSMA链路支持组播,导致过度泛洪,浪费资源

      • 如何减少多路访问链路中的LSA泛洪?

        • 通过选举DR与BDR来实现LSA泛洪的有效控制

1、多路访问网络的挑战

创建多个邻接关系——与多个路由器建立邻接关系会导致交换的LSA数量过多

LSA大规模泛洪——在OSPF初始化或发生变化时,链路状态路由器会在网络中放洪

公式用来计算所需的邻接数n(n-1)/2

2、DR/BDR

  • DR(designated router)是多路访问网络中管理邻接和LSA泛滥的一种解决方案

  • 在DR失败的情况下,选举BDR(backup designated router)

  • 所有其他非DR和非BDR路由器都成为DROTHERS。DROTHERS只与DR和BDR形成邻接关系

  • DROTHERS只通过组播地址224.0.0.6向DR和BDR发送LSA

  • DR使用组播地址224.0.0.5向其他所有路由器发送LSA,仅DR路由器泛洪LSA

  • DR/BDR仅在多址网络上需要进行选举

3、验证DR/BDR邻接

  • 多址网络中邻居的状态可以是

    • FULL/DR——路由器与DR邻居完全相邻

    • FULL/BDR——与BDR邻居完全相邻

    • FULL/DROTHERS——与非DR或BDR路由器完全相邻的DR或BDR路由器

    • 2-WAY/DROTHER——非DR/BDR路由器与其他非DR/BDR路由器建立邻居关系

4、默认DR/BDR选举过程

  • 接口优先级高的路由器被选为DR,接口优先级次高的路由器被选为BDR

  • 优先级可以配置在0~255之间(0-router的优先级不能成为DR)

  • 如果接口优先级相等,则router ID最高的路由器被选为DR,router ID次高的路由器被选为BDR

  • 三种确定路由器ID的方法:

    • Router ID可手动配置

    • 如果不配置,则最高loopback IP 地址确定

    • 如果没有回环,则由最高的活跃IPv4地址确定

5、DR/BDR选举过程

  • DR将保持DR,直到出现以下情况之一:

    • DR失败

    • DR上的OSPF进程故障或被停止

    • 多路访问接口故障或关闭

  • 如果DR失败,BDR自动提升到DR

    • 重新进行BDR选举。优先级高或路由器ID高的DROTHER被选举为新的BDR

6、OSPF的优先级

  • 与其在所有路由器上设置router ID,不如通过设置接口优先级来控制选举

    • 可以通过以下命令(接口命令)修改OSPF优先级:ip ospf priority value

  • 要开始另一个OSPF选举,可以使用以下方法之一:

    • 先关闭路由器接口,然后重新使能,从DR开始,再到BDR,再到所有其他路由器

    • 在所有路由器上使用clear ip ospf process命令清除OSPF进程

7、OSPF网络类型

  • 点对点:路由器使用组播动态发现邻居。没有DR/BDR选举。它是串行链路和点对点帧中继子接口的默认值

  • 广播:通过组播动态发现邻居。DR和BDR是选举产生的。它是以太网链路的默认值

  • 非广播:用于连接两个以上路由器但没有广播功能的网络。邻居需要静态配置,然后进行DR/BDR选举。它是所有物理接口和使用帧中继封装的多点子接口的默认值

  • 点对多点:OSPF将这种网络类型视为点对点链路的逻辑集合,即使所有接口都属于同一个IP子网。使用组播动态发现邻居,没有DR/BDR选举

  • 点对多点非广播:与点对多点类型具有相同特征的思科扩展,只是邻居不是动态发现的。邻居必须静态定义,并且单播用于通信

  • 环回:loopback接口的默认网络类型

第五节 单区域OSPF的高级配置

驱动问题

      • OSPF路由协议能不能支持默认路由的传播?

        • 可以支持

      • 如何实现OSPF路由协议的安全?

        • 在链路上或在区域内部署协议验证(明文或密文)

1、在OSPFv2中传播默认静态路由

用于传播静态路由的连接到Internet的路由器通常被称为边缘路由器、入口路由器或网关路由器。在OSPF网络中,也可以称为自治系统边界路由器(ASBR)。

2、验证传播的默认路由

3、OSPF Helloj间隔和Dead间隔

OSPF的Hello和Dead时间间隔必须匹配,否则不会发生邻居邻接关系

4、修改OSPF的间隔

修改OSPFv2的HEllo和Dead Interval

5、安全路由更新

  • 当路由器配置了邻居认证后,路由器接收到的路由更新报文都会对源进行认证。

  • 交换发送和接受路由都知道的验证密钥

  • OSPF支持三种认证方式:

    • Null不验证——无身份验证

    • 简单密码验证——更新中的密码以铭文形式通过网络发送(过时的方法)

    • MD5认证——最安全且推荐的认证方法。密码使用MD5算法计算

6、配置OSPF MD5认证

MD5认证可以是全局使能的,也可以是接口上的

为了在全局范围内启用OSPF MD5认证,需要配置:

ip ospf message-digest-key key md5 password (接口配置)

area area-id authentication message-digest (路由器配置)

为了使能基于接口的MD5认证,需要配置:

ip ospf message-digest-key key md5 password (接口配置)

ip ospf authentication message-digest(接口配置)

第六节 单区域OSPF的管理与排错

驱动问题

      • 影响OSPF邻接关系形成的要素有哪些?

        • 区域ID、验证方式、密码、计时器、网络类型

        • IP地址、路由器ID、Passive

      • OSPF中出现故障时,可以通过查看哪些状态信息来判断故障来源?

        • 路由协议进程、邻居关系、接口、路由表、链路状态数据库

1、形成OSPF邻接

OSPF邻接将不会形成以下情况:

  • 接口不在同一个网络中

  • OSPF网络类型不匹配

  • OSPF的Hello或Dead Timers不匹配

  • 错误地将接口到邻居配置为被动方式

  • OSPF网络命令缺失或错误

  • 身份验证是配置错误

2、通过OSPF状态转换

路由器不应该长时间停留在FULL或2Way之外的任何状态

3、OSPF故障诊断命令

show ip protocols——验证重要的OSPF配置信息

show ip ospf——查看OSPF进程号和路由器ID

show ip ospf neighbor——验证路由器与相邻路由器是否形成邻接关系

show ip ospf interface——查看接口上配置的OSPF参数,如OSPF进程号

show ip route ospf——只显示路由表中学习到的OSPF路由

clear ip ospf [process-id] process——复位OSPFv2邻居的邻接关系

4、OSPF故障处理组件

  • 进行故障排除:

    • 接口是可操作的吗?

    • 接口是否能OSPF?

    • OSPF区域是否匹配?

    • 是否存在被配置为被动的接口?

  • 显示命令:

    • show ip ospf neighbors

    • show ip interface brief

    • show ip ospf interface

5、邻居的故障诊断问题

使用show ip ospf interface命令查看已激活的OSPF接口

使用show ip protocols命令验证OSPF设置

使用no passive-interface去使能接口为被动接口

6、处理OSPF路由表问题

show ip protocols命令来验证OSPF中发布的网络

接口要使能OSPF,必须在OSPF路由进程下配置匹配的network命令

第七节 多区域OSPF的工作原理

驱动问题

      • 多区域OSPF为什么扩展性比单区域更强

        • 隔离区域,以减小链路状态数据库的规模

      • 多区域OSPF中,哪些类型的LSA是单区域OSPF中不存在的?

        • 3,4,5,7型

      • 多区域OSPF中,路由的类型有哪些?

        • 区域内路由 O

        • 区域间路由 O IA

        • 外部路由     O E / O N

1、检查单独的区域OSPF

如果一个区域变得太大,必须解决以下问题:

路由表过大(默认没有摘要)

链路状态数据库过大(LSDB)

频繁的SPF算法计算

2、互连OSPF

多区域OSPF要求网络设计的层次化,主区域称为骨干区域(area 0),其他所有区域都必须与骨干区域相连

2、OSPF两层区域结构

  • 骨干区域(交通)

    • 区域,其主要功能是IP报文的快速有效的移动

    • 与其他OSPF区域类型互通

    • 称为区域0,所有其他区域都直接连接到该区域

  • 常规(非骨干)区域

    • 连接用户和资源

    • 常规区域内不允许来自另一个区域的交通使用其链接到达其他区域

3、OSPF LSA类型

LSA是OSPF的LSDB的组成部分

目前OSPF的RFCs指定多达11种不同的LSA类型

但是,任何实现多区域OSPF都必须支持前5个LSA

LSA类型

描述 

1

路由器LSA

2

网络LSA

3和4

汇总LSA

5

作为Extemal LSA

6

多播OSPF LSA

7

为NSSAs定义

8

外部属性BGP的LSA

9、10、11

不透明的LSAs

  • OSPF LSA 类型1

类型1LSA包括直连网络前缀和链路类型的列表

所有路由器都会产生类型1的LSA

1型LSA只在区域内扩散,不会在ABR之外传播。1型的link-state ID由发起路由器的router ID标识

  • OSPF LSA 2型

2型LSA用来标识多址链路的路由器和网络地址

只有DR才会产生2型LSA

2型LSA在多路访问网络内扩散,不超出ABR范围

2型LSA的链路状态ID由DR路由器ID标识

  • OSPF LSA 3型

3型LSA描述1型LSA学习到的网络地址

每个子网都需要有一个3型LSA

ABR将3型LSA发送到其他区域,由其他ABR重新生成

3型LSA链路状态ID由网络地址标识

默认情况下,不对路由进行聚合

  • OSPF LSA 4型

4型LSA用于向其他区域发送ASBR,ASBR提供路由

ABR产生4型LSA

4型LSA由原始ABR生成,由其他ABR重新生成

4型LSA的链路状态ID由ASBR的router ID标识

  • OSPF LSA 5型

5型LSA用于通告外部(非OSPF)网络地址

ASBR会产生5型LSA

5型LSA在整个区域内扩散,并由其他ABR重新生成

5型LSA链路状态ID是外部网络地址

默认情况下,不对路由进行聚合

4、OSPF路由表项

O——路由器和网络LSA用来描述区域内的详细信息(区域内路由)

O IA——汇总LSA在路由表中显示为IA(区域间路由)

O E1或E2——外部LSA外部的E1或E2路由(外部路由)

O N1或O N2——NSSA LSAs 类型1或类型2路由器

5、OSPF路由计算

所有路由器都在各自的区域内(intra-area)或1型和2型内计算到达目的地的最佳路径

所有路由器都计算到internetwork(inter-area)或3型、4型LSA内其他区域的最佳路径

所有路由器都会计算到外部自治系统目的地的最佳路径(5/7型LSA)。这些都标有O E1/N1或O E2/N2路由指示器

第八节 多区域OSPF的配置与排错

驱动问题

      • 多区域OSPF中区域之间的边界在哪里?

        • 在边界路由器上

      • 多区域OSPF支持什么样的路由汇总?

        • 区域间路由汇总

        • 外部路由汇总

1、区域间路由汇总

发生在ABR上,适用于每个区域的路由

2、外部路由汇总

特定于通过路由重新分配注入OSPF的外部路由;ASBR负责外部路由的汇总

3、OSPF根区域

根区域和完全根区域的部署是为了减少OSPF数据库和路由表的大小:

根区域:不接受自治系统外部的路由信息。它使用一条默认路由(0.0.0.0)到达自治系统外部网络。根区域不接受外部路由

完全末接区域:这种思科专有区域类型不接受外部自治系统路由或内部其他区域到自治系统的摘要路由

4、完全根区域参考网络

area stub router configuration mode 命令用来将一个区域定义为除ABR以外的根区域

根区域内的每个ABR都必须配置area stub nosummary命令

5、其他末接区域类型

NSSA是对现有根区域特性的扩展,允许向根区域注入外部路由

area nssa命令用来定义nssa区域内的每个路由器,area nssa no-summary命令用来定义ABR为totally not-stubby

6、验证多区域OSPF

对于单区域OSPF,可以使用相同的验证命令

多区域OSPF:

show ip protocols

show ip route ospf

show ip ospf neighbor

show ip ospf

show ip ospf interface

show ip ospf interface brief

多区域信息相关命令包括:

show ip ospf database

第九节 IPv6中的OSPFv3

驱动问题

      • OSPFv2与OSPFv3之间的主要共同点有哪些?

        • 消息类型与泛洪机制

        • 开销的计算方法

        • 路由算法

        • DR/BDR机制

        • 路由ID的格式

      • OSPFv2与OSPFv3之间的主要差异有哪些?

        • 发送消息的源地址与目的地址

        • 消息的安全机制

1、OSPFv3协议和OSPFv2协议的相似之处

2、OSPFv2与OSPFv3的不同之处

3、IPv6链路本地地址

除非手动配置,否则路由器使用FE80::/10 prefix和EUI-64进程来创建链路本地地址,这使得识别和记忆这些地址变得困难

链路本地地址可以通过与创建IPv6全球单播地址相同的接口命令手动配置,但必须在IPv6address命令后面加上link-local关键字

4、OSPFv3路由器ID

OSPFv3在接口上启动OSPF协议之前,需要分配一个32位的路由器ID

router-ID rid命令用来在OSPFv3中分配路由器ID

清除OSPF进程是使用clear ipv6 ospf process privileged EXEC mode命令重置router ID的首选方式

5、配置OSPFv3的步骤

  • 使IPv6单一传播的路由途径:ipv6 unicast-routing

  • (可选)配置链路本地地址

  • 在OSPFv3路由配置模式下,使用router ID rid命令配置32位router ID

  • 配置可选的路由细节,比如调整参考带宽

  • (可选)配置OSPFv3接口的具体配置

  • 使用IPv6 ospf area命令打开IPv6路由

6、验证单区域OSPFv3

  • 验证OSPFv3邻居

    • 使用show ip ipv6 ospf neighbor命令查看路由器与相邻路由器是否形成了邻接关系

  • 验证OSPFv3协议配置

    • show ipv6 protocols命令是验证OSPFv3重要配置信息的快捷方式

  • 验证OSPFv3接口

    • 查询和查看使能了OSPFv3协议的接口的概要信息,使用show ipv6 ospf interface brief命令

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值