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 statistics
和 show 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-prefix
external-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 statistics
和 show 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 中:
配置接口
set interfaces si-0/1/0 unit 0 family inet6
配置接口以便由服务集处理的流量
set interfaces ge-5/0/0 unit 0 family inet6 service input service-set nptv6-service-set set interfaces ge-5/0/0 unit 0 family inet6 service output service-set nptv6-service-set set interfaces ge-5/0/0 unit 0 family inet6 address 1234:5678:9abc::1/64
配置服务内联 (si-) 接口的带宽
set chassis fpc 0 pic 1 inline-services bandwidth 10g
配置 NAT 池和规则
set services nat pool ss_nptv6_pool address abcd:ef12:3456::/48 set services nat rule ss_nptv6_rule match-direction input term t0 from source-address 1234:5678:9abc::/48 set services nat rule ss_nptv6_rule match-direction input term t0 then translated source-pool ss_nptv6_pool set services nat rule ss_nptv6_rule match-direction input term t0 then translated translation-type nptv6
配置服务集
set services service-set ss_nptv6 nat-rules ss_nptv6_rule set services service-set ss_nptv6 nat-options nptv6 icmpv6-error-messages set services service-set ss_nptv6 interface-service service-interface si-0/1/0.0
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要使用接口样式服务集为 IPv6 配置无状态网络前缀转换,请执行以下作:
配置内联服务 (si-) 接口。
[edit] user@host# set interfaces si-0/1/0 unit 0 family inet6
为服务集处理的流量配置接口。
[edit] user@host# set interfaces ge-5/0/0 unit 0 family inet6 service input service-set nptv6-service-set user@host# set interfaces ge-5/0/0 unit 0 family inet6 service output service-set nptv6-service-set user@host# set interfaces ge-5/0/0 unit 0 family inet6 address 1234:5678:9abc::1/64
配置服务内联 (si-) 接口的带宽。
[edit] user@host# set chassis fpc 0 pic 1 inline-services bandwidth 10g
配置 NAT 池和规则。
[edit] user@host# set services nat pool ss_nptv6_pool address abcd:ef12:3456::/48 user@host# set services nat rule ss_nptv6_rule match-direction input term t0 from source-address 1234:5678:9abc::/48 user@host# set services nat rule ss_nptv6_rule match-direction input term t0 then translated source-pool ss_nptv6_pool user@host# set services nat rule ss_nptv6_rule match-direction input term t0 then translated translation-type nptv6
配置服务集
[edit] user@host# set services service-set ss_nptv6 nat-rules ss_nptv6_rule user@host# set services service-set ss_nptv6 nat-options nptv6 icmpv6-error-messages user@host# set services service-set ss_nptv6 interface-service service-interface si-0/1/0.0
结果
在配置模式下,输入show chassis
show interfaces
、和show services
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@host# show chassis chassis { fpc 0 { pic 1 { inline-services { bandwidth 10g; } } } } user@host# show interfaces interfaces { si-0/1/0 { unit 0 { family inet6; } } ge-5/0/0 { unit 0 { family inet6 { service { input { service-set nptv6-service-set; } output { service-set nptv6-service-set; } } address 1234:5678:9abc::1/64; } } } } user@host# show services services { service-set ss_nptv6 { nat-rules ss_nptv6_rule; nat-options { nptv6 { icmpv6-error-messages; } } interface-service { service-interface si-0/1/0.0; } } nat { pool ss_nptv6_pool { address abcd:ef12:3456::/48; } rule ss_nptv6_rule { match-direction input; term t0 { from { source-address { 1234:5678:9abc::/48; } } then { translated { source-pool ss_nptv6_pool; translation-type { nptv6; } } } } } } }
验证
要确认配置工作正常,请执行以下作:
验证 NAT 池映射
目的
验证现有 NAT 地址池和映射,以便进行 IPv6 网络前缀转换。
行动
在作模式下,使用命令 show services nat mappings nptv6
:
user@host> show services nat mappings nptv6 internal 1111:2222:3333:aaaa:bbbb::1 Interface Service-set NAT-Pool Address Mapping si-0/1/0 ss_nptv6 ss_nptv6_pool 1111:2222:3333:aaaa:bbbb::1 -> aaaa:bbbb:cccc:dddd:bbbb::1
user@host> show services nat mappings nptv6 external aaaa:bbbb:cccc:dddd:bbbb::1 Interface Service-set NAT-Pool Address Mapping si-0/1/0 ss_nptv6 ss_nptv6_pool 1111:2222:3333:aaaa:bbbb::1 -> aaaa:bbbb:cccc:dddd:bbbb::1
意义
输出显示了 NAT 地址与端口之间的映射,用于外部和内部地址的 IPv6 无状态网络前缀转换。将显示最初使用 NAT 发送和转换的地址和端口详细信息。
验证内联 NAT 池和统计信息
目的
验证 IPv6 网络前缀转换的内联 NAT 池和统计信息。
行动
在作模式下,使用命令 show services inline nat
:
user@host> show services inline nat statistics interface si-4/0/0 Service PIC Name: si-4/0/0 Control Plane Statistics ICMPv4 errors packets pass through :0 ICMPv4 errors packets locally generated :0 ICMPv6 errors packets pass through :0 ICMPv6 errors packets locally generated :0 Dropped packets :0 Data Plane Statistics NATed packets :0 deNATed packets :0 Errors :0 user@host> show services inline nat pool Interface: si-4/0/0, Service set: ss_nptv6 NAT pool: ss_nptv6_pool1, Translation type: NPTV6 Address range: abcd:ef12:3456::/48 NATed packets: 0, deNATed packets: 0, Errors: 0 NAT pool: ss_nptv6_pool2, Translation type: NPTV6 Address range: 1111:2222:3333::/48 NATed packets: 0, deNATed packets: 0, Errors: 0 user@host> show services inline nat pool ss_nptv6_pool1 Interface: si-4/0/0, Service set: ss_nptv6 NAT pool: ss_nptv6_pool1, Translation type: NPTV6 Address range: abcd:ef12:3456::/48 NATed packets: 0, deNATed packets: 0, Errors: 0
意义
输出显示有关内联 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 中:
配置内联接口
set interfaces si-0/1/0 unit 0 family inet6 set interfaces si-0/1/0 unit 1 family inet6 set interfacessi-0/1/0 unit 1 service-domain inside set interfaces si-0/1/0 unit 2 family inet6 set interfaces si-0/1/0 unit 2 service-domain outside set interfaces ge-5/0/0 unit 0 family inet6 address 1234:5678:9abc::1/64
配置内联服务的带宽
set chassis fpc 0 pic 1 inline-services bandwidth 10g
配置 NAT 池和规则
set services nat pool ss_nptv6_pool address abcd:ef12:3456::/48 set services nat rule ss_nptv6_rule match-direction input term t0 from source-address 1234:5678:9abc::/48 set services nat rule ss_nptv6_rule match-direction input term t0 then translated source-pool ss_nptv6_pool set services nat rule ss_nptv6_rule match-direction input term t0 then translated translation-type nptv6
配置服务集
set services service-set ss_nptv6 nat-rules ss_nptv6_rule set services service-set ss_nptv6 nat-options nptv6 icmpv6-error-messages set services service-set ss_nptv6 nexthop-service inside-service-interface si-0/1/0.1 set services service-set ss_nptv6 nexthop-service outside-service-interface si-0/1/0.2
配置路由实例
set routing-instances inst1 instance-type vrf set routing-instances inst1 interface si-0/1/0.1 set routing-instances inst1 interface ge-5/0/0.0 set routing-instances inst1 route-distinguisher 1234:5678 set routing-instances inst1 vrf-import reject-all set routing-instances inst1 vrf-export reject-all set routing-instances inst1 routing-options rib inst1.inet6.0 static route ::0/0 next-hop si-0/1/0.1
配置策略和作修饰符
set policy-options policy-statement reject-all then reject
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要使用下一跳样式服务集为 IPv6 配置无状态网络前缀转换,请执行以下作:
为 NAT 服务配置内联接口。
[edit] user@host# set interfaces si-0/1/0 unit 0 family inet6 user@host# set interfaces si-0/1/0 unit 1 family inet6 user@host# set interfacessi-0/1/0 unit 1 service-domain inside user@host# set interfaces si-0/1/0 unit 2 family inet6 user@host# set interfaces si-0/1/0 unit 2 service-domain outside user@host# set interfaces ge-5/0/0 unit 0 family inet6 address 1234:5678:9abc::1/64
设置内联服务的带宽。
[edit] user@host# set chassis fpc 0 pic 1 inline-services bandwidth 10g
配置 NAT 池和规则。
[edit] user@host# set services nat pool ss_nptv6_pool address abcd:ef12:3456::/48 user@host# set services nat rule ss_nptv6_rule match-direction input term t0 from source-address 1234:5678:9abc::/48 user@host# set services nat rule ss_nptv6_rule match-direction input term t0 then translated source-pool ss_nptv6_pool user@host# set services nat rule ss_nptv6_rule match-direction input term t0 then translated translation-type nptv6
使用与 NAT 池关联的 NAT 规则配置服务集。
[edit] user@host# set services service-set ss_nptv6 nat-rules ss_nptv6_rule user@host# set services service-set ss_nptv6 nat-options nptv6 icmpv6-error-messages user@host# set services service-set ss_nptv6 nexthop-service inside-service-interface si-0/1/0.1 user@host# set services service-set ss_nptv6 nexthop-service outside-service-interface si-0/1/0.2
配置使用所配置的 si- 接口的路由实例。
[edit] user@host# set routing-instances inst1 instance-type vrf user@host# set routing-instances inst1 interface si-0/1/0.1 user@host# set routing-instances inst1 interface ge-5/0/0.0 user@host# set routing-instances inst1 route-distinguisher 1234:5678 user@host# set routing-instances inst1 vrf-import reject-all user@host# set routing-instances inst1 vrf-export reject-all user@host# set routing-instances inst1 routing-options rib inst1.inet6.0 static route ::0/0 next-hop si-0/1/0.1
为 NAT 数据包配置策略和作修饰符。
[edit] user@host# set policy-options policy-statement reject-all then reject
结果
在配置模式下,输入show chassis
、show routing-instances
show interfaces
show policy-options
和show services
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@host# show chassis chassis { fpc 0 { pic 1 { inline-services { bandwidth 10g; } } } } user@host# show interfaces chassis { fpc 0 { pic 1 { inline-services { bandwidth 10g; } } } } interfaces { si-0/1/0 { unit 0 { family inet6; } unit 1 { family inet6; service-domain inside; } unit 2 { family inet6; service-domain outside; } } ge-5/0/0 { unit 0 { family inet6 { address 1234:5678:9abc::1/64; } } } } user@host# show policy-options policy-options { policy-statement reject-all { then reject; } } user@host# show routing-instances routing-instances { inst1 { instance-type vrf; interface si-0/1/0.1; interface ge-5/0/0.0; route-distinguisher 1234:5678; vrf-import reject-all; vrf-export reject-all; routing-options { rib inst1.inet6.0 { static { route ::0/0 next-hop si-0/1/0.1; } } } } } user@host# show services services { service-set ss_nptv6 { nat-rules ss_nptv6_rule; nat-options { nptv6 { icmpv6-error-messages; } } nexthop-service { inside-service-interface si-0/1/0.1; outside-service-interface si-0/1/0.2; } } nat { pool ss_nptv6_pool { address abcd:ef12:3456::/48; } rule ss_nptv6_rule { match-direction input; term t0 { from { source-address { 1234:5678:9abc::/48; } } then { translated { source-pool ss_nptv6_pool; translation-type { nptv6; } } } } } } }
验证
要确认配置工作正常,请执行以下作:
验证 NAT 池映射
目的
验证现有 NAT 地址池和映射,以便进行 IPv6 网络前缀转换。
行动
在作模式下,使用命令 show services nat mappings nptv6
:
user@host> show services nat mappings nptv6 internal 1111:2222:3333:aaaa:bbbb::1 Interface Service-set NAT-Pool Address Mapping si-0/1/0 ss_nptv6 ss_nptv6_pool 1111:2222:3333:aaaa:bbbb::1 -> aaaa:bbbb:cccc:dddd:bbbb::1
user@host> show services nat mappings nptv6 external aaaa:bbbb:cccc:dddd:bbbb::1 Interface Service-set NAT-Pool Address Mapping si-0/1/0 ss_nptv6 ss_nptv6_pool 1111:2222:3333:aaaa:bbbb::1 -> aaaa:bbbb:cccc:dddd:bbbb::1
意义
输出显示有关内联 NAT 地址转换的信息,例如受 NAT 处理的数据包数、未转换的数据包数以及指定服务集和 si- 接口有转换错误的数据包数。
验证内联 NAT 池和统计信息
目的
验证 IPv6 网络前缀转换的内联 NAT 池和统计信息。
行动
在作模式下,使用命令 show services inline nat
:
user@host> show services inline nat statistics interface si-4/0/0 Service PIC Name :si-4/0/0 Control Plane Statistics ICMPv4 errors packets pass through :0 ICMPv4 errors packets locally generated :0 ICMPv6 errors packets pass through :0 ICMPv6 errors packets locally generated :0 Dropped packets :0 Data Plane Statistics NATed packets :0 deNATed packets :0 Errors :0 user@host> show services inline nat pool Interface: si-0/1/0, Service set: ss_nptv6 NAT pool: ss_nptv6_pool1, Translation type: NPTV6 Address range: abcd:ef12:3456::/48 NATed packets: 0, deNATed packets: 0, Errors: 0 NAT pool: ss_nptv6_pool2, Translation type: NPTV6 Address range: 1111:2222:3333::/48 NATed packets: 0, deNATed packets: 0, Errors: 0 user@host> show services inline nat pool ss_nptv6_pool1 Interface: si-0/1/0, Service set: ss_nptv6 NAT pool: ss_nptv6_pool1, Translation type: NPTV6 Address range: abcd:ef12:3456::/48 NATed packets: 0, deNATed packets: 0, Errors: 0
意义
输出显示了 NAT 地址与端口之间的映射,用于外部和内部地址的 IPv6 无状态网络前缀转换。将显示最初使用 NAT 发送和转换的地址和端口详细信息。