Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

IPv6 的无状态源网络前缀转换

IPv6 的无状态源网络前缀转换概述

从 Junos OS 15.1 版开始,您可以在 IPv6 网络(IPv6 到 IPv6)中配置源地址前缀的无状态转换。具有 MPC 且支持内联 NAT 的 MX 系列路由器支持此功能。要为 IPv6 数据包 (NPTv6) 配置无状态网络前缀转换,请在[edit services nat rule rule-name term term-name then translated]层次结构级别包含语translation-type nptv6句。NPTv6 转换器转换源地址前缀的方式是不需要重新计算数据包的传输层校验和。NPTv6 定义了内部和外部网络之间的 IPv6 网络前缀转换的无状态方法。NPTv6 不会维护转换器中每个节点或每个流的状态。您可以使用命令show services nat mappings nptv6 (internal | external)分别查看内部地址和外部地址的 NPTv6 的 NAT 映射。也可以使用 show services inline nat statisticsshow services inline nat pool 命令显示有关配置了 NPTv6 的内联 NAT 的信息。

无状态源网络前缀转换的好处

  • 对于边缘网络,在以下情况下,无需对本地网络内部用于接口、访问列表和系统日志记录消息的 IPv6 地址重新编号:

    • 边缘网络使用的全局前缀将会更改。

    • 当站点添加、删除或更改上游网络时,将在边缘网络内部或其他上游网络(如多宿主设备)内使用 IPv6 地址。

  • 边缘网络使用的 IPv6 地址不需要在上游网络中进行入口过滤,也不需要向上游网络播发其特定于客户的前缀。

  • 遍历翻译功能的连接不会因 NPTv6 转换器的重置或短暂中断而中断。

NPTv6

IPv6 网络前缀转换 (NPTv6) 定义了内部和外部网络之间的 IPv6 地址前缀转换的无状态方式。NPTv6 不会维护转换器中每个节点或每个流的状态。入站或出站数据包的地址映射不需要维护映射状态。IPv6 到 IPv6 NPTv6 功能是一种无状态、与传输无关的 IPv6 NPTv6 功能,具有与 IPv4 到 IPv4 NAT (NAPT44) 关联的地址独立性优势,可在 内部外部 前缀地址之间实现 1:1 的关系,从而保持网络层的端到端可达性。在上游网络中,边缘网络使用的 IPv6 地址始终包含提供商分配的前缀。

NPTv6 旨在为边缘网络提供地址独立性,以实现内部地址稳定性,而不受其上游服务提供商网络的影响。但是,使用不带转换的独立于提供商的地址可能会非常昂贵,因为路由表枚举的是边缘网络,而不是枚举向边缘网络提供服务的中转域。这种现象可能会导致庞大且难以管理的路由表。NPTv6 是一种有效且有凝聚力地提供地址独立性的机制,无需向外部网络公布内部网络前缀。相比之下,IPv4 网络地址端口转换 (NAPT) (NAPT44) 的主要目标是解决 IPv4 地址枯竭问题,尽管它具有地址独立性的相同优势。IPv6 的 NAPT,特别是 NAPT66,已在微内核中得到支持。但是,与 NAPT44 类似,NAPT66 需要保留流状态信息。NPTv6 提供了一种简单而精简的技术,可以避免与 NAPT66 相关的尽可能多的限制。它被定义为包括一个双向、校验和中立和一个算法转换函数。

NPTv6 不会在转换器中维护节点、流或连接的状态信息。内部到外部和外部到内部数据包使用 IPv6 标头中的信息通过算法进行转换。由于其无状态特性,如果相同的两个网络之间存在多个 NPTv6 转换器,则负载可以在它们之间转移或动态共享。此外,与 NAPT44 不同的是,由于映射可以在任一方向上完成,因此转换器不会干扰入站连接的建立。相反,防火墙可以与 NPTv6 转换器结合使用。与传统 NAT 相比,这种行为为网络管理员提供了更大的灵活性来指定安全策略。

NPTv6 的另一个优点是校验和中立的转换。转换器无需重写传输标头即可更新校验和,也不会执行端口映射。因此,要部署新的传输层协议,您无需修改转换器。由于传输层未被修改,因此该算法不会干扰 IP 有效负载的加密。尽管 NPTv6 在几个方面优于 NAPT44 或 NAPT66,但它并不能消除所有的架构问题。由于 NPTv6 修改了数据包的 IP 报头,因此与 IPsec 认证报头等安全机制不兼容。使用单独的内部和外部前缀会给域名系统 (DNS) 部署带来复杂性。此外,那些需要应用层网关 (ALG) 才能通过 NAPT44 或 NAPT66 设备正常工作的应用程序可能需要类似的 ALG 才能通过 NPTv6 转换器工作。由于 NPTv6 不维护连接状态,因此转换器的故障不会影响通过服务器的非发射功率控制 (TPC) 流量。由于连接的源 IP 地址发生更改,TCP 连接可能会中断。在这种情况下,连接可能会超时,然后重新建立。

NPTv6 使用内联 NAT。内联 NAT 使用模块化端口集中器 (MPC) 线卡的功能,因此无需为 NAT 提供多服务 DPC (MS-DPC)。要配置内联 NAT,请将服务接口定义为类型 si- (服务内联)接口。您还必须为内联接口预留足够的带宽。这样可以配置用于 NAT 的接口服务集和下一跃点服务集。该 si- 接口用作 虚拟服务 PIC

功能与 IPv6 网络前缀转换的互作

本主题包含以下章节,介绍使用无状态源 IPv6 前缀转换的不同功能的工作行为和各种系统条件:

地址映射算法

NPTv6 转换器过滤出网的数据包,如果数据包的源地址与规则中定义的源地址(配置中的 from 或源地址)匹配,则源地址将替换为为规则定义的池中的地址前缀。源地址前缀后面的接下来 16 位将替换为校验和调整后的值,以确保即使源地址发生更改,校验和在传出数据包中也保持不变。在为流出网络的数据包定义配置规则和池时,会创建一个 denat 规则和池,用于转换进入网络的数据包的目标地址。

从内部到外部的转换

当数据包从内部网络传输到外部网络时,数据包源地址(来自内部节点)中的 IPv6 前缀将映射到外部前缀。校验和调整后,数据包将路由到外部网络。

从外部到内部的转换

当数据包从外部网络传入内部网络时,数据包目标地址(来自外部主机)中的 IPv6 前缀将映射到内部前缀。校验和调整后,数据包将路由到内部网络。

校验和中立转换

NPTv6 转换器转换源地址前缀的方式是不需要重新计算数据包的传输层校验和。可以通过对同一校验和覆盖的其他 16 位字段进行额外更改来纠正因修改校验和覆盖的部分区域而引起的校验和更改。此校验和中性方法首先计算 1 的internal-prefixexternal-prefix补码校验和 。

对于来自内部网络的数据包,调整值按 1 的补码计算,计算方式如下:

调整 = 内部前缀校验和 - 外部前缀校验和。

调整值将添加到前缀后源地址的 16 位字中。

对于来自外部网络的数据包,调整为 1 的补码,计算方式如下:

Adjustment = 外部前缀校验和 - 内部前缀校验和。

该调整将添加到转换前缀后目标地址的 16 位字中。

多宿

如果两个 NPTv6 译器对同一个内部 IPv6 前缀具有不同的外部 IPv6 前缀配置,则这两个 NPTV6 译器会将相同的内部 IPv6 网络前缀转换为两个不同的外部 IPv6 网络前缀,具体取决于数据包经过的转换器。

发夹

当一个内部节点只知道另一个内部节点的外部(即全局地址)时,它将使用该地址向该内部节点发送数据包。如果 NPTv6 转换器接收到此类数据包,则该数据包在经过源地址和目标地址转换后会再次路由到内部网络。

负载平衡

当两个转换器具有相同的内部到外部映射配置,并且数据包负载在它们之间共享时,即可实现负载共享。如何实现负载平衡超出了NPTv6的范围。

可以基于 IPv6 地址的子网 ID 部分实现平衡。可以有两个 si- 逻辑接口具有相同的内部前缀到外部前缀的映射。数据包根据子网 ID 路由到其中一个 si逻辑接口。

用于 NPTv6 的 ICMPv6

NPTv6 未映射的 hexset 不支持 ICMPv6 错误生成。

配置无状态源网络前缀转换的准则

配置源 IPv6 前缀的无状态转换时,请记住以下几点:

本主题包含以下章节,介绍使用无状态源 IPv6 前缀转换的不同功能的工作行为和各种系统条件:

  • 平滑路由引擎切换 (GRES) 支持与 NAT44 相同。

  • 不支持统一 ISSU 和不间断软件升级 (NSSU)。

  • NPTv6 部署支持从外部网络到内部节点的直接入站连接。这种机制会导致轻微的漏洞,因为它使内部节点容易受到来自外部的攻击。NPTv6 的无状态转换使得基于连接状态跟踪外部连接请求变得困难。这种行为使 NAT44 网络能够很好地抵御外部攻击。保护 NPTv6 转换器的最佳选择是在 NPTv6 转换器上方添加防火墙。

  • 第 6 个软线集中器与 NPTv6 互作。支持不需要应用层网关 (ALG) 更改有效负载中的源 IP 地址的所有其他机制。NPTv6 转换器支持 TCP、UDP、ICMP、SSH 和 Telnet。不支持要求 ALG 更改有效负载中的源 IP 地址的 FTP 和会话初始化协议 (SIP)。

  • NPTv6 池在外部数据存储器中分配。池数据结构由地址前缀、前缀长度和校验和组成。每条记录的大小为 192 位。对于每个池,系统会自动分配一个 denat 池。denat 池的大小为 192 位。总共为 NAT 处理和未转换的 NPTv6 池分配了 8000 个 64 位条目。此分配来自为内联服务 (JNH_APP_INLINE_SVCS) 分配的 64,000 个条目。

  • 不支持将 6rd 与 NPTv6 互作的内联服务链接。

  • 在配置 NPTv6 时,您需要配置源池并指定 from (源)地址。

  • 外部和内部前缀长度必须大于或等于 /16 子网掩码,并且小于或等于 /112 子网掩码。

  • 两个不同的内部前缀不能转换为同一个外部前缀。

  • NPTv6 不能应用于 IPSec 和互联网密钥交换 (IKE) 数据包。在这种情况下,NPTv6 转换器将被绕过。

  • 由于转换采用一个 IPv6 地址前缀,因此池中只有一个地址。如果用户配置了多个地址,则系统不会引发任何错误,而只会选择池的第一个地址前缀进行转换。

  • 对于从内部网络到外部网络的数据包,如果内部子网未映射或设置为 0xFFFF,则数据报将被丢弃,并生成 ICMP 目标无法访问错误。

  • 对于从内部网络到外部网络的数据包,如果 16 位字使用 1 的补码方法添加了调整,并且等于 0xFFFF,则该值将写入零。

  • 对于从外部网络到内部网络的数据包,如果 16 位字使用 1 的补码方法从中减去调整值,并且等于 0xFFFF,则 16 位字将被覆盖为零。

  • 对于前缀 /48 或更短的前缀的转换,必须在 /48 子网掩码后的前 16 位中添加或减去调整,其值不0xFFFF。如果前缀为 /49 或更长,则必须在前 16 位(从 64 到 123)中添加或减去调整,其值不0xFFFF。

使用接口样式和下一跳样式服务集的 NPTv6 工作

目标是为 IPv6 (NPTv6) 内联服务添加网络前缀转换,以便对源 IPv6 地址执行无状态转换。考虑一个示例拓扑,其中 NPTv6 在前缀为 FD01:0203:0405:/48 的内部网络和前缀为 2001:0DB8:0001:/48 的外部网络之间实现。

从单个管理域(内部网络)发往全球网络(外部网络)中的主机的数据包中的源地址 FD01:0203:0405:/48 将转换为 2001:0DB8:0001:/48。从外部网络发送到内部网络的数据包的目标地址为 2001:0DB8:0001:/48。此目标地址将映射到内部网络地址 FD01:0203:0405:/48,并将转发到内部网络主机。在这种情况下,假定两个子网的长度相同。如果它们不同,则较短的将通过后缀零扩展到较长的前缀长度。

用于 NPTv6 的地址映射算法是校验和中立的。转换后的 IP 报头将生成相同的 IPv6 伪报头校验和。校验和是使用标准互联网校验和算法计算的。在转换 IPv6 前缀期间所做的更改会被对 IPv6 地址其他部分所做的计算更改所抵消。这会导致使用互联网校验和(如 TCP 和 UDP)的传输层为同一数据报的内部和外部形式计算相同的 IPv6 伪报头校验和,从而避免了修改传输层标头以更正校验和值的需要。该算法可以映射入站数据包和出站数据包的地址。

NPTv6 转换器适用于分段数据包和启用了 IP 选项的数据包。NPTv6 所需的配置更改将在以下各节中介绍。

通过定义逻辑服务接口、服务集和服务集规则来配置路由器处理服务。它们定义了如何将服务应用于数据包。

可用于静态 v4-v4 源地址内联 NAT 的内联服务逻辑接口 si-ifl 实现可以重用于内联 NPTv6。可以修改为 MS-DPC 实现的 NPTv6 的配置,以便实现内联 NPTv6。有两种类型的服务集配置:接口样式和下一跃点样式。

对于下一跳式服务,路由条目配置为将数据包引导至内联服务接口。在那里,数据包将通过服务规则。如果数据包与服务规则匹配,则根据服务规则进行处理。对于接口样式服务,服务集直接在介质接口上配置,当流量离开和进入接口时,它会影响流量。数据包通过应用于介质接口的服务过滤器引导至内联服务接口。

示例:通过使用接口样式服务集在 IPv6 网络中配置无状态网络前缀转换,实现地址独立性

在具有支持内联 NAT 的 MPC 的 MX 系列路由器上,可以在 IPv6 网络(IPv6 到 IPv6)中配置源地址前缀的无状态转换。NPTv6 转换器转换源地址前缀的方式是不需要重新计算数据包的传输层校验和。NPTv6 定义了内部和外部网络之间的 IPv6 网络前缀转换的无状态方法。NPTv6 不会维护转换器中每个节点或每个流的状态。您可以使用命令 show services nat mappings nptv6 (internal | external) 分别查看内部地址和外部地址的 NPTv6 的 NAT 映射。也可以使用 show services inline nat statisticsshow services inline nat pool 命令显示有关配置了 NPTv6 的内联 NAT 的信息。

注意:

具有基于 Trio 的 FPC (MPC) 的 MX 系列路由器支持此功能。

此示例介绍如何在具有 MPC 的 MX 系列路由器上使用接口样式服务集为 IPv6 数据包配置无状态源前缀转换,并包含以下部分:

要求

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

  • 一台带 MPC 的 MX 系列路由器。

  • MX 系列路由器使用的 Junos OS 15.1R1 或更高版本

在 IPv6 网络中使用接口样式服务集的无状态网络前缀转换概述和拓扑

对于接口样式服务,服务集直接配置在介质接口上,当流量离开和进入接口时会影响流量。数据包通过应用于介质接口的服务过滤器引导至内联服务接口。

通过配置服务集定义对服务规则进行定义和分组后,可以将服务应用于路由器上安装的一个或多个接口。将服务集应用于接口时,它会自动确保数据包定向到 PIC。

考虑一个示例配置方案,其中 NPTv6 是使用接口样式服务集配置的。内联服务接口 si-0/1/0 配置了预留为每秒 10 GB 的带宽。si-0/1/0 接口使用 inet6 系列定义。NAT 地址池 nptv6_pool 的配置地址为 abcd:ef12:3456::/48。在输入方向上应用 NAT 规则,以便对从源地址 1234:5678:9abc::/48 到达的数据包执行 NPTv6 转换。对于源地址 1234:5678:9abc::/48 中符合 NAT 规则标准的数据包,将分配 NAT 地址池中的地址。服务集 ss_nptv6 是使用 NAT 规则指定的。配置了千兆以太网接口 ge-5/0/0,并将服务集应用于此接口。

配置

要使用接口样式服务集为 IPv6 配置无状态网络前缀转换,请执行以下任务:

CLI 快速配置

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

配置接口

配置接口以便由服务集处理的流量

配置服务内联 (si-) 接口的带宽

配置 NAT 池和规则

配置服务集

程序

分步过程

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

要使用接口样式服务集为 IPv6 配置无状态网络前缀转换,请执行以下作:

  1. 配置内联服务 (si-) 接口。

  2. 为服务集处理的流量配置接口。

  3. 配置服务内联 (si-) 接口的带宽。

  4. 配置 NAT 池和规则。

  5. 配置服务集

结果

在配置模式下,输入show chassisshow interfaces、和show services 命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

验证

要确认配置工作正常,请执行以下作:

验证 NAT 池映射

目的

验证现有 NAT 地址池和映射,以便进行 IPv6 网络前缀转换。

行动

在作模式下,使用命令 show services nat mappings nptv6

意义

输出显示了 NAT 地址与端口之间的映射,用于外部和内部地址的 IPv6 无状态网络前缀转换。将显示最初使用 NAT 发送和转换的地址和端口详细信息。

验证内联 NAT 池和统计信息

目的

验证 IPv6 网络前缀转换的内联 NAT 池和统计信息。

行动

在作模式下,使用命令 show services inline nat

意义

输出显示有关内联 NAT 地址转换的信息,例如受 NAT 处理的数据包数、未转换的数据包数以及指定服务集和 si- 接口有转换错误的数据包数。

示例:通过使用下一跳样式服务集在 IPv6 网络中配置无状态网络前缀转换,实现地址独立性

在具有支持内联 NAT 的 MPC 的 MX 系列路由器上,可以在 IPv6 网络(IPv6 到 IPv6)中配置源地址前缀的无状态转换。NPTv6 转换器转换源地址前缀的方式是不需要重新计算数据包的传输层校验和。NPTv6 定义了内部和外部网络之间的 IPv6 网络前缀转换的无状态方法。NPTv6 不会在转换器中维护每个节点或每个流状态。可以使用 show services nat mappings nptv6 (internal | external) 命令分别查看内部地址和外部地址的 NPTv6 的 NAT 映射。您还可以使用 show services inline nat statistics 和 show services inline nat pool 命令来显示有关配置了 NPTv6 的内联 NAT 的信息。

注意:

具有基于 Trio 的 FPC (MPC) 的 MX 系列路由器支持此功能。

此示例介绍如何在带有 MPC 的 MX 系列路由器上使用下一跃点样式服务集为 IPv6 数据包配置无状态源前缀转换,并包含以下部分:

要求

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

  • 一台带 MPC 的 MX 系列路由器。

  • MX 系列路由器使用的 Junos OS 15.1R1 或更高版本

使用下一跳样式服务集的 IPv6 网络中无状态网络前缀转换概述和拓扑

下一跳服务集是一种基于路由的应用特定服务的方法。只有发往特定下一跳的数据包才会通过创建显式静态路由提供服务。当需要将服务应用于整个虚拟专用网络 (VPN) 路由和转发 (VRF) 表时,或者当路由决策确定需要执行服务时,此配置非常有用。

对于下一跳样式服务,路由条目配置为将数据包引导至内联服务接口。数据包通过服务规则进行验证。如果数据包与服务规则匹配,则根据服务规则进行处理。

考虑一个示例配置方案,其中使用下一跃点样式服务集配置 NPTv6。内联服务接口 si-0/1/0 配置了预留为每秒 10 GB 的带宽。si-0/1/0 接口使用 inet6 系列定义。NAT 地址池 nptv6_pool 的配置地址为 abcd:ef12:3456::/48。在输入方向上应用 NAT 规则,以便对从源地址 1234:5678:9abc::/48 到达的数据包执行 NPTv6 转换。对于源地址 1234:5678:9abc::/48 中符合 NAT 规则标准的数据包,将分配 NAT 地址池中的地址。服务集配置为转发下一跃点,其服务接口 si-0/1/0.1 与网络内部应用的服务集相关联。包含内部网络的下一跳服务接口参数,以及与在网络外部应用的服务集相关联的 si-/1/0.2。服务集 ss_nptv6 是使用 NAT 规则指定的。为 si- 接口指定服务接口域,其中为 si-0/1/0.1 配置内部服务域,为 si-0/1/0.2 配置外部服务域。路由实例 inst1 的实例类型配置为 VRF 实例。接口 si-0/1/0.1 和接口 ge-5/0/0 与 inst1 相关联。内部和外部接口域与使用 inside-service-interface 和 outside-service-interface 语句指定的域匹配。为 NAT 事件配置了策略,其中包含拒绝所有数据包的作。

配置

要使用下一跃点样式服务集为 IPv6 配置无状态网络前缀转换,请执行以下任务:

CLI 快速配置

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

配置内联接口

配置内联服务的带宽

配置 NAT 池和规则

配置服务集

配置路由实例

配置策略和作修饰符

程序

分步过程

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

要使用下一跳样式服务集为 IPv6 配置无状态网络前缀转换,请执行以下作:

  1. 为 NAT 服务配置内联接口。

  2. 设置内联服务的带宽。

  3. 配置 NAT 池和规则。

  4. 使用与 NAT 池关联的 NAT 规则配置服务集。

  5. 配置使用所配置的 si- 接口的路由实例。

  6. 为 NAT 数据包配置策略和作修饰符。

结果

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

验证

要确认配置工作正常,请执行以下作:

验证 NAT 池映射

目的

验证现有 NAT 地址池和映射,以便进行 IPv6 网络前缀转换。

行动

在作模式下,使用命令 show services nat mappings nptv6

意义

输出显示有关内联 NAT 地址转换的信息,例如受 NAT 处理的数据包数、未转换的数据包数以及指定服务集和 si- 接口有转换错误的数据包数。

验证内联 NAT 池和统计信息

目的

验证 IPv6 网络前缀转换的内联 NAT 池和统计信息。

行动

在作模式下,使用命令 show services inline nat

意义

输出显示了 NAT 地址与端口之间的映射,用于外部和内部地址的 IPv6 无状态网络前缀转换。将显示最初使用 NAT 发送和转换的地址和端口详细信息。