当前位置: 代码迷 >> 综合 >> 【HCIE备考笔记】【04-OSPF】OSPFv3重点难点整理
  详细解决方案

【HCIE备考笔记】【04-OSPF】OSPFv3重点难点整理

热度:49   发布时间:2024-02-01 12:10:23.0

本文主要针对HCIE考试对各种技术做一轮复习。
建议读者已经具备其他厂商IE认证,或者具备良好网络基础知识。
本文仅整理重点难点和容易踩坑的知识,对于基础知识一概不整理。

OSPFv3属于向下一代IPv6演进时的技术,日常工作中估计目前接触v3的同学不多。
说实话,OSPFv3的全部知识,一篇文章是写不完了。本文主要结合与OSPFv2的对比,使大家尽可能的理解OSPFv3。

目录

  • 一、协议介绍
    • 1、工作机制
    • 2、IPV6对OSPFv3的影响
    • 3、OSPFv3和OSPFv2相同点
  • 二、OSPFv3和OSPFv2的不同点
    • 1、基于链路的运行
    • 2、使用链路本地地址
      • 如何获取邻居的链路本地地址
      • OSPFv3路由计算过程
    • 3、链路支持多实例复用
    • 4、通过 Router ID 唯一标识邻居
    • 5、认证的变化
    • 6、Stub 区域的支持
    • 7、报文的不同
      • 7.1、OSPF报头变化
      • 7.2、Hello报头变化
      • 7.3、LSA头部变化
      • 7.4 LinkState ID字段值含义变化
    • 8、Option 字段的不同
    • 9、LSA 的类型和内容不同
      • 9.1、前缀表示方法的变化:Prefix Option 字段
      • 9.2、Router LSA(2001)的变化
      • 9.3、Network LSA(2002)的变化
      • 9.4、新增Link-LSA(0008)
      • 9.5、Intra-Area-Prefix-LSA(2003)的变化
      • 9.6、Inter-Area-Router-LSA(2004)的变化
      • 9.7、AS-External-LSA(4005)的变化

一、协议介绍

1、工作机制

  • 与OSPFv2相比, OSPFv3在工作机制上与OSPFv2基本相同;但为了支持IPv6地址格式, OSPFv3对OSPFv2做了一些改动。
  • OSPFv3基于OSPFv2基本原理并增强,是一个独立的路由协议。
  • 协议号仍然是89,Router Id仍然是一个32位的无符号整数。

2、IPV6对OSPFv3的影响

在这里插入图片描述

3、OSPFv3和OSPFv2相同点

  • 网络类型和接口类型。
  • 接口状态机和邻居状态机。
  • 链路状态数据库(LSDB)。
  • 洪泛机制(Flooding mechanism)。
  • 五种协议报文: Hello, DD, LSR, LSU, LSAck。
  • 路由计算基本相同。

二、OSPFv3和OSPFv2的不同点

重点,重点,重点!!!!!

  • 1、基于链路的运行
  • 2、使用链路本地地址
  • 3、链路支持多实例复用
  • 4、通过 Router ID 唯一标识邻居
  • 5、认证的变化
  • 6、Stub 区域的支持
  • 7、报文的不同
  • 8、Option 字段的不同
  • 9、LSA 的类型和内容不同

下面,我们来一条一条的说

1、基于链路的运行

V3最重要的变化为使用IPv6 LinkLocal地址进行通信。链路两端接口无所谓在同一个子网,甚至也没必要具备IPv6 GUA地址。

  • IPv6中重点强调了一个“链路(link)”的概念,在IPv6中,一个链路上可以分配多个IP子网,也就是IPv6前缀。和IPv4中不同的是,同一个链路上的两个节点即使不具有相同的IPv6前缀,也可以直接通过这个链路通信。这一点极大地改变了OSPF的行为。
  • OSPFv3是基于链路运行的,而不是以前的基于IP子网的运行。在OSPFv3中我们更多的是使用“链路”和“前缀”这两个术语。但这两个概念是分离的,没有必然的对应关系。同一链路上的两个节点不必具有相同的前缀。所以在讨论路由协议时,OSPFv2的术语“网络”和“子网”在这里应该用“链路”替换掉。同样,一个OSPF接口现在是连接到一个链路上,而不再是一个IP子网上了。OSPF协议分组的接收以及Hello分组和LSA的格式也因此做出了相应的修改。
  • 在这里插入图片描述

2、使用链路本地地址

  • OSPFv3的路由器使用链路本地地址作为发送报文的源地址。
  • 在虚连接上, 必须使用全球范围地址或者站点本地地址作为OSPFv3协议报文的源地址。
  • 由于链路本地地址只在本链路上有意义且只能在本链路上泛洪,因此链路本地地址只能出现在Link LSA中。
  • 一个路由器可以学习到这个链路上相连的所有其它路由器的链路本地地址,并使用这些链路本地地址作为下一跳来转发报文。
  • IPv6在RFC2373中定义了链路本地(link-local)地址用于一个单一链路上,其目的是完成邻居发现(neighbor discovery)和自动配置(auto-configuration)等功能。IPv6路由器不转发源地址为link-local类型的分组。Link-local单播地址范围为IPv6地址范围FE80/10。

妈的,知道这么多字看了也头疼,来我们截图看看。

如何获取邻居的链路本地地址

下图中,OSPF可以通过LSA1 2获取邻居与自己互联的接口ID,再通过LSA 8获取接口ID与FE80链路本地地址的对应关系。
在这里插入图片描述
通过dis ospfv3 int g x/x/x查看ospfv3下对接口的详细使用情况,包括随机生成的接口ID
建立邻居关系后,即可看到邻居的FE80链路本地地址
在这里插入图片描述
路由表下一条,同样也是FE80链路本地地址
在这里插入图片描述

OSPFv3路由计算过程

LSA 1 2 计算拓扑
9类挂载叶子节点
8类关联FE80链路本地地址,确定下一条

3、链路支持多实例复用

OSPFv3支持在同一链路上运行多个实例,实现链路复用并节约成本 。
在这里插入图片描述

  • Router A、 Router B、 Router C和Router D连接到同一个广播网上,它们共享同一条链路且都能建立邻居关系,通过在Router A的Eth1/1、 Router B的Eth1/1、Router C的Eth1/2上指定实例1、在Router A的Eth1/1、 Router B的Eth1/1、 RouterD的Eth1/3上指定实例2,实现了Router A、 Router B和Router C可以建立邻居关系, Router A、 Router B和Router D可以建立邻居关系。
  • 这是通过在OSPFv3报文头中添加Instance ID字段来实现的。如果接口配置的Instance ID与接收的OSPF v3报文的Instance ID不匹配,则丢弃该报文,从而无法建立起邻居关系。

举例说明:
下图中,通过控制R2和R4之间的多实例关系,是R1和R4之间互相学习路由,R5和R6之间互相学习。两组之间通过实例隔离开来。
在这里插入图片描述

4、通过 Router ID 唯一标识邻居

在OSPFv2中,当网络类型为点到点或者通过虚连接与邻居相连时,通过Router ID来标识邻居路由器,当网络类型为广播或NBMA时,通过邻居接口的IP地址来标识邻居路由器。
OSPFv3取消了这种复杂性,无论对于何种网络类型,都是通过Router ID来唯一标识邻居。
在这里插入图片描述

5、认证的变化

OSPFv3报文头中不再包含AuType和Authentication,而一般依赖IPv6的扩展验证头。
校验和(Checksum)变化:
OSPFv3使用IPv6标准的CheckSum。

6、Stub 区域的支持

由于OSPFv3支持对未知类型LSA的泛洪,为防止大量未知类型LSA泛洪进入Stub区域,对于向Stub区泛洪的未知类型LSA进行了明确规定, 只有当未知类型LSA的泛洪范围是区域或链路而且U比特没有置位时,未知类型LSA才可以向Stub区域泛洪。
这里特别说明一下,OSPFv3的LSA类型字段采用16bit表示,格式如下:
在这里插入图片描述
其中表示了U位,和S1 S2位。关于S1和S2位可以明确的表示LSA的泛洪范围。
在这里插入图片描述
因此,举例说明LSA 1的LS Type字段为0x2001。二进制表示为0010,0000,0000,0001
其中S1=0,S2=1。因此LSA 1的泛洪范围为区域内泛洪。

7、报文的不同

7.1、OSPF报头变化

明显注意,v3比v2直接去掉了认证字段,改用IPv6扩展报头认证
在这里插入图片描述

7.2、Hello报头变化

在这里插入图片描述

7.3、LSA头部变化

注意,这里又涉及到了刚才U位,和S1 S2位。以及S1和S2位如何表示LSA的泛洪范围的问题。
在这里插入图片描述
U-bit: 指示路由器如何处理无法识别的LSA。

U-bit 处理方式
0 当作Link-local范围的LSA处理
1 存储并洪泛该LSA

S2/S1,共同标识 LSA 的泛洪范围。

S2 S1 洪泛(Flooding)范围
0 0 Link-Local范围
0 1 Area范围
1 0 AS范围
1 1 保留
  • 在OSPFv2中,收到类型未知的LSA将直接丢弃。
  • OSPFv3在LSA的LS Type字段中增加了一个U比特位来位标识对未知类型LSA的处理方式:
    • 如果 U 比特置 1,则对于未知类型的 LSA 按照 LSA 中的 LS Type 字段描述的泛洪范围进行泛洪;
    • 如果 U 比特置 0,对于未知类型的 LSA 仅在链路范围内泛洪。
  • LSA的泛洪范围已经被明确地定义在LSA的LS Type字段,目前,有三种LSA泛洪范围。
    • 链路本地范围(Link-local Scope)。
      • LSA 只在本地链路上泛洪,不会超出这个范围, Link-LSA(新增)。
    • 区域范围(Area Scope)。
      • Router-LSA, Network-LSA, Inter-Area-Prefix-LSA, Inter-Area-Router-LSA, Intra-Area-Prefix-LSA(新增)都是区域范围泛洪的 LSA。
    • 自治系统范围(AS Scope)。
      • LSA 将被泛洪到整个路由域,AS-External-LSA。

LSA功能编码:
在这里插入图片描述

7.4 LinkState ID字段值含义变化

v3中LinkStateID占4字节。不再包含地址信息,对于不同的LSA类型,该字段的含义如下表,同时提供与OSPFv2中含义的对比。
在这里插入图片描述

8、Option 字段的不同

看看就好,考试不考
在这里插入图片描述

  • 在OSPFv2中, Option字段出现在每一个Hello报文、 DD报文以及每一个LSA中。
  • 在 OSPFv3中, Option字段只在 Hello报文、 DD报文、 Router LSA、 NetworkLSA、 Inter Area Router LSA以及Link LSA中出现。
  • 从上图可以看出,与OSPFv2相比, OSPFv3的Option字段增加了R比特、 V比特。
    • R 比特:用来标识设备是否是具备转发能力的路由器。如果 R 比特置 0,宣告该节点的路由信息将不会参加路由计算,如果当前设备是一个不想转发非本地地址的报文,可以将 R 比特置 0。
    • V6 比特:如果 V6 比特置 0,该路由器或链路也不会参加IPv6路由计算。
    • E: 如果为0,不支持AS-External-LSA洪泛;
    • MC: 与多播相关;
    • N: 是否在NSSA (Not So Stub Area)区域;
    • DC: 是否支持按需拨号。
  • Options字段的各位的匹配情况会产生不同影响:
    • 阻止邻居的建立,例如Hello报文中的选项不匹配。
    • 阻止LSA的洪泛,例如E-Bit,如果为0,不洪泛AS-External-LSA。
    • 阻止LSA参加路由计算,例如V6-Bit,如果为0,该Router不参加IPv6路由计算。
    • Options字段使OSPF路由器能支持可选的能力,并且与其它路由器互相通告其能力。通过这种机制,具有不同能力的路由器可以在一个OSPF路由域中混合工作。

9、LSA 的类型和内容不同

在这里插入图片描述
在这里插入图片描述

9.1、前缀表示方法的变化:Prefix Option 字段

在这里插入图片描述

9.2、Router LSA(2001)的变化

在这里插入图片描述
在这里插入图片描述
Router LSA链接(Link)类型
在这里插入图片描述
在这里插入图片描述

9.3、Network LSA(2002)的变化

未完待续!

9.4、新增Link-LSA(0008)

9.5、Intra-Area-Prefix-LSA(2003)的变化

9.6、Inter-Area-Router-LSA(2004)的变化

9.7、AS-External-LSA(4005)的变化