Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
本页内容
 

示例:在 IS-IS 网络中配置 SRv6 网络编程

此示例说明如何在 IS-IS 网络中配置 SRv6 网络编程。此功能对于网络以 IPv6 为主且尚未部署 MPLS 的服务提供商很有用。此类网络仅依靠 IPv6 报头和报头扩展名来传输数据。SRv6 网络编程提供了利用分段路由的灵活性,无需部署 MPLS。

要求

此示例使用以下硬件和软件组件:

  • 8 个 MX 系列路由器,带 MPC7E、MPC8E 或 MPC9E 线卡

  • Junos OS 20.3R1 或更高版本

概述

您可以在核心 IPv6 网络中配置不使用 MPLS 的 SRv6。此功能有利于需要通过尚不具备分段路由功能的中转路由器部署 SR 流量的网络。

拓扑结构

图 1 中,路由器 R0 和路由器 R7 是入口和出口路由器,仅支持 IPv4 设备 CE1 和 CE2。路由器 R1、R2、R3、R4、R5 和 R6 构成仅支持 IPv6 的提供商核心网络。所有路由器都属于同一个自治系统。IS-IS 是 IPv6 核心中的内部网关协议,配置为支持 SRv6。在此示例中,路由器 R2 被配置为 IPv6 路由反射器,IBGP 会话与 R0 和 R7 都对等。在此示例中,没有其他路由器使用 BGP。

注意:

为了更好地演示 SRv6 隧道,此示例基于纯 IPv6 提供商核心。SRv6 由同时部署 IPv6 和 IPv4 的双堆栈核心提供支持。

支持 IPv4 设备的边缘路由器需要使用 IPv6 隧道封装传输 IPv4 流量。封装隧道派生自在支持 SRv6 的路由器上配置的 SRv6 SID。IS-IS 协议处理这些 SRv6 SID,并使用可用隧道端点的下一跃点地址更新 inet6.3 表。通过 BGP 获知 IPv4 路由时,路由器会尝试通过 inet6.3 表解析关联的下一跃点。找到匹配条目后,结果是自动建立一条 IPv6 隧道,通告 BGP 路由的端点。

在此示例中,R0 和 R7 路由器都使用 BGP 播发其连接的 IPv4 子网。这会导致边缘路由器之间建立 IPv6 隧道。隧道用于通过 IPv6 提供商核心传输 IPv4 流量。在出口时,边缘路由器对外部 IPv6 报头进行解封装,并执行 IPv4 路由查找,以便将数据包转发到其目标。

图 1:IS-IS Network topology diagram for IPv6 within Autonomous System 65550 showing routers R0 to R7 in V6 Core connected via interfaces with IPv6 prefix 2001:db8. Includes loopback addresses, edge devices CE1 and CE2 with IPv4 addresses 172.16.10.0/24, and labeled connections for communication. 中的 SRv6 网络编程

配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层次结构级别的 [edit] CLI 中,然后从配置模式进入 commit。

路由器 R0

路由器 R1

路由器 R2

路由器 R3

路由器 R4

路由器 R5

路由器 R6

路由器 R7

配置路由器 R0

下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅 《CLI 用户指南》中的在配置模式下使用 CLI 编辑器

要配置 SRv6 网络编程以支持 IPv6 核心上的 IPv4 隧道,请在 R0 路由器上执行以下步骤:

分步程序

  1. 配置设备接口以启用 IP 传输。

  2. 使用用作 BGP 会话的路由器 ID 的 IPv4 和 IPv6 地址配置环路接口。

  3. 配置路由器 ID 和自治系统 (AS) 编号,以便在属于同一 AS 的一组路由设备内传播路由信息 AS。

  4. 全局启用 SRv6 和定位器地址以指示路由器的 SRv6 功能。SRv6 SID 是一个 IPv6 地址,由定位器和函数组成。路由协议播发定位器地址。

  5. 为前缀分段配置 End-SID 功能。指定类型,即根据网络要求的 End-SID 函数的行为。倒数第二个分段流行 (PSP)、终极分段流行 (USP) 和终极分段解封装 (USP) 是 SRv6 函数的三种可用类型。

    注意:

    确保定位器和 End-SID 位于同一子网中,以避免提交错误。

  6. 在邻接分段的点对点 (P2P) 接口上配置 End-X-SID 功能。为 End-X-SID 指定一个或多个类型。

    注意:

    确保定位器和 End-X-SID 位于同一子网中,以避免提交错误。在将定位符映射到接口之前,必须在 启用 SRv6 并配置定位器 [edit routing-options]

    每当配置 还 srv6-adjacency-segment 必须在 protocols isis source-packet-routing srv6 locator 层次结构下配置相关定位器,如步骤 5 中所示。
  7. 为 LAN 接口 xe-0/0/0:2.0 的邻接分段配置 SRv6 选项。根据您的网络要求指定类型。倒数第二个分段弹出 (PSP)、终极分段弹出 (USP) 和终极分段解封装 (USP) 是 SRv6 邻接分段的三种可用选项。

    注意:

    确保定位器和 End-X-SID 位于同一子网中,以避免提交错误。在将定位符映射到接口之前,必须在 启用 SRv6 并配置定位器 [edit routing-options]

  8. 在面向核心的接口上配置 BGP,以建立内部对等会话。

  9. 定义策略以对数据包进行负载平衡。

  10. 应用按数据包的策略以启用流量的负载平衡。

结果

在配置模式下,输入 show interfacesshow protocolsshow policy-optionsshow routing-options 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

完成设备配置后,从配置模式进入。commit

验证

确认配置工作正常。

验证 IS-IS 邻接和 IBGP 会话

目的

验证 R2 处的 IS-IS 邻接和 IBGP 会话。之所以选择 R2 执行此任务,是因为它有 5 个邻接,还可用作 BGP 控制平面的路由器反射器。

注意:

在继续其余验证步骤之前,最好先确认所有路由器上的 IS-IS 邻接。成功的 SRv6 部署要求内部网关协议在所有节点上都正常运行。

行动

在操作模式下,对路由器 R2 运行 show isis adjacency 命令。

在操作模式下,对路由器 R2 运行 show bgp summary 命令。

意义

输出确认了 R2 路由器的预期 IS-IS 邻接计数。它还确认 R2 已与 R0 和 R7 路由器建立基于 IPv6 的 BGP 会话。

验证 SRv6 是否已启用

目的

验证是否在路由器 R0 上启用了定位器、终端 SID 和风格 SRv6。

行动

在操作模式下,对路由器 R0 运行 show isis overview 命令。

意义

配置的 SRv6 定位符 SRv6: Enabled Locator: 2001:db8:0:a0::/64, Algorithm: 0 和 、 End-SID 和 flavor END-SID: 2001:db8:0:a0:d01::, Flavor: USD 将显示在输出中。

验证 SRv6 End-X-SID 配置

目的

验证是否在 R0 上配置了 End-X-SID 功能和类型。

行动

在操作模式下,对路由器 R0 运行 show isis adjacency detail 命令。

意义

该字段 SRv6 protected END-X-SID: 2001:db8:0:a0:1a01:: 表示,已在路由器 R0 上为用于连接到 R1 的接口配置 End-X-SID 功能 Flavor PSP 。对于连接到使用不同 End-X-SID 的 R4 的接口,已确认输出类似。

验证定位器路由是否安装

目的

验证定位器路由是否已安装。

行动

在操作模式下,对路由器 R0 运行 show route 2001:db8:0:a0::/64 detail 命令。

意义

输出确认定位器路由 2001:db8:0:a0::/64*[IS-IS/18] 已安装在表中 inet6.0

验证端 X-SID 路由是否已安装

目的

显示接口上应用的已配置端 X-SID 路由信息。

行动

在操作模式下,对路由器 R0 运行 show route 2001:db8:0:a0:1a01:: 命令。

意义

输出确认 End-X-SID 路由 2001:db8:0:a0::1a01/128 已安装在路由表中 inet.6.0

验证终端 SID 路由是否已安装

目的

验证路由器 R0 的表中 inet6.3 是否安装了 SRv6 域中所有路由器的终端 SID 路由。

行动

在操作模式下,对路由器 R0 运行 show route table inet6.3 protocol isis 命令,以查看路由器已学习的所有终端 SID。然后显示有关与 R7 路由器关联的终端 SID 的详细信息。

意义

输出确认路由器 R0 已从拓扑中的所有其他路由器中学习了终端 SID,即 2001:db8:0:a1::d11/1282001:db8:0:a2::d21/128。请注意,表中 inet6.3 已安装 End-SID。R7 2001:db8:0:a7:d71:: 播发的终端 SID 的详细输出确认路由器 R0 和路由器 R7 之间已建立 SRv6 隧道。

请注意,分段列表将使用路由器 R7 上配置的 End-SID 值填充。回想一下,此示例中的所有终端 SID 都配置了终极分段解封装 (USD) 类型。它是本地 End-SID 和相关 USD 类型的组合,告诉 R7 它是 IPv6 隧道的出口。收到后,R7 对 IPv4 数据包进行解封装,并根据 IPv4 目标地址进行路由。

验证 IS-IS 数据库中的 SRv6 配置

目的

显示 IS-IS 数据库,以验证路由器 R7 上配置的 End-SID 和类型。在此示例中,命令在路由器 R0 上执行。由于 IS-IS 数据库已复制到所有节点,因此所有路由器上的输出都应类似。

行动

在操作模式下,对路由器 R0 运行 show isis database R7.00-00 extensive 命令。

意义

with Flavor: USDSRv6 SID: 2001:db8:0:a7:d71::存在确认 R7 路由器上启用了 SRv6 并具有 SID 解封装类型。输出还显示,R7 的接口已使用 PSP 配置为支持 TI-LFA 保护。

验证到 CE2 的路由是否使用 SRv6 隧道

目的

显示到 R7 处 IPv4 子网的路由,以确认下一跃点指向 SRv6 隧道。

行动

在操作模式下,对路由器 R0 运行 show route 172.16.20.0/24 命令。

意义

输出确认 R0 已通过其到 R2 的 BGP 会话获知了到子网的 172.16.20.0/24 路由,在此示例中,R2 的调用配置为路由反射器。下一跃点确认已为此路由安装了通往 R7 路由器的 SRv6 隧道。两个下一跃点可用,以符合示例拓扑中 R0 和 R7 路由器之间的两条等价路径。

测试 CE1 和 CE2 之间的 IPv4 连接

目的

生成 ping 以验证通过 IPv6 提供商核心在客户边缘设备之间的 IPv4 连接。

行动

在操作模式下,对路由器 R0 运行 ping 172.16.20.2 source 172.16.10.2 count 2 命令。

意义

输出确认 IPv4 连接在客户边缘设备网络之间正常工作。在此示例中,这验证了通过 IPv6 提供商核心的 SRv6 隧道是否工作正常。