OSPFv3 IPv6动态路由协议

本文首先阐明有关OSPF版本3(OSPFv3)的一些概念和理论细节。在对理论进行了简短的讨论之后,本文的第二部分将引导您完成配置,该 配置与IPv4的等效OSPFv2配置既不同又简单 。

OSPF版本

首先,当大多数工程师提到“ OSPF”时,他们很可能会提到与IPv4一起使用的OSPF,尤其是OSPF版本2(OSPFv2)。曾经有一个OSPF版本1,但随后很快出现了OSPF版本2(OSPFv2)。接下来,考虑一下1990年代初至中期的原始IPv6协议的开发。除了IPv6本身,还需要更新许多其他协议以使IPv6起作用:ICMP,TCP,UDP等,包括OSPF。

有趣的是,OSPFv3支持发布IPv6路由,但不支持IPv4路由。因此,OSPFv3不会尝试将IPv6支持添加到预先存在的OSPFv2中。尽管协议具有许多相似之处,但可以将OSPFv2和OSPFv3视为不同的路由协议:一种用于IPv4路由(OSPFv2),一种用于IPv6路由(OSPFv3)。由于OSPFv3仅发布IPv6路由,因此仅发布IPv6路由,因此,使用双栈策略的企业网络实际上需要同时运行OSPFv2和OSPFv3。

OSPFv2和OSPFv3的比较

OSPFv3的行为与OSPFv2非常相似。例如,两者都使用链接状态逻辑,并且都使用相同的度量。下表列出了许多相似之处:

  • 两者都是链路状态协议。
  • 两者都使用相同的区域设计概念和设计术语。
  • 两者都要求在接口上启用路由协议。
  • 一旦在接口上启用,两个都将尝试发现连接到与接口相连的数据链路的邻居。
  • 它们都在路由器将与另一台路由器成为邻居之前执行某些设置的检查(OSPFv2和OSPFv3之间的检查列表略有不同)。
  • 在两个路由器成为邻居之后,OSPFv2和OSPFv3都通过在两个邻居之间交换其链路状态数据库(LSDB)的内容(描述网络拓扑的链路状态通告(LSA))来进行。
  • 在交换完所有LSA之后,OSPFv2和OSPFv3都使用最短路径优先(SPF)算法来计算到达每个子网的最佳路由。
  • 两者基于每个接口的接口成本使用相同的度量标准概念,并具有相同的默认成本值。
  • 两者都使用LSA来描述拓扑,但LSA的工作方式有所不同。

OSPFv3和旧版OSPFv2之间的最大区别在于内部和组态。OSPFv3更改了某些OSPF LSA的结构。另一个区别是,使用interface子命令而不是OSPFv2的network命令启用了OSPFv3 。这些差异将不在本文中解释。 下图显示了启用OSPFv2和OSPFv3的配置步骤。

OSPFv2配置
IPv4的OSPF
用于IPv6的OSPF

OSPFv3路由器ID(RID)

OSPFv3配置需要一些基本步骤:选择并配置进程ID,并在每个接口上启用该进程,同时为每个接口分配正确的OSPF区域。这些详细信息应在任何计划信息中列出。 

一个潜在的配置问题是OSPFv3路由器ID(RID)。

为了进行检查,OSPFv2使用32位RID,该ID是在OSPF进程初始化时选择的。就是说,
首先配置OSPF时,或者稍后重新加载路由器时,OSPFv2进程选择一个
数字作为其RID。选择OSPFv2进程时,使用此列表选择其RID,直到找到RID:

  1. 如果配置了router-id rid OSPF子命令,请使用此值,并忽略接口IPv4地址。
  2. 如果未使用router-id命令设置路由器ID,请检查所有配置了IPv4地址且接口状态为up的环回接口。在这些中,选择最高的数字IP地址。
  3. 如果前两项都不提供路由器ID,则路由器将从接口状态代码(第一个状态代码)为up的所有其他接口中选择最高数值的IPv4地址。换句话说,在选择接口的路由器ID时,OSPF将包括接口处于up / down状态。

有趣的是,OSPFv3还使用32位RID,使用与OSPFv2完全相同的规则。该数字通常以点分十进制表示法(DDN)列出。也就是说,支持IPv6的OSPFv3具有看起来像IPv4地址的路由器ID。

对OSPFv3使用与OSPFv2相同的RID选择规则会带来一个不幸的潜在错误配置:未使用OSPFv3 router-id命令且未配置任何IPv4地址的路由器无法选择RID。 

如果OSPFv3进程没有RID,则该进程将无法正常工作,形成邻居关系或交换路由。这个问题很容易解决。配置OSPFv3时,如果路由器没有任何IPv4地址,请确保使用router-id router子命令配置RID。

验证OSPFv3的状态和路由

要验证OSPFv3是否有效,可以采用两种不同的方法。您可以从末尾开始,查看OSPFv3添加的IPv6路由。如果正确的路由显示在正确的路由器的路由表中,则OSPFv3必须正常工作。或者,您可以按照OSPF用于构建路由的相同顺序进行操作:首先确认配置设置,然后查看OSPF邻居,然后查看OSPF数据库,最后查看添加到路由表的OSPF路由。

当速度很重要时,请先查看路由表。但是,为了学习起见,它会通过各种OSPFv3 show命令从头到尾逐步执行各个步骤。本节的其余部分将按以下顺序通过几个OSPFv3 show命令工作:

  • 验证配置设置(OSPFv3进程和接口)
  • 验证OSPFv3邻居
  • 验证OSPFv3链路状态数据库(LSDB)和LSA
  • 验证OSPFv3路由

本节恰好提到了各种OSPFv3 show命令,它们具有匹配的和类似的OSPFv2 show命令。下表列出了这些show命令,以便于参考和学习。

OSPFv2和OSPFv3 show命令

验证OSPFv3邻居

验证OSPFv3邻居需要简要查看一个命令:show ipv6 ospf neighbor。此命令列出每个邻居一行,列出有关该邻居的关键事实。特别是,它列出了邻居的RID,通过其到达该邻居的本地路由器的接口以及邻居关系的状态。

下图显示R1具有两个串行链路,每个链路分别指向路由器R2和R3,因此R1将与这些路由器中的每一个形成邻居关系。R2和R3都通过LAN连接到相同的IPv6子网,并将在该LAN上形成邻居关系。

OSPFv3邻居

以下示例显示了路由器R1和R2上的OSPFv3邻居关系。突出显示的部分指出了基本知识,以及邻近路由器的RID,本地接口和状态。“ FULL”状态表示邻居关系正在运行,并且邻居已“完全”完成了LSA的交换。


检查OSPFv3学习到的IPv6路由

最后,OSPFv3是否有效的真正证据是路由器是否学习了IPv6路由并将其添加到IPv6路由表中。本节通过查看OSPFv3添加的IPv6路由来完成验证过程。

请注意,与OSPFv2相比,最大的不同是OSPFv3学习的路由使用本地链路的下一跳地址。例如,在下图所示的网络中,R2使用R1的链接本地地址作为下一跳地址(2001:DB8:1111:1 :: / 64)。

OSPFv3和链接本地地址

下面的示例列出了路由器R2上show ipv6 route ospf命令的输出,用于上图中突出显示的路由。

OSPFv3学习路由
  • 代码字母“ O”表示“ OSPF”
  • 在方括号110中,是OSPF的管理距离,在65中,是此路由的度量。
  • 该路由同时列出了本地链接地址和传出接口。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁