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)。此功能在具有支持内联 NAT 的 MPC 的 MX 系列路由器上受支持。要为 IPv6 数据包 (NPTv6) 配置无状态网络前缀转换,请在层次结构级别包含translation-type nptv6该语句[edit services nat rule rule-name term term-name then translated]。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 功能具有与 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) 流量。TCP 连接可能会因连接的源 IP 地址更改而中断。在这种情况下,连接可能会超时,然后重新建立。

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 的补码,计算方法如下:

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

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

多宿主

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

发夹

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

负载平衡

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

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

ICMPv6 for NPTv6

NPTv6 未映射的十六进制不支持 ICMPv6 错误生成。

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

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

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

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

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

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

  • 第 6 个软线集中器与 NPTv6 互操作。支持不需要应用层网关 (ALG) 更改有效负载中的源 IP 地址的所有其他机制。TCP、UDP、ICMP、SSH 和 Telnet 由 NPTv6 转换器提供支持。不支持要求 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,则该值将写入为零。

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

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

NPTv6 与接口样式和下一跃点样式服务集的工作原理

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

来自发往全局网络(外部网络)中的主机的单个管理域(内部网络)的数据包中的源地址 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。可以为内联 NPTv6 实施修改为 MS-DPC 实施的 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 系列定义。nptv6_pool,NAT 地址池配置了地址 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 interfacesshow services 命令来确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

验证

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

验证 NAT 池映射

目的

验证 IPv6 网络前缀转换的现有 NAT 地址池和映射。

行动

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

意义

输出显示了外部和内部地址的 IPv6 无状态网络前缀转换的 NAT 地址和端口之间的映射。将显示最初使用 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 映射 nptv6(内部|外部)命令分别查看内部和外部地址的 NPTv6 的 NAT 映射。您还可以使用显示服务内联 NAT 统计信息和显示服务内联 nat 池命令来显示有关配置了 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 系列定义。nptv6_pool,NAT 地址池配置了地址 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 关联。内部和外部接口域与使用内部服务接口和外部服务接口语句指定的域匹配。为 NAT 事件配置了一个策略,其中包含拒绝所有数据包的操作。

配置

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

CLI 快速配置

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

配置内联接口

为内联服务配置带宽

配置 NAT 池和规则

配置服务集

配置路由实例

配置策略和操作修改符

程序

分步过程

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

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

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

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

  3. 配置 NAT 池和规则。

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

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

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

结果

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

验证

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

验证 NAT 池映射

目的

验证 IPv6 网络前缀转换的现有 NAT 地址池和映射。

行动

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

意义

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

验证内联 NAT 池和统计信息

目的

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

行动

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

意义

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