在此页面上
示例:配置有状态 NAT64 以处理 IPv4 地址耗尽
此示例在具有服务 DPC 的 MX 系列 3D 通用边缘路由器上配置有状态 NAT64。该配置复制了 draft-ietf-behave-v6v4-xlate-stateful-12 和 RFC 6146 有状态 NAT64:从 IPv6 客户端到 IPv4 服务器的网络地址和协议转换中的示例流。
此示例包含以下部分:
要求
此示例使用以下硬件和软件组件:
带有服务 DPC 的 MX 系列 3D 通用边缘路由器或带有服务 PIC 的 M 系列多服务边缘路由器
Junos OS 10.2 或更高版本
支持 DNS64 的名称服务器
此配置示例已使用列出的软件版本进行了测试,并假定适用于所有更高版本。
实现
具有服务 PIC 或服务密集端口集中器 (DPC) 的瞻博网络路由器支持有状态 NAT64。系统将来自仅支持 IPv6 主机的 IPv6 数据包定向到服务 DPC,在服务 DPC 中,数据包将根据配置转换为 IPv4。在相反路径中,系统会将 IPv4 数据包发送到服务 DPC,由其他系统处理反向转换并将相应的 IPv6 数据包发送回客户端。
配置概述和拓扑
图 1 显示了使用两个千兆以太网接口和一个服务 DPC 实现 NAT64 的 MX 系列路由器路由器 R2。连接到 IPv4 网络的接口是 ,连接到 IPv6 网络的接口是 ge-1/3/6
ge-1/3/5
。
还显示了具有 DNS64 功能的本地名称服务器,系统将其用作翻译过程的一部分。本地名称服务器配置了 /96
分配给本地 NAT64 路由器的前缀。

配置
配置有状态 NAT64 涉及以下任务:
配置 PIC 和接口
分步过程
要在路由器 R2 上配置 PIC 和接口,请执行以下操作:
chassis
编辑配置以启用第 3 层服务包。服务包及其关联的服务包 (sp-
) 接口用于在流量传递到其目标之前对其进行操作。有关配置软件包的详细信息,请参阅 Junos OS 服务接口配置指南。在
[edit chassis fpc pic adaptive-services]
层次结构级别配置服务包。此示例假定 PIC 位于 FPC 5 插槽 0 中。[edit chassis] fpc 5 { pic 0 { adaptive-services { service-package layer-3; } } }
配置
ge-1/3/5
连接到 IPv6 网络的接口:family inet
在层次结构级别包括[edit interfaces interface-name unit unit-number]
(IPv4) 和family inet6
(IPv6) 语句。在层次结构级别包括
[edit interfaces unit unit-number family inet6 address]
IPv6 地址。在和
[edit interfaces interface-name unit unit-number family service input service-set]
层次结构[edit interfaces interface-name unit unit-number family service output service-set]
级别配置服务集。[edit interfaces] ge-1/3/5 { description "IPv6-only domain"; unit 0 { family inet; family inet6 { service { input { service-set set_0; } output { service-set set_0; } } address 2001:DB8::1/64; } } }
配置
ge-1/3/6
连接到 IPv4 网络的接口:family inet
在层次结构级别包含语句[edit interfaces unit unit-number]
。在层次结构级别包括
[edit interfaces unit unit-number family inet]
IPv4 地址。[edit interfaces] ge-1/3/6 { description "Internet-IPv4 domain"; unit 0 { family inet { address 192.0.1.1/16; } } }
在此示例中,
sp-5/0/0
配置服务接口。此示例为本地主机上的任何服务配置系统日志。与此接口关联的服务包是在步骤 2 中配置的。在层次结构级别指定
[edit interfaces interface-name unit unit-number]
IPv4 和 IPv6 地址族。您在配置服务集中 配置的服务集 与此接口相关联。[edit interfaces] sp-5/0/0 { services-options { syslog { host local { services any; log-prefix XXXXXXXX; } } } unit 0 { family inet; family inet6; } }
配置 NAT64 池
分步过程
此程序用于为 NAT64 路由器(路由器 R2) /96
配置前缀,以表示 IPv6 地址空间中的 IPv4 地址。然后,寻址到包含前缀的目标 /96
地址的 IPv6 数据包将路由到 NAT 路由器的 IPv6 接口。您还可以为 NAT 池配置一个或多个 IPv4 传输地址。
此示例说明如何为 IPv4 地址配置网络地址 203.0.113.1/32
转换。它还演示了如何配置 IPv6 前缀 64:FF9B::/96
。要配置 NAT64 池,请执行以下操作:
在
[edit services nat pool pool-name]
层次结构级别为池配置 IPv4 传输地址。配置要自动分配的 NAT 池端口。[edit services nat] pool src-pool-nat64 { address 203.0.113.0/24; port automatic; }
配置 NAT 规则以转换来自 IPv6 网络的数据包。NAT 规则指定要匹配的流量以及流量与规则匹配时要执行的操作。
在此示例中,只需要一个规则即可完成地址转换。该规则选择来自 IPv6 网络上的源地址 .
2001:DB8::1/128
然后,/96
使用前缀为转换指定在步骤 1 中配置的传输地址。在层次结构级别配置
[edit services nat rule rule-name]
规则,如下所示:[edit services nat] rule nat64 { match-direction input; term t1 { from { source-address { 2001:DB8::0/96; } destination-address { 64:FF9B::/96; } } then { translated { source-pool src-pool-nat64; destination-prefix 64:FF9B::/96; translation-type { stateful-nat64; } } } } }
配置服务集
分步过程
要在路由器 R2 上为 NAT 服务配置服务集,必须将之前配置的规则 () 和服务接口 (nat64
sp-5/0/0
) 与服务集相关联。还包括系统日志配置。
要在层次结构级别配置这些设置 [edit services service-set service-set-name]
,请执行以下操作:
配置系统日志。
[edit services service-set set_0] syslog { host local { services any; log-prefix XXXSVC-SETYYY; } }
将 NAT 规则和服务接口与层次结构级别的服务集
[edit services service-set service-set-name]
相关联。[edit services ] service-set set_0 { nat-rules nat64; interface-service { service-interface sp-5/0/0; } }
在路由器 R2 上,提交配置。
user@R2> commit check configuration check succeeds user@R2> commit
验证 NAT64 操作
您可以使用以下功能来验证 NAT64 配置:
路由器上的 CLI 命令
测 井
您还可以使用测试工具,该工具可以使用众所周知的前缀 (64:FF9B::/96
) 作为目标,生成定向到 MX 系列路由器的 IPv6 流。
其中,您可以使用以下 CLI 命令来验证 NAT64 配置:
show services stateful-firewall flows
show services stateful-firewall conversations
show services nat pool detail
show services stateful-firewall statistics extensive
在此示例中:
在输入方向上,IPv4 目标地址是从前缀与从指定前缀长度配置的目标前缀匹配的 IPv6 目标地址获取的。
在反向或输出方向上,IPv4 地址以指定的前缀长度作为目标前缀的后缀。
要确认 NAT64 配置,请执行以下任务:
显示 NAT64 流
目的
显示并验证是否已创建 NAT64 流并包含正确的网络地址转换。
行动
要在路由器 R2 上显示 NAT64 流,请使用 show services stateful-firewall flows
命令。
user@R2> show services stateful-firewall flows Interface: sp-5/0/0, Service set: set_0 Flow State Dir Frm count TCP 2001:db8::4:1160 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::4:1160 -> 203.0.113.1: NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 2001:db8::2:1166 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::2:1166 -> 203.0.113.1:1420 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 192.0.2.1:80 -> 203.0.113.1:1413 Forward O 4 NAT source 192.0.2.1:80 -> 64:ff9b::c000:201:21286 NAT dest 203.0.113.1:1413 -> 2001:db8::4:1167 TCP 2001:db8::3:1123 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::3:1123 -> 203.0.113.1:1385 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 192.0.2.1:80 -> 203.0.113.1:1376 Forward O 4 NAT source 192.0.2.1:80 -> 64:ff9b::c000:201:21367 NAT dest 203.0.113.1:1376 -> 2001:db8::3:1120 TCP 2001:db8::3:1136 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::3:1136 -> 203.0.113.1:1424 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 2001:db8::4:1146 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::4:1146 -> 203.0.113.1:1350 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 2001:db8::3:1110 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::3:1110 -> 203.0.113.1:1346 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 192.0.2.1:80 -> 203.0.113.1:1428 Forward O 4 NAT source 192.0.2.1:80 -> 64:ff9b::c000:201:21367 NAT dest 203.0.113.1:1428 -> 2001:db8::4:1172 TCP 192.0.2.1:80 -> 203.0.113.1:1393 Forward O 4 NAT source 192.0.2.1:80 -> 64:ff9b::c000:201:80 NAT dest 203.0.113.1:1393 -> 2001:db8::2:1157 TCP 192.0.2.1:80 -> 203.0.113.1:1346 Forward O 4 NAT source 192.0.2.1:80 -> 64:ff9b::c000:201:21367 NAT dest 203.0.113.1:1346 -> 2001:db8::3:1110 TCP 2001:db8::2:1148 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::2:1148 -> 203.0.113.1:1366 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 192.0.2.1:80 -> 203.0.113.1:1363 Forward O 4
意义
在示例输出中,将显示输入 (I) 和输出 (O) 方向的 NAT 源和 NAT 目标地址。此输出中列出的 NAT64 流没有特定顺序。
显示 NAT64 对话
目的
显示并验证 NAT64 对话(相关流的集合)是否正确。
行动
要在路由器 R2 上显示 NAT64 对话,请使用 show services stateful-firewall conversations
命令。与不按特定顺序报告所有流的命令相反 flows
,命令的 conversations
输出对属于会话的流进行分组,以便轻松排除特定主机对之间的通信故障。
user@R2> show services stateful-firewall conversations Interface: sp-5/0/0, Service set: set_0 Conversation: ALG protocol: tcp Number of initiators: 1, Number of responders: 1 Flow State Dir Frm count TCP 2001:db8::3:1188 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::3:1188 -> 203.0.113.1:1580 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 192.0.2.1:80 -> 203.0.113.1:1580 Forward O 4 NAT source 192.0.2.1:80 -> 64:ff9b::c000:201:21303 NAT dest 203.0.113.1:1580 -> 2001:db8::3:1188 Conversation: ALG protocol: tcp Number of initiators: 1, Number of responders: 1 Flow State Dir Frm count TCP 2001:db8::4:1213 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::4:1213 -> 203.0.113.1:1551 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 192.0.2.1:80 -> 203.0.113.1:1551 Forward O 4 NAT source 192.0.2.1:80 -> 64:ff9b::c000:201:21367 NAT dest 203.0.113.1:1551 -> 2001:db8::4:1213 Conversation: ALG protocol: tcp Number of initiators: 1, Number of responders: 1 Flow State Dir Frm count TCP 2001:db8::3:1169 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::3:1169 -> 203.0.113.1:1523 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 192.0.2.1:80 -> 203.0.113.1:1523 Forward O 4 NAT source 192.0.2.1:80 -> 64:ff9b::c000:201:80 NAT dest 203.0.113.1:1523 -> 2001:db8::3:1169 Conversation: ALG protocol: tcp Number of initiators: 1, Number of responders: 1 Flow State Dir Frm count TCP 2001:db8::2:1233 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::2:1233 -> 203.0.113.1:1621 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 192.0.2.1:80 -> 203.0.113.1:1621 Forward O 4 NAT source 192.0.2.1:80 -> 64:ff9b::c000:201:21367 NAT dest 203.0.113.1:1621 -> 2001:db8::2:1233 Conversation: ALG protocol: tcp Number of initiators: 1, Number of responders: 1 Flow State Dir Frm count TCP 2001:db8::2:1218 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::2:1218 -> 203.0.113.1:1575 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 192.0.2.1:80 -> 203.0.113.1:1575 Forward O 4 NAT source 192.0.2.1:80 -> 64:ff9b::c000:201:21367 NAT dest 203.0.113.1:1575 -> 2001:db8::2:1218 Conversation: ALG protocol: tcp Number of initiators: 1, Number of responders: 1 Flow State Dir Frm count TCP 2001:db8::4:1220 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::4:1220 -> 203.0.113.1:1572 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 192.0.2.1:80 -> 203.0.113.1:1572 Forward O 4 NAT source 192.0.2.1:80 -> 64:ff9b::c000:201:21367 NAT dest 203.0.113.1:1572 -> 2001:db8::4:1220 Conversation: ALG protocol: tcp Number of initiators: 1, Number of responders: 1 Flow State Dir Frm count TCP 2001:db8::2:1211 ->64:ff9b::c000:201:80 Forward I 5 NAT source 2001:db8::2:1211 -> 203.0.113.1:1554 NAT dest 64:ff9b::c000:201:80 -> 192.0.2.1:80 TCP 192.0.2.1:80 -> 203.0.113.1:1554 Forward O 4 NAT source 192.0.2.1:80 -> 64:ff9b::c000:201:21286 NAT dest 203.0.113.1:1554 -> 2001:db8::2:1211
意义
示例输出显示特定主机对之间的 NAT64 对话。
显示与全局 NAT 池相关的统计信息
目的
显示并验证与池使用情况相关的全局 NAT 统计信息。
行动
要在路由器 R2 上显示与全局 NAT 池相关的统计信息,请使用show services nat pool detail
命令。通常将此命令与“显示 NAT64 流”中使用的命令结合使用show services stateful-firewall flows
,后者显示翻译的源和输出。
user@R2> show services nat pool detail Interface: sp-5/0/0, Service set: set_0 NAT pool: src-pool-nat64, Translation type: dynamic Address range: 203.0.113.1-203.0.113.254 Port range: 512-65535, Ports in use: 102, Out of port errors: 0, Max ports used: 192 NAT pool: _jpool_nat64_t1_, Translation type: static Address range: 0.100.255.155-0.100.255.154
意义
示例输出显示有关 NAT64 池的相关统计信息和信息。
检查系统日志
目的
检查系统日志,因为系统会在创建和删除会话时创建详细的日志。
行动
根据示例设置创建会话时,将提供两个日志。第一个日志指示数据包匹配的规则和期限。第二个日志指示流创建。
user@R2> show log messages Oct 21 22:14:14 H1 (FPC Slot 5, PIC Slot 0) XXXSVC-SETYYY{set_0}[FWNAT]: ASP_SFW_CREATE_ACCEPT_FLOW: proto 6 (TCP) application: any, ge-1/3/5.0:2001:db8:0:0:0:0:0:1:1025 -> 64:ff9b:0:0:0:0:c000:201:80, creating forward or watch flow ; source address and port translate to 203.0.113.1:1593 ; destination address translates to 192.0.2.1
会话结束后,除了删除流日志外,系统还会创建一个日志,指示 NAT 池地址和端口释放,如下所示:
Oct 21 22:14:17 H1 (FPC Slot 5, PIC Slot 0) XXXSVC-SETYYY{set_0}[FWNAT]:ASP_NAT_POOL_RELEASE: natpool release 203.0.113.1:1593[1] Oct 21 22:14:17 H1 (FPC Slot 5, PIC Slot 0) XXXSVC-SETYYY{set_0}[FWNAT]: ASP_SFW_DELETE_FLOW: proto 6 (TCP) application: any, (null)(null)2001:db8:0:0:0:0:0:1:1025 -> 64:ff9b:0:0:0:0:c000:201:80, deleting forward or watch flow ; source address and port translate to 203.0.113.1:1593 ; destination address translates to 192.0.2.1
意义
示例输出显示在创建会话和会话结束时可以看到的日志消息。
验证是否进行了 NAT64 对话
目的
验证 NAT64 对话是否正在进行。目前对应用层网关 (ALG) 的支持仅限于 ICMP 和 traceroute。
行动
要验证路由器 R2 上是否正在进行 NAT64 对话,请使用 show services stateful-firewall conversations
命令。以下是 ICMP 回显测试 (ping
) 的示例输出。
user@R2> show services stateful-firewall conversations Interface: sp-5/0/0, Service set: set_0 Conversation: ALG protocol: icmpv6 Number of initiators: 1, Number of responders: 1 Flow State Dir Frm count ICMPV6 2001:db8::2 ->64:ff9b::c000:201 Watch I 21 NAT source 2001:db8::2 -> 203.0.113.1 NAT dest 64:ff9b::c000:201 -> 192.0.2.1 ICMP 192.0.2.1 -> 203.0.113.1 Watch O 21 NAT source 192.0.2.1 -> 64:ff9b::c000:201 NAT dest 203.0.113.1 -> 2001:db8::2
意义
示例输出显示 ICMP 回显测试的结果。