Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

网络地址端口转换

为网络地址端口转换 (NAPT) 配置地址池概述

借助网络地址端口转换 (NAPT),您可以配置多达 32 个地址范围,每个地址范围最多 65,536 个。

port 语句为已转换的地址指定端口分配。要配置端口的自动分配,请在 port automatic 层级添加语句 [edit services nat pool nat-pool-name] 。默认情况下,会按顺序分配端口。

从 Junos OS 14.2 版开始,您可以在层次结构级别包含 sequential 选项与 port automatic 语句 [edit services nat pool nat-pool-name] ,以便从指定范围内的端口进行有序分配。要配置特定的端口号范围,请在 port range low minimum-value high maximum-value 层级添加语句 [edit services nat pool nat-pool-name]

注意:

当池中 99% 的可用端口用于 napt-44 时,该 NAT 池上不允许有新流。

从 Junos OS 14.2 版开始, auto 选项将隐藏并弃用,并且仅出于向后兼容性而保留。它可能会在未来的软件版本中完全删除。

Junos OS 提供了多种端口分配方案:

NAPT 的轮询分配

要为 NAT 池配置轮询分配,请在层级添加地址分配轮询配置语句[edit services nat pool pool-name]。使用轮询分配时,将从一个范围内的每个地址分配一个端口,然后为下一个范围内的每个地址重复此过程。为最后一个范围中的所有地址分配端口后,分配过程会封装下一个未使用的端口,并为第一个范围内的地址分配下一个未使用的端口。

  • 第一个连接分配给地址:端口 100.0.0.1:3333。

  • 第二个连接分配给地址:端口 100.0.0.2:3333。

  • 第三个连接分配给地址:端口 100.0.0.3:3333。

  • 第四个连接分配给地址:端口 100.0.0.4:3333。

  • 第五个连接分配给地址:端口 100.0.0.5:3333。

  • 第六个连接分配给地址:端口 100.0.0.6:3333。

  • 第七个连接分配给地址:端口 100.0.0.7:3333。

  • 第八个连接分配给地址:端口 100.0.0.8:3333。

  • 第九个连接分配给地址:端口 100.0.0.9:3333。

  • 第十个连接分配给地址:端口 100.0.0.10:3333。

  • 第十一个连接分配给地址:端口 100.0.0.11:3333。

  • 第十二个连接分配给地址:端口 100.0.0.12:3333。

  • 发生封装,第 13 个连接被分配给地址:端口 100.0.0.1:3334。

NAPT 的顺序分配

使用顺序分配时,只有当某个地址的所有可用端口耗尽时,NAT 池中的下一个可用地址才会被选中。

只能为 MS-DPC 和 MS-100、MS-400 和 MS-500 多服务 PICS 配置顺序分配。MS-MPC 和 MS-MIC 卡仅使用轮循分配方法。

注意:
  • 这种传统实施方案提供了向后兼容性,不再推荐使用。

以下配置示例中称为 napt 的 NAT 池使用顺序实施:

在此示例中,从第一个地址范围中的第一个地址开始分配端口,然后从此地址继续分配,直到使用所有可用端口。使用所有可用端口后,将分配下一个地址(在同一地址范围或以下地址范围内),并根据需要选择其所有端口。对于示例 napt 池,仅在使用第一个范围中所有地址的所有端口时,才会分配端口 100.0.0.4:3333 的元组地址。

  • 第一个连接分配给地址:端口 100.0.0.1:3333。

  • 第二个连接分配给地址:端口 100.0.0.1:3334。

  • 第三个连接分配给地址:端口 100.0.0.2:3333。

  • 第四个连接分配给地址:端口 100.0.0.2:3334 等。

为 NAPT 保留奇偶校验和保留范围

NAPT 提供奇偶校验和保留范围选项,MS-DPC 以及 MS-100、MS-400 和 MS-500 多服务 PICS 支持。对 MS-MPC 和 MS-MIC 的支持从 Junos OS 15.1R1 版开始。NAPT 提供以下选项:

  • 保留奇偶校验 — 使用 preserve-parity 命令为源端口偶数的数据包分配偶数端口,为源端口奇数的数据包分配奇数端口。

  • 保留范围 — 如果原始数据包包含一个位于保留范围内的源端口,请使用 preserve-range 命令分配端口范围从 0 到 1023。这适用于控制会话,而非数据会话。

NAPT 的地址池和端点无关映射

地址池

地址池或地址池配对 (APP) 可确保为源自同一内部主机的所有会话分配相同的外部 IP 地址。从池分配外部 IP 地址时,您可以使用此功能。此选项不会影响端口利用率

地址池解决了应用程序打开多个连接的问题。例如,当会话初始化协议 (SIP) 客户端发送实时传输协议 (RTP) 和实时控制协议 (RTCP) 数据包时,SIP 服务器通常要求它们来自同一 IP 地址,即使它们一直受 NAT 的约束。如果 RTP 和 RTCP IP 地址不同,接收端点可能会丢弃数据包。协商端口(假设地址稳定性)的任何点对点 (P2P) 协议都受益于地址池配对。

以下是地址池的用例:

  • 提供即时消息服务的站点要求聊天及其控制会话来自同一公共源地址。当用户登录聊天时,控制会话会对用户进行身份验证。当用户开始聊天会话时,将开始不同的会话。如果聊天会话来自与身份验证会话不同的源地址,则即时消息服务器会拒绝该聊天会话,因为它来自未经授权的地址。

  • 某些网站(如网上银行网站)要求来自给定主机的所有连接均来自同一 IP 地址。

注意:

从 Junos OS 14.1 版开始,当停用包含该服务集地址池配对 (APP) 的服务集时,PIC 控制台上将显示消息,并清除该服务集的映射。服务集删除开始时会触发这些消息,并在删除服务集完成后再次生成这些消息。删除开始和结束时将显示以下示例消息:

  • 11 月 15 08:33:13.974 LOG:严重] SVC-SET ss1 (iid 5) 停用/删除:NAT 映射和流删除已启动

  • 11 月 15 08:33:14.674 LOG:严重] SVC-SET ss1 (iid 5) 停用/删除:NAT 映射和流删除已完成

在服务集中包含大量 APP 的扩展环境中,会生成大量消息,此过程需要一定时间。建议等到控制台消息指示服务集删除已完成,然后再次重新激活服务集。

与端点无关的映射和端点无关过滤

如果给定主机的所有连接使用相同的内部端口,则端点无关映射 (EIM) 可确保为来自给定主机的所有连接分配相同的外部地址 端口。这意味着,如果它们来自不同的源端口,您可以自由分配不同的外部地址。

EIM 和 APP 的不同之处在于:

  • APP 可确保分配相同的外部 IP 地址。

  • EIM 提供稳定的外部 IP 地址和端口(一段时间),外部主机可连接到该端口。与端点无关的过滤 (EIF) 控制哪些外部主机可以连接到内部主机。

注意:

从 Junos OS 14.1 版开始,当停用包含该服务集的端点无关映射 (EIM) 映射的服务集时,PIC 控制台上将显示消息,并清除该服务集的映射。服务集删除开始时会触发这些消息,并在删除服务集完成后再次生成这些消息。删除开始和结束时将显示以下示例消息:

  • 11 月 15 08:33:13.974 LOG:严重] SVC-SET ss1 (iid 5) 停用/删除:NAT 映射和流删除已启动

  • 11 月 15 08:33:14.674 LOG:严重] SVC-SET ss1 (iid 5) 停用/删除:NAT 映射和流删除已完成

在服务集中包含大量 EIM 映射的扩展环境中,会生成大量消息,此过程需要一定时间。建议等到控制台消息指示服务集删除已完成,然后再次重新激活服务集。

NAPT 的安全端口块分配

具有 MS-DPC 的 MX 系列路由器以及带有 MS-100、MS-400 和 MS-500 多服务 PICS 的 M 系列路由器支持端口块分配。从 Junos OS 14.2R2 版开始,具有 MS-MPC 和 MS-MIC 的 MX 系列路由器支持端口块分配。

运营商使用 IP 地址(RADIUS 或 DHCP) 日志跟踪订阅者。如果他们使用 NAPT,则 IP 地址将由多个订阅者共享,运营商必须跟踪作为 NAT 日志一部分的 IP 地址和端口。由于端口的使用率和重用率很高,因此由于消息数量庞大,难以存档和关联,因此很难使用日志跟踪订阅者。通过启用块中的端口分配,端口块分配可以显著减少日志数量,从而更轻松地跟踪订阅者。

NAPT 的安全端口块分配

安全端口块分配可用于转换类型和napt-44stateful-nat64

分配端口块时,最近分配的块是当前活动块。从活动块中提供新的 NAT 端口请求。端口是从当前活动块随机分配的。

配置安全端口块分配时,可以指定以下内容:

  • block-size

  • max-blocks-per-address

  • active-block-timeout

端口块分配的临时日志记录

通过端口块分配,我们为每个分配给订阅者的端口集生成一个系统日志。这些日志是基于 UDP 的,可能会丢失在网络中,特别是对于长期运行的流量。临时日志记录会触发,为至少在块的一个端口上具有流量的活动块按配置的间隔重新发送上述日志。

通过在 for sp-interfaces 下services-options包含pba-interim-logging-interval语句来激活临时日志记录。

NAPT 实施方法比较

表 1 提供了可用 NAPT 实施方法的功能比较。

表 1:NAPT 实施方法的比较

特性/功能

动态端口分配

安全端口块分配

确定性端口块分配

每 IP 用户数

安全风险

日志利用率

无(无需日志)

安全风险降低

随机分配

主动块超时 功能

不适用

增加每 IP 用户数

不适用

配置多个较小的端口块,以最大化用户/公共 IP

基于算法的端口分配

在 IPv4 网络中配置 NAPT

网络地址端口转换 (NAPT) 是一种将许多网络地址及其 TCP/UDP 端口转换为单个网络地址及其 TCP/UDP 端口的方法。此转换可在 IPv4 和 IPv6 网络中配置。本节介绍在 IPv4 网络中配置 NAPT 的步骤。

要配置 NAPT,必须在层级配置一个规则 [edit services nat] ,以便动态转换源 IPv4 地址。

在 IPv4 网络中配置 NAPT:

  1. 在配置模式下,转到 [edit services] 层次结构级别。
  2. 配置服务集和 NAT 规则。

    在以下示例中,服务集的名称为 s1 ,NAT 规则的名称为 rule-napt-44

  3. 转到 [interface-service] 服务集的层次结构级别。
  4. 配置服务接口。

    在以下示例中,服务接口的名称为 ms-0/1/0

    注意:

    如果路由器中不存在服务接口,或者指定的接口不起作用,则以下命令可能会导致错误。

  5. 转到 [edit services nat] 层次结构级别。从服务层次结构的顶部发出命令,或使用 top 关键字。
  6. 使用地址配置 NAT 池。

    在以下示例中,池的名称为 napt-pool ,地址为 10.10.10.0

  7. 配置端口。

    在以下示例中,将端口类型选为 连续auto

    注意:

    从 Junos OS 14.2 版开始,sequential会引入选项,以便您可以配置端口的顺序分配。sequential层次结构级别上port automatic语句[edit services nat pool nat-pool-name]提供的和random-allocation选项相互排斥。您可以包括sequential连续分配选项和random-allocation端口随机委托选项。默认情况下,如果仅在层级包含语句[edit services nat pool nat-pool- name]port automatic将按顺序分配端口。在 Junos OS 14.2 及更高版本中,选项auto将隐藏和弃用,并且仅出于向后兼容性而保留。它可能会在未来的软件版本中完全删除。

  8. 配置规则和匹配方向。

    在以下示例中,规则的名称为 rule-napt-44,输入匹配方向。

  9. 配置术语、已转换流量的操作和转换类型。

    在以下示例中,术语的名称为 t1转换转换流量的操作,源池的名称为 napt-pool,转换类型为 napt-44

  10. 转到 [edit services adaptive-services-pics] 层次结构级别。在命令中, top 关键字可确保命令从层次结构的顶部运行。
  11. 配置追踪选项。

    在以下示例中,跟踪参数配置为 all

  12. 使用 show 层级的 [edit services] 命令验证配置。

以下示例将转换类型配置为 napt-44

动态地址转换到具有回退到 NAT 的小池

以下配置显示了从大型前缀动态地址转换为小型池,将 /24 子网转换为包含 10 个地址的池。当源池 (src-pool) 中的地址耗尽时,NAPT 过载池 (pat-pool) 将提供 NAT。

使用小型池实现动态地址转换

以下配置显示了从大型前缀动态地址转换为小型池,将 /24 子网转换为包含 10 个地址的池。来自前 10 个主机会话的会话将按先到先得的原则从池中分配地址,并且会拒绝任何其他请求。分配了 NAT 的每个主机都可以参与多个会话。

在 IPv6 网络中配置 NAPT

网络地址端口转换 (NAPT) 是一种将许多网络地址及其 TCP/UDP 端口转换为单个网络地址及其 TCP/UDP 端口的方法。此转换可在 IPv4 和 IPv6 网络中配置。本节介绍在 IPv6 网络中配置 NAPT 的步骤。如果您使用 MS-MPC 或 MS-MIC,则不支持在 IPv6 网络中配置 NAPT。有关在 IPv4 网络中配置 NAPT 的信息,请参阅 在 IPv4 网络中配置 NAPT

要配置 NAPT,必须在层次结构级别配置一个规则 [edit services nat] ,以便动态转换源 IPv6 地址。

在 IPv6 网络中配置 NAPT:

  1. 在配置模式下,转到 [edit services nat] 层次结构级别。
  2. 定义必须用于动态转换的 IPv6 源地址池。对于 NAPT,在配置源池时还要指定端口号。

    例如:

  3. 定义用于转换源地址的 NAT 规则。为此,请将 match-direction 规则语句设置为 input。此外,定义一个术语,用于 napt-66 转换上一步中定义的池地址的转换类型。请注意, napt-66 仅在 MS-DPC、MS-100、MS-400 和 MS-500 线卡上支持转换类型。

    例如:

  4. 输入命令以 up 导航至 [edit services] 层次结构级别。
  5. 定义服务集以指定必须使用的服务接口,并参考为 NAPT 转换实施的 NAT 规则。

    例如:

  6. 为自适应服务 PIC 定义追踪选项。

    例如:

以下示例为 IPv6 网络配置动态源(地址和端口)转换或 NAPT。

示例:配置带端口转换的 NAT

此示例说明如何配置带有端口转换的 NAT。

要求

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

  • 带有服务 DPC 的 MX 系列 5G 通用路由平台或带有服务 PIC 的 M 系列多服务边缘路由器

  • 域名服务器 (DNS)

  • Junos OS 11.4 或更高版本

概述

此示例显示了完整的 CGN NAT44 配置和高级选项。

配置带有端口转换的 NAT

程序

逐步过程

要配置服务集:

  1. 配置服务集。

  2. 在配置模式下,转到 [edit services nat] 层次结构级别。

  3. 定义必须用于动态转换的源地址池。对于 NAPT,在配置源池时还要指定端口号。

    例如:

  4. 指定要使用的 NAT 规则。

  5. 定义用于转换源地址的 NAT 规则。为此,请将 match-direction 规则语句设置为 input。此外,定义一个术语,用于 napt-44 转换上一步中定义的池地址的转换类型。

    例如:

  6. 指定接口服务。

结果

示例:具有接口服务集的 MS-MPC 上的 NAPT 配置

此示例说明如何使用多服务模块化端口集中器 (MS-MPC) 作为服务接口卡在 MX 系列路由器上配置端口转换 (NAPT) 的网络地址转换。

要求

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

  • MX 系列路由器

  • 多服务模块化端口集中器 (MS-MPC)

  • Junos OS 13.2R1 或更高版本

概述

服务提供商已选择 MS-MPC 作为提供 NAT 服务的平台,以适应新用户。

配置

要使用 MS-MPC 作为服务接口卡配置 NAPT44,请执行以下操作:

CLI 快速配置

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

配置接口

逐步过程

配置 NAT 处理所需的接口。您需要以下接口:

  • 面向客户的接口,可处理往返客户的流量。

  • 面向互联网的界面。

  • 服务接口,向面向客户的接口提供 NAT 和有状态防火墙服务

  1. 为面向客户的接口配置接口。

  2. 为面向互联网的接口配置接口。

  3. 配置将服务集连接到面向客户的接口的服务集的接口。在我们的示例中,接口位于 MS-MPC 上。

配置一组可接受应用程序流量的应用程序

逐步过程

识别传入流量的可接受应用程序。

  1. 指定包含可接受的传入应用程序流量的应用程序集。

结果

配置有状态防火墙规则

逐步过程

配置将接受所有传入流量的状态防火墙规则。

  1. 为所有输入和输出指定防火墙匹配

  2. 识别来自面向客户的接口的源地址和可接受的应用程序流量。

结果

配置 NAT 池和规则

逐步过程

通过自动端口分配配置用于地址转换的 NAT 池和规则。

  1. 使用自动端口分配配置 NAT 池。

  2. 配置使用定义的 NAT 池应用转换类型的 napt-44 NAT 规则。

结果

配置服务集

逐步过程

配置接口类型服务集。

  1. 指定应用于客户流量的 NAT 和有状态防火墙规则。

  2. 指定将规则应用于客户流量的服务接口。

结果
版本历史记录表
释放
描述
14.2
从 Junos OS 14.2 版开始,您可以在层次结构级别包含 sequential 选项与 port automatic 语句 [edit services nat pool nat-pool-name] ,以便从指定范围内的端口进行有序分配。
14.2
从 Junos OS 14.2 版开始, auto 选项将隐藏并弃用,并且仅出于向后兼容性而保留。
14.2
从 Junos OS 14.2 版开始, sequential 会引入选项,以便您可以配置端口的顺序分配。
14.1
从 Junos OS 14.1 版开始,当停用包含该服务集地址池配对 (APP) 的服务集时,PIC 控制台上将显示消息,并清除该服务集的映射。
14.1
从 Junos OS 14.1 版开始,当停用包含该服务集的端点无关映射 (EIM) 映射的服务集时,PIC 控制台上将显示消息,并清除该服务集的映射。