Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

数据包转换和 GRE 隧道

数据包转换和 GRE 隧道概述

MX 路由器作为企业边缘路由器部署时,构成公共云计算平台的一部分。企业边缘路由器将从客户 VPN 接收的 IPv4 流量通过隧道传输到路由网关节点。路由网关执行 IPv4 到 IPv6 的转换,并将转换后的数据包发送到平台即服务 (PaaS) 服务器。PaaS 是云中的完整开发和部署环境,其资源使企业能够交付从简单的基于云的应用程序到复杂的、支持云的企业应用程序的各种应用程序。

从 Junos OS 21.2R1 版开始,作为升级 PaaS 服务客户网络的一部分,我们支持增强您的企业边缘路由器(MX 路由器)。您可以将边缘路由器配置为通过 JET API 启用转换数据包的转换(IPv4 到 IPv6 和 IPv6 到 IPv4)和 GRE 隧道。边缘路由器现在提供对以平台即服务 (PaaS) 形式提供的专用链接服务的访问,绕过数据中心网关。

有关准备网关设备以与 JET API 交互的完整信息,请参阅 JET API 指南

企业边缘路由器进行数据包转换和 GRE 隧道的优势

  • 绕过数据中心网关
  • 关于封装和解封装的非对称隧道
  • 解耦转换和隧道封装允许客户将来以最少的软件更改选择不同的封装,还可以单独探测转发路径

封装过程(边缘路由器到 PaaS 服务器)

图 1 说明了从边缘路由器到 PaaS 服务器的数据包流。

图 1:封装流(边缘路由器到 PaaS 服务器) Encapsulation Flow (Edge Router to PaaS Server)

根据控制器通过 PRPD API 为每个目标 IPv4 前缀定义的转换规则,将 IPv4 数据包转换为 IPv6(IPv4 标头替换为新的 IPv6 标头)。将使用 IPv4 目标查找客户 VRF inet 表以进行转换。

GRE 隧道封装配置文件由控制器通过 PRPD API 为转换后的 IPv6 数据包定义。将在客户 VRF inet6 表中查找转换后的 IPv6 目标以进行隧道封装。多个前缀可能使用相同的隧道。

GRE 隧道封装后,将在主实例 inet.0 表中查找外部 IP 隧道目标以进行下一跃点 L2 封装。.

以下各节将详细介绍该过程。

了解配置文件和配置文件的分离

边缘路由器根据转换配置文件中定义的参数转换数据包。参数包括转换类型(IPv4 到 IPv6 或 IPv6 到 IPv4)、算法类型、前缀和其他相关信息。

数据包根据隧道封装配置文件中定义的参数进行封装。

为了实现配置文件的解耦,数据控制器添加了两个单独的路由,用于转换和隧道封装:

  • IPv4 RouteAdd() 或 RouteUpdate() 对 VRF inet 表中的目标路由进行编程,并将操作转换为转换。
  • IPv6 RouteAdd() 或 RouteUpdate() 对 VRF inet6 表中转换后的 IPv6 路由进行编程,并将操作作为 GRE 封装(外部 IPv4 隧道标头和 GRE 标头)

了解转发路径

边缘路由器执行每个 IPv4 数据包三次路由查找。

  • VRF inet 表中的路由查找 — IPv4 报头将转换为 IPv6 报头。控制器添加 IPv4 路由。

  • VRF inet6 表中的路由查找 — 查找转换后的 IPv6 目标地址以获取隧道封装配置文件,该配置文件在内部 IPv6 标头之上添加 GRE 和隧道 IPv4 标头。控制器将添加 IPv6 路由。

  • 主实例中的路由查找 — 查找主实例 inet 表以将隧道数据包路由到隧道目标。IGP 添加路由。

IPv4 到 IPv6 转换

翻译详情如下:

  • 如果 IPv4 是分段的或有 IP 选项,则会被丢弃。

  • 数据包类型从 IPv4 更改为 IPv6。

  • 复制 ToS/DSCP 字段。

  • IPv6 跃点限制设置为 IPv4 TTL。

  • 复制有效负载协议(不进行错误/不一致检查)。

  • IPv6 数据包目标地址设置为转换目的地IPv6。

  • IPv6 数据包源地址的 96 个最高有效位设置为转换源IPv6前缀。

  • IPv6 数据包源地址的 32 个最低有效位设置为原始数据包 IPv4 地址

转换后的 IPv6 数据包如图 2 所示

图 2:转换后的 IPv6 源地址格式 Translated IPv6 Source Address Format

GRE 封装

控制器通过 PRPD API 为转换后的 IPv6 目标定义 GRE 隧道封装配置文件。边缘路由器会在客户 VRF inet6 表中查找转换后的 IPv6 目标以进行隧道封装。详情如下:

  • 添加了外部 GRE IPv4 隧道标头

  • GRE 密钥设置为 GREKey,可由用户配置

  • IPv4 目标设置为隧道目的地IPv4

  • IPv4 源设置为隧道源IPv4

  • 注意:

    隧道封装配置文件的数量可以小于或等于转换规则的数量。默认情况下,您可以在多个最终客户 VRF 之间共享单个 GRE 隧道。在 PFE 中,可能有许多 GRE 封装路由使用相同的配置文件参数,因此使用相同的隧道下一跃点。但是,许多转换路由可能不使用相同的 GRE 路由。

封装后,边缘路由器上的数据包格式如图 3 所示

图 3:封装 Packet Formats after Encapsulation后的数据包格式

解封装过程(PaaS 服务器到边缘路由器)

从 PaaS 服务器到边缘路由器的数据包流包括 GRE 解封装和反向转换,如图 4 所示。

GRE 封装从 PaaS 服务器接收的 IPv6 数据包,进行隧道终止查找,该查找解封装 GRE 或 IPv4 标头,并指向 VRF,在此进行反向转换的后续查找。根据控制器为每个目标 IPv6 前缀定义的转换规则,将转换 IPv6 有效负载(IPv6 标头替换为 IPv4)。反向转换后,在最终客户VRF inet表中查找转换后的地址,以获得面向最终客户网络的L2封装。

图 4:解封装流(PaaS 服务器到边缘路由器) De-encapsulation Flow (PaaS server to Edge Router)

了解配置文件和配置文件的分离

解封装和反向转换配置文件的解耦至关重要。控制器通过单独的 GRPC 调用为反向转换和隧道解封装添加两个单独的路由。

  • FlexibleTunnelAdd() 对隧道终端进行编程,以指向全局转换 VRF。

  • IPv6 RouteAdd() 或 RouteUpdate() 对全局转换 VRF 中 VRF inet6 表中的内部目标 IPv6 路由进行编程,并将操作作为反向转换,并将 VRF 定位为最终客户 VRF。
  • 转换后的 IPv4 地址的最终客户 VRF inet 路由由 BGP 协议编程。

了解转发路径

从 PaaS 服务器接收的 GRE 封装的 IPv6 数据包会经历隧道终止查找,该查找会解封装 GRE 或 IPv4 标头,并指向 VRF,在此进行反向转换的后续查找。

  • GRE 隧道终端查找和隧道解封装

    • 解封装属性形成查找密钥 GRE 密钥、隧道目标IPv4 地址、隧道源IPv4 前缀

    • 隧道终止查找可识别客户 VPN 实例并移除隧道标头(外部 IPv4 标头和 GRE 标头)。

    • 从 PaaS 服务器接收的 GRE 标头将设置密钥位和 32 位 GRE 密钥值。转发查找包括 GRE 密钥以及其他查找密钥。

    • 数据包被定向到目标 VRF,即全局转换 VRF。

  • 反向转换和最终客户 VRF 识别

    • 隧道解封装后,流量需要路由到最终客户 VRF。此路由是使用对全局转换 VRF 中 InnerDestinationIPv6 地址的转换路由查找来完成的,全局转换 VRF 是客户为保存 IPv6 转换路由而创建的路由实例。

      您可以使用 InnerDestinationIPv6 地址作为识别最终客户 VRF 的差异化因素。

    • 在转换路由 (InnerDestinationIPv6) 查找中,反向转换配置文件将 IPv6 标头转换为 IPv4 标头,并指向最终客户 VRF。IPv6 地址的较低 32 位构成转换后的 IPv4 地址。

  • 最终客户 VRF 表中的路由查找

    • 在 VRF inet 表中查找转换后的 IPv4 地址,以便将数据包路由到客户网络。

图 5:内部 IPv6 目标格式 InnerIPv6 Destination format

了解内部 IPv6Src 地址

FlexibleTunnelAdd API 还支持可选参数 InnerSourceIPv6 字段。您可以使用此可选参数包含用于终止 GRE 隧道和标识客户 VRF 的 InnerSourceIPv6 地址。

当 InnerSourceIPv6 地址用作差异化因素时,您可以通过在 FlexibleTunnelAdd API 中将最终客户 VRF 作为目标 VRF 传递,将隧道终止查找配置为指向最终客户 VRF。在这种情况下,转换路由 (InnerDestinationIPv6) 可以编程到相应的最终客户 VRF 表中。但是,启用可选的 InnerSourceIPv6 并不限制将解封装流与全局转换 VRF 一起使用。

图 6:使用 InnerIPv6Src De-encapsulation with InnerIPv6Src 进行解封装

GRE 解封装

GRE 解封装过程包括以下步骤:

  • 隧道查找和 TargetVRF 实例是使用之前定义的查找键确定的。

  • 外部 GRE 标头将被丢弃。

IPv6 到 IPv4 转换

翻译细节解释如下:

  • 内部数据包类型从 IPv6 更改为 IPv4。如果内部数据包类型不是 IPv6,则会丢弃该数据包,并增加错误计数器。

  • 复制有效负载协议字段时不会进行错误或不一致检查。

  • TC 字段复制到 DSCP 字段中

  • IPv4 TTL 设置为内部 IPv6 跃点限制

  • 数据包的 IPv4 目标地址派生自内部 IPv6 目标地址的 32 个最低有效位
  • 数据包的 IPv4 源地址派生自内部 IPv6 源地址的 32 个最低有效位

边缘路由器接收的数据包结构如图 7 所示。

图 7:数据包格式(解封装流) Packet Formats (De-encapsulation flow)

更改历史记录表

功能支持由您使用的平台和版本决定。使用功能资源管理器确定您的平台是否支持某个 功能

释放
描述
21.2R1