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 版开始,您可以在层次结构级别将[edit services nat pool nat-pool-name]选项包含在语句中port automaticsequential以便按顺序分配指定范围内的端口。要配置特定范围的端口号,请在层次结构级别包含port range low minimum-value high maximum-value语句[edit services nat pool nat-pool-name]

注意:

当 napt-44 池中可用端口总数的 99% 时,该 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。

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

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

  • 将发生环绕,并将第十三个连接分配给地址:端口 100.0.0.1:3334。

NAPT 的顺序分配

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

只能为 MS-DPC 以及 MS-100、MS-400 和 MS-500 多服务 PIC 配置顺序分配。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 多服务 PIC 上受支持。对 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 日志:严重] SVC 集 ss1 (iid 5) 停用/删除:已启动 NAT 映射和流删除

  • 11 月 15 日 08:33:14.674 日志:严重] SVC 集 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 日志:严重] SVC 集 ss1 (iid 5) 停用/删除:已启动 NAT 映射和流删除

  • 11 月 15 日 08:33:14.674 日志:严重] SVC 集 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 地址由多个订阅者共享,运营商必须跟踪 IP 地址和端口,这是 NAT 日志的一部分。由于端口的使用和重用速率非常高,因此由于大量消息难以存档和关联,因此使用日志跟踪订阅者变得困难。通过启用按块分配端口,端口块分配可以显著减少日志数量,从而更轻松地跟踪订阅者。

NAPT 的安全端口块分配

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

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

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

  • block-size

  • max-blocks-per-address

  • active-block-timeout

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

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

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

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语句,则会按顺序分配端口。该auto选项处于隐藏状态,在 Junos OS 14.2 版及更高版本中已弃用,保留此选项只是为了向后兼容。在将来的软件版本中可能会将其完全删除。

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

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

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

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

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

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

  12. 在层次结构级别使用[edit services]命令验证show配置。

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

将动态地址转换为小型池,并回退到 NAT

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

使用小型池进行动态地址转换

以下配置显示了从大型前缀到小型池的动态地址转换,将 /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 规则。为此,请将规则input的语句设置为 match-direction 。此外,定义一个术语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 规则。为此,请将规则input的语句设置为 match-direction 。此外,定义一个术语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 版开始,您可以在层次结构级别将 [edit services nat pool nat-pool-name]选项包含在语句中 port automaticsequential以便按顺序分配指定范围内的端口。
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 控制台上显示消息,并清除该服务集的映射。