网络地址转换

以下主题介绍网络地址转换 (NAT) 以及在 威胁防御设备上配置网络地址转换的方法。

为何使用 NAT?

IP 网络中的每台计算机和设备都分配了标识主机的唯一 IP 地址。因为缺乏公用 IPv4 地址,所以这些 IP 地址中的大多数都是专用地址,在专用公司网络以外的任何地方都不可路由。RFC 1918 定义可以在内部使用但不应通告的专用 IP 地址:

  • 10.0.0.0 到 10.255.255.255

  • 172.16.0.0 至 172.31.255.255

  • 192.168.0.0 到 192.168.255.255

NAT 的主要功能之一是使专用 IP 网络可以连接到互联网。NAT 用公用 IP 地址替换专用 IP 地址,将内部专用网络中的专用地址转换为可在公用互联网上使用的合法可路由地址。NAT 以此方式保存公用地址,因为它可配置为至少仅将整个网络的一个公用地址向外界通告。

NAT 的其他功能包括:

  • 安全 - 隐藏内部 IP 地址可以阻止直接攻击。

  • IP 路由解决方案 - 使用 NAT 时不会出现重叠 IP 地址。

  • 灵活性 - 可以更改内部 IP 寻址方案,而不影响外部的可用公用地址;例如,对于可以访问互联网的服务器,可以维护供互联网使用的固定 IP 地址,但在内部,可以更改服务器地址。

  • 在 IPv4 和 IPv6 之间转换(仅路由模式)- 如果想将 IPv6 网络连接到 IPv4 网络,可以利用 NAT 在两种类型的地址之间转换。



不需要 NAT。如果不为一组给定流量配置 NAT,将不转换这些流量,但会正常应用所有安全策略。


NAT 基础知识

以下主题介绍一些 NAT 基础知识。

NAT 术语

本文档使用以下术语:

  • 实际地址/主机/网络/接口 - 实际地址是指在主机上定义的转换前地址。在内部网络访问外部网络时,要转换内部网络的典型 NAT 场景中,内部网络会成为“实际”网络。请注意,您可以转换连接到设备的任何网络,而不是只在网络内部转换。因此,如果配置 NAT 以转换外部地址,“实际”可以是指访问内部网络时的外部网络。

  • 映射地址/主机/网络/接口 - 映射地址是指实际地址转换而成的地址。在内部网络访问外部网络时,要转换内部网络的典型 NAT 场景中,外部网络会成为“映射”网络。



    在地址转换过程中,不会转换为设备接口配置的 IP 地址。


  • 双向发起 - 静态 NAT 允许双向发起连接,意味着可发起到主机的连接和从主机发起连接。

  • 源 NAT 和目的 NAT - 对于任何给定数据包,将源 IP 地址和目标 IP 地址与 NAT 规则进行比较,转换/不转换一个或两个地址。对于静态 NAT,规则是双向的,因此,请注意,这整个指南中命令和说明中使用的“源”和“目标”,即便是给定的连接,也可能源自“目标”地址。

NAT 类型

可以使用以下方法实施 NAT:

  • 动态 NAT - 按先到先得的方式,将一组实际 IP 地址映射到一组映射 IP 地址(通常较小)。仅实际主机可以发起流量。请参阅动态 NAT

  • 动态端口地址转换 (PAT) - 使用 IP 地址的唯一源端口,将一组实际 IP 地址映射到单一 IP 地址。请参阅动态 PAT

  • 静态 NAT - 实际 IP 地址和映射 IP 地址之间的一致映射。允许发起双向流量。请参阅静态 NAT

  • 身份 NAT - 系统将实际地址静态转换为其本身,基本绕过 NAT。当您想转换一大组地址,但又想豁免一小部分地址时,可能就要这样配置 NAT。请参阅身份 NAT

路由和透明防火墙模式下的 NAT

可以在路由和透明防火墙模式下配置 NAT。您不能为在内联、内联分流或被动模式下工作的接口配置 NAT。以下部分介绍每种防火墙模式的典型用法。

路由模式下的 NAT

下图显示路由模式下的一个典型 NAT 示例,专用网络位于内部。

图 1. NAT 示例:路由模式
  1. 当位于 10.1.2.27 的内部主机向 Web 服务器发送数据包时,数据包的实际源地址 10.1.2.27 会转换为映射地址 209.165.201.10。

  2. 当服务器响应时,它会将响应发送到映射地址 209.165.201.10,威胁防御设备 接收数据包,因为 威胁防御设备 执行代理 ARP 以认领数据包。

  3. 接下来,威胁防御设备 变更从映射地址 209.165.201.10 回到实际地址 10.1.2.27 的转换,然后再发送到主机。

透明模式下的 NAT

在透明模式下使用 NAT 可以消除上游或下游路由器为其网络执行 NAT 的需求。

透明模式下的 NAT具有以下要求和局限性:

  • 当映射地址是桥接组成员接口时,不能配置接口 PAT,因为没有 IP 地址连接到该接口。

  • 不支持 ARP 检测。此外,如果由于某种原因,威胁防御 一端的主机向 威胁防御 另一端的主机发送 ARP 请求,而且发起主机实际地址被映射到同一子网的不同地址,则实际地址在 ARP 请求中依然可见。

  • 不支持在 IPv4 和 IPv6 网络之间进行转换。支持在两个 IPv6 网络之间或两个 IPv4 网络之间进行转换。

下图显示透明模式下的典型 NAT 场景,内部接口和外部接口上的网络相同。在此场景中,透明防火墙执行 NAT 服务,因此上游路由器不必执行 NAT。

图 2. NAT 示例:透明模式

威胁防御透明模式中的 NAT。
  1. 当位于 10.1.1.75 的内部主机将数据包发送到 Web 服务器时,数据包的实际源地址 10.1.1.75 被更改为映射地址 209.165.201.15。

  2. 当服务器响应时,它将响应发送到映射地址 209.165.201.15,威胁防御 接收数据包,因为上游路由器将此映射网络包含在定向到 威胁防御 管理 IP 地址的静态路由中。

  3. 然后,威胁防御 取消映射地址 209.165.201.15 回到实际地址 10.1.1.1.75 的转换。因为实际地址是直接连接的,所以 威胁防御 将实际地址直接发送到主机。

  4. 对于主机 192.168.1.2,发生相同流程,但返回流量除外,威胁防御 在其路由表中查询路由,根据 192.168.1.0/24 的 威胁防御 静态路由,将数据包发送到位于 10.1.1.3 的下游路由器。

自动 NAT手动 NAT

可以通过以下两种方法实施地址转换:自动 NAT手动 NAT

我们建议使用自动 NAT,除非您需要手动 NAT 提供的额外功能。自动 NAT 更容易配置,而且可能对应用(例如 IP 语音 [VoIP])更加可靠。(对于 VoIP,对不属于规则中使用的任何对象的间接地址进行转换可能会失败。)

自动 NAT

配置为网络对象参数的所有 NAT 规则都被视为自动 NAT 规则。这是一种为网络对象配置 NAT 的快捷方法。但是,您无法为对象组创建这些规则。

尽管这些规则配置为对象的一部分,但是您通过对象管理器无法看到对象定义中的 NAT 配置。

当数据包进入接口时,系统会根据自动 NAT 规则来检查源和目标 IP 地址。如果进行独立匹配,可根据独立规则转换数据包中的源地址和目标地址。这些规则互不牵连,可以根据流量使用不同的规则组合。

因为规则从未配对,所以不能指定源 A/目的 A 应当有不同于源 A/目的 B 的转换。手动 NAT 用于实现这样的功能:您可以识别单个规则中的源和目标地址。

手动 NAT

手动 NAT 供您在单个规则中同时标识源和目标地址。同时指定源和目标地址,可以让您指定源 A/目的 A 有不同于源 A/目的 B 的转换。



对于静态 NAT,规则是双向的,因此,请注意,这整个指南中命令和说明中使用的“源”和“目标”,即便是给定的连接,也可能源自“目标”地址。例如,如果配置支持端口地址转换的静态 NAT,然后将源地址指定为某台 Telnet 服务器,并且希望进入该 Telnet 服务器的所有流量都将端口从 2323 转换为 23,那么您就必须指定要转换的端口(实际端口:23,映射端口:2323)。必须指定源端口是因为您已将 Telnet 服务器地址指定为源地址。


目标地址是可选的。如果指定目标地址,可以将其映射到其本身(身份 NAT),也可以将其映射到不同的地址。目的映射始终是静态映射。

比较自动 NAT手动 NAT

这两类 NAT 之间的主要差异是:

  • 定义实际地址的方法。

    • 自动 NAT - NAT 规则成为网络对象的参数。网络对象 IP 地址用作原始(实际)地址。

    • 手动 NAT- 标识实际地址和映射地址的网络对象或网络对象组。在这种情况下,NAT 不是网络对象的参数;网络对象或组是 NAT 配置的参数。能够使用实际地址的网络对象意味着手动 NAT 更具可扩展性。

  • 实施源和目标 NAT 的方法。

    • 自动 NAT- 每个规则都可应用到数据包的源或目标。因此,可能使用两条规则,一条用于源 IP 地址,一条用于目标 IP 地址。这两条规则不能绑在一起对源/目的组合进行特定转换。

    • 手动 NAT- 单一规则可以同时转换源和目标。数据包仅匹配一条规则,且不再检查其他规则。即使您不配置可选目标地址,匹配的数据包仍仅匹配一个 手动 NAT 规则。源和目的绑在一起,使您可以根据源/目的组合进行不同的转换。例如,源 A/目的 A 可以有不同于源 A/目的 B 的转换。

  • NAT 规则顺序。

    • 自动 NAT- 在 NAT 表中自动排序。

    • 手动 NAT - 在 NAT 表中手动排序(在自动 NAT 规则之前或之后)。

NAT 规则顺序

自动 NAT手动 NAT 规则存储在分为三个部分的单个表中。首先应用第一部分规则,其次是第二部分,最后是第三部分,直到找到匹配项为止。例如,如果在第一部分找到匹配项,则不评估第二部分和第三部分。下表显示每个部分的规则顺序。



还有一个第 0 部分,其中包含系统创建供自己使用的任何 NAT 规则。这些规则优先于所有其他规则。系统会自动创建这些规则并根据需要清除 xlate。您不能在第 0 部分中添加、编辑或修改规则。


表 1. NAT 规则表

表部分

规则类型

部分中的规则顺序

第 1 部分

手动 NAT

系统按照在配置中出现的顺序应用第一个匹配的规则。因为会应用第一个匹配规则,所以必须确保具体规则位于更加通用的规则前面,否则无法按预期应用特定规则。默认情况下,手动 NAT 规则会添加到第 1 部分。

“具体规则优先”是指:

  • 静态规则应放在动态规则前面。

  • 包含目的地转换的规则应仅放在具有源转换的规则前面。

如果无法消除重叠规则(其中可能有多个规则基于源或目标地址而应用),请特别注意遵循这些建议。

第 2 部分

自动 NAT

如果在第 1 部分未找到匹配项,则会按照以下顺序应用第 2 部分的规则:

  1. 静态规则。

  2. 动态规则。

在每个规则类型中,遵循以下排序准则:

  1. 实际 IP 地址数量 - 从最小到最大。例如,带一个地址的对象将在带 10 个地址的对象之前进行评估。

  2. 如果数量相同,则按从最低到最高的顺序使用 IP 地址编号。例如,10.1.1.0 在 11.1.1.0 之前进行评估。

  3. 如果使用同一 IP 地址,则按字母数字顺序使用网络对象名称。例如,abracadabra 在 catwoman 之前进行评估。

第 3 部分

手动 NAT

如果仍未找到匹配项,则按照在配置中出现的顺序,应用第三部分规则的第一个匹配项。此部分应当包含最通用的规则。还必须确保此部分的特定规则位于通用规则之前,否则会应用通用规则。

例如,对于第二部分规则,在网络对象中定义以下 IP 地址:

  • 192.168.1.0/24(静态)

  • 192.168.1.0/24(动态)

  • 10.1.1.0/24(静态)

  • 192.168.1.1/32(静态)

  • 172.16.1.0/24(动态)(对象 def)

  • 172.16.1.0/24(动态)(对象 abc)

结果排序可能是:

  • 192.168.1.1/32(静态)

  • 10.1.1.0/24(静态)

  • 192.168.1.0/24(静态)

  • 172.16.1.0/24(动态)(对象 abc)

  • 172.16.1.0/24(动态)(对象 def)

  • 192.168.1.0/24(动态)

NAT 接口

除了网桥组成员接口,您可以将 NAT 规则配置为应用到任何接口(也就是,所有接口),或者也可以标识特定的实际接口和映射接口。还可以为实际地址指定任何接口,为映射地址指定特定接口,反之亦然。

例如,如果在多个接口上使用相同的专用地址,并且在访问外部接口时要将这些地址全部转换到同一全局池,则可能要为实际地址指定任何接口,并且为映射地址指定外部接口。

图 3. 指定任何接口


您不能为在内联、内联分流或被动模式下工作的接口配置 NAT。


NAT 免除

当互联网边缘设备在一个接口上配置了一个站点间 VPN,并且该接口也有 NAT 规则时,您必须将 VPN 流量从 NAT 规则中豁免。如果不让 VPN 流量免于 NAT 转换,流量将被丢弃或不会通过 VPN 隧道路由到远程对等体。

NAT 豁免允许您排除 NAT 规则转换的流量。使用 管理中心 VPN 向导创建基于策略的站点间 VPN 时,可以选择 NAT 免除 选项以自动创建规则(设备 > 站点间)。您可以在 NAT 策略页面(设备 > NAT > NAT 免除)中查看设备的 NAT 免除。

管理中心 支持所有基于策略的站点间 VPN 拓扑类型的 NAT 豁免。有关详细信息,请参阅配置策略型站点间 VPN

请考虑以下示例,该示例显示连接站点 A 和站点 B 的站点间 VPN 隧道。对于必须流向互联网的流量,NAT 会将私有 IP 地址转换为公共 IP 地址以访问互联网。对于必须通过 VPN 隧道的流量,必须在 VPN 向导中为设备配置 NAT 豁免。

图 4. 具有 NAT 豁免的站点间 VPN 拓扑

为 NAT 配置路由

威胁防御 设备需要成为发送到转换(映射)地址的所有数据包的目标。

在发送数据包时,设备使用目标接口(如果指定了接口)或路由表查找(如果未指定接口)来确定出口接口。对于身份 NAT,即使指定了目标接口,您也可以选择使用路由查找。

所需的路由配置类型取决于映射地址的类型,以下主题对此进行了说明。

地址与映射接口在相同的网络中

如果使用与目标(映射)接口在同一网络中的地址,威胁防御设备使用代理 ARP 应答映射地址的任何 ARP 请求,从而拦截发往映射地址的流量。此解决方案可以简化路由,因为 威胁防御设备 不必成为任何其他网络的网关。如果外部网络包含足够多的空闲地址,并且您正在使用 1:1 转换(例如动态 NAT 或静态 NAT),此解决方案是理想选择。动态 PAT 可显著增加您可以通过少量地址实现的转换数量,因此即使外部网络中的可用地址较少,依然可以使用此方法。对于 PAT,甚至可以使用映射接口的 IP 地址。



如果将映射接口配置为任何接口,而且在与其中一个映射接口相同的网络中指定映射地址,那么如果从其他接口传入对此映射地址的 ARP 请求,则需要在入口接口上为该网络手动配置 ARP 条目,并指定其 MAC 地址。通常,如果该映射接口指定任何接口,则将唯一网络用于此映射地址,避免此类情况发生。在入口接口的高级设置中配置 ARP 表。


唯一网络中的地址

如果需要比目标(映射)接口网络上提供的地址更多的地址,则可以识别其他子网中的地址。上游路由器需要对指向 威胁防御设备 的映射地址进行静态路由。

或者,对于路由模式,可以将目标网络上的任何 IP 地址用作网关,为映射地址配置 威胁防御设备 上的静态路由,然后使用路由协议重新分配路由。例如,如果您将 NAT 用于内部网络 (10.1.1.0/24),并且使用映射 IP 地址 209.165.201.5,则可以为 10.1.1.99 网关配置 209.165.201.5 255.255.255.255(主机地址)的可重新分发静态路由。

对于透明模式,如果直接连接实际主机,则将上游路由器的静态路由配置为指向 威胁防御设备:,指定桥接组 IP 地址。对于透明模式下的远程主机,在上游路由器上的静态路由中,您也可以指定下游路由器 IP 地址。

与实际地址相同的地址(身份 NAT)

身份 NAT 的默认行为已启用代理 ARP,并且与其他静态 NAT 规则匹配。如果需要,可以禁用代理 ARP。如果需要,还可以为常规静态 NAT 禁用代理 ARP,在这种情况下,需要确保上游路由器上有适当的路由。

通常,对于身份 NAT,是不需要代理 ARP 的,而且在某些情况下,会造成连接问题。例如,如果为“任何”IP 地址配置一条大体的身份 NAT 规则,则使代理 ARP 保持启用状态会给直接连接到映射接口的网络上的主机造成问题。在这种情况下,当映射网络上的主机要与同一网络上的其他主机通信时,ARP 请求中的地址匹配 NAT 规则(匹配“任何”地址)。然后,威胁防御设备 将代理地址的 ARP,即使数据包实际上不以 威胁防御设备 为目标。(请注意,即便已设置手动 NAT 规则,也会造成此问题;虽然 NAT 规则必须匹配源地址和目标地址,但仅会根据“源”地址作出代理 ARP 决定)。如果在实际主机 ARP 响应之前收到 威胁防御设备 ARP 响应,则流量会错误地发送到 威胁防御设备

NAT 策略的要求和前提条件

支持的域

任意

用户角色

管理员

访问管理员

网络管理员

NAT 准则

以下主题提供有关实施 NAT 的详细准则。

NAT 防火墙模式准则

在路由和透明防火墙模式下支持 NAT。

不过,在桥接组成员接口(属于桥接组虚拟接口 [BVI] 的接口)上配置 NAT 具有以下局限性:

  • 为网桥组的成员配置 NAT 时,需要指定成员接口。您不能为网桥组接口 (BVI) 本身配置 NAT。

  • 在桥接组成员接口之间执行 NAT 时,必须指定实际地址和映射地址。不能指定“任意”作为接口。

  • 当映射地址是桥接组成员接口时,不能配置接口 PAT,因为没有 IP 地址连接到该接口。

  • 当源接口和目标接口是同一网桥组的成员时,不能在 IPv4 和 IPv6 网络 (NAT64/46) 之间进行转换。静态 NAT/PAT 44/66、动态 NAT44/66 和动态 PAT44 是唯一允许的方法;不支持动态 PAT66。



您不能为在内联、内联分流或被动模式下工作的接口配置 NAT。


IPv6 NAT 准则

NAT 支持 IPv6,但有以下准则和限制。

  • 对于标准路由模式接口,您还可以在 IPv4 和 IPv6 之间进行转换。

  • 对于静态 NAT,可以指定一个最大 /64 的 IPv6 子网。不支持更大的子网。

  • 将 FTP 和 NAT46 配合使用时,当 IPv4 FTP 客户端连接到 IPv6 FTP 服务器时,客户端必须使用扩展被动模式 (EPSV) 或扩展端口模式 (EPRT);在使用 IPv6 时,不支持 PASV 和 PORT 命令。

IPv6 NAT 最佳实践

可以使用 NAT 在 IPv6 网络之间转换,以及在 IPv4 和 IPv6 网络之间转换(仅路由模式)。我们推荐以下最佳实践:

  • NAT66(IPv6 对 IPv6)- 我们建议使用静态 NAT。尽管可以使用 NAT 或 PAT,但由于 IPv6 地址大量供应,因此不必使用动态 NAT。如果不想允许返回流量,您可以启用单向静态 NAT 规则(仅限于手动 NAT)。

  • NAT46(IPv4 对 IPv6)- 我们建议使用静态 NAT。因为 IPv6 地址空间远远大于 IPv4 地址空间,所以可以轻松满足静态转换需求。如果不想允许返回流量,您可以启用单向静态 NAT 规则(仅限于手动 NAT)。转换为 IPv6 子网(/96 或更低)时,默认情况下,生成的映射地址为有嵌入 IPv4 的 IPv6 地址,其中 32 位 IPv4 地址嵌入在 IPv6 前缀后面。例如,如果 IPv6 前缀为 /96 前缀,则 IPv4 地址附在最后的 32 位地址中。例如,如果将 192.168.1.0/24 映射到 201b::0/96,则 192.168.1.4 将被映射到 201b::0.192.168.1.4(通过混合表示法显示)。如果前缀较小(例如 /64),则 IPv4 地址附在前缀的后面,后缀 0 附在 IPv4 地址后面。或者,还能够以网络对网络的方式转换地址,其中第一个 IPv4 地址映射到第一个 IPv6 地址,第二个 IPv4 地址映射到第二个 IPv6,依次类推。

  • NAT64(IPv6 到 IPv4)- 可能没有足够的 IPv4 地址来容纳大量的 IPv6 地址。我们建议使用动态 PAT 池提供大量的 IPv4 转换。

对检测到的协议的 NAT 支持

检测打开辅助连接或者在数据包中嵌入 IP 地址的一些应用层协议,以提供以下服务:

  • 创建小孔 - 一些应用协议在标准端口或协商的端口上打开辅助 TCP 或 UDP 连接。检测会为这些辅助端口打开小孔,使您无需创建访问控制规则予以允许。

  • NAT 重写 - 诸如 FTP 等协议会在数据包数据中嵌入用于辅助连接的 IP 地址和端口,作为协议的一部分。如果 NAT 转换涉及到任一终端,则检测引擎会重写数据包数据以反映嵌入式地址和端口的 NAT 转换。在没有 NAT 重写的情况下,辅助连接不起作用。

  • 协议实施 - 一些检测会为检测到的协议实施某种程度的 RFC 一致性。

下表列出了应用 NAT 重写及其 NAT 限制的检测到的协议。当编写包括这些协议的 NAT 规则时,请记住这些限制。此处未列出的协议不应用 NAT 重写。这些检测包括 GTP、HTTP、IMAP、POP、SMTP、SSH 和 SSL。



仅列出的端口支持 NAT 重写。对于其中某些协议,您可以使用网络分析策略将检测扩展到其他端口,但 NAT 重写不会扩展到这些端口。这包括 DCERPC、DNS、FTP 和 Sun RPC 检测。如果在非标准端口上使用这些协议,请勿对连接使用 NAT。


表 2. NAT 支持的应用检测

应用

检测到的协议、端口

NAT 限制

创建了小孔

DCERPC

TCP/135

无 NAT64。

DNS over UDP

UDP/53

无可用于通过 WINS 进行名称解析的 NAT 支持。

ESMTP

TCP/25

无 NAT64。

FTP

TCP/21

(集群)无静态 PAT。

H.323 H.225(呼叫信令)

H.323 RAS

TCP/1720

UDP/1718

对于 RAS, 则为 UDP/1718-1719

(集群)无静态 PAT。

无扩展 PAT。

无 NAT64。

ICMP

ICMP 错误

ICMP

(从不会对定向到设备接口的 ICMP 流量进行检测。)

没有限制。

IP 选项

RSVP

无 NAT64。

NetBIOS Name Server over IP

UDP/137、138(源端口)

无扩展 PAT。

无 NAT64。

RSH

TCP/514

无 PAT。

无 NAT64。

(集群)无静态 PAT。

RTSP

TCP/554

(对于 HTTP 隐藏没有任何处理。)

无扩展 PAT。

无 NAT64。

(集群)无静态 PAT。

SIP

TCP/5060


UDP/5060

无扩展 PAT。

无 NAT64 或 NAT46。

(集群)无静态 PAT。

Skinny (SCCP)

TCP/2000

无扩展 PAT。

无 NAT64、NAT46 或 NAT66。

(集群)无静态 PAT。

SQL*Net

(版本 1、2)

TCP/1521

无扩展 PAT。

无 NAT64。

(集群)无静态 PAT。

Sun RPC

TCP/111

UDP/111

无扩展 PAT。

无 NAT64。

TFTP

UDP/69

无 NAT64。

(集群)无静态 PAT。

不转换负载 IP 地址。

XDMCP

UDP/177

无扩展 PAT。

无 NAT64。

(集群)无静态 PAT。

FQDN 目的准则

您可以使用完全限定域名 (FQDN) 网络对象而不是 IP 地址在手动 NAT 规则中指定转换(映射)目的。例如,您可以基于发往 www.example.com Web 服务器的流量创建规则。

使用 FQDN 时,系统基于返回的地址获取 DNS 解析并编写 NAT 规则。 如果使用多个 DNS 服务器组,则系统会使用过滤器域,并根据过滤器从相应的组请求地址。如果从 DNS 服务器获取多个地址,则使用的地址基于以下条件:

  • 如果某个地址与指定接口位于相同的子网上,则使用该地址。如果没有地址位于相同的子网上,则使用返回的第一个地址。

  • 转换后的源和转换后的目的的 IP 类型必须匹配。例如,如果转换后的源地址为 IPv6,则 FQDN 对象必须指定 IPv6 作为地址类型。如果转换后的源为 IPv4,则 FQDN 对象可以指定 IPv4 或 IPv4 和 IPv6。在这种情况下,将选择 IPv4 地址。

不能在用于手动 NAT 目的的网络组中包含 FQDN 对象。在 NAT 中,必须单独使用 FQDN 对象,因为只有单个目的主机才适用于此类 NAT 规则。

如果 FQDN 无法解析为 IP 地址,则在获得 DNS 解析之前该规则不起作用。

其他 NAT 准则

  • 您不能为站点间 VPN 中使用的虚拟隧道接口 (VTI) 编写 NAT 规则。为 VTI 的源接口编写规则不会将 NAT 应用于 VPN 隧道。要编写应用于 VTI 上通过隧道传输的 VPN 流量的 NAT 规则,您必须使用“任何”作为接口,而不能明确指定接口名称。

  • (仅限于 自动 NAT。)您仅可为给定对象定义单个 NAT 规则,如果要为某个对象配置多个 NAT 规则,则需要创建通过不同名称指定同一 IP 地址的多个对象。

  • 如果在应用动态 PAT 设备之后的某设备上定义站点间 VPN,以便 UDP 端口 500 和 4500 不是实际使用的端口,必须从 PAT 设备之后的设备发起连接。响应方无法发起安全关联 (SA),因为不知道正确的端口号。

  • 如果更改 NAT 配置,并且不想等待现有转换超时后再使用新 NAT 配置,则可以在设备 CLI 中使用 clear xlate 命令清除转换表。然而,清除转换表将断开使用转换的当前所有连接。

    如果创建应应用于现有连接(例如 VPN 隧道)的新 NAT 规则,则需要使用 clear conn 来终止连接。然后,尝试重新建立连接应符合 NAT 规则,且连接应正确进行 NAT。



    如果删除动态 NAT 或 PAT 规则,然后使用与已删除规则中地址重叠的映射地址添加新规则,则系统将不使用新规则,直至与已删除规则关联的所有连接超时,或已使用 clear xlate clear conn 命令将这些连接清除。此保护措施确保相同的地址将不分配至多个主机。


  • 不能使用同时包含 IPv4 和 IPv6 地址的对象组,对象组只能包括一种类型的地址。

  • NAT 中使用的网络对象不能包含超过 131838 个 IP 地址,无论是显式还是隐式包含在地址或子网范围中。将地址空间分成更小的范围,并为较小的对象编写单独的规则。

  • (仅限于手动 NAT。)在 NAT 规则中使用 any 作为源地址时,“任何”流量(IPv4 与 IPv6)的定义取决于规则。只有数据包为 IPv6 至 IPv6 或 IPv4 至 IPv4,威胁防御设备 才能对数据包执行 NAT;借助此前提条件,威胁防御设备 可确定 NAT 规则中的 any 的值。例如,如果配置从“任何”到 IPv6 服务器的规则,且该服务器已从 IPv4 地址映射,则 任何指“任何 IPv6 流量”。如果配置从“任何”到“任何”的规则,并且将源映射至接口 IPv4 地址,则任何指“任何 IPv4 流量”,因为映射的接口地址意味着目标也是 IPv4。

  • 可以在多条 NAT 规则中使用同一映射对象或组。

  • 映射 IP 地址池不能包括:

    • 映射接口的 IP 地址。如果为该规则指定“任何”接口,则禁止所有接口 IP 地址。对于接口 PAT(仅路由模式),指定接口名称而不是接口地址。

    • 故障转移接口 IP 地址。

    • (透明模式。)管理 IP 地址。

  • 避免在静态和动态 NAT 策略中使用重叠地址。例如,使用重叠地址,如果 PPTP 的辅助连接命中静态而非动态 xlate,将无法建立 PPTP 连接。

  • 无法在 NAT 规则的源地址和远程访问 VPN 地址池中使用重叠地址。

  • 如果在规则中指定目标接口,则该接口用作出口接口,而不是在路由表中查找路由。但是,对于身份 NAT,您可以选择改为使用路由查找。

  • NAT 仅适用于直通流量。系统生成的流量不进行 NAT。

  • 请不要使用大写或小写字母的任意组合来命名网络对象或组 pat-pool。

  • 不能在协议无关组播 (PIM) 寄存器的内部负载上使用 NAT。

  • (手动 NAT) 为双 ISP 接口设置(使用路由配置中的服务级别协议的主接口和备用接口)编写 NAT 规则时,请勿在规则中指定目标条件。确保主接口的规则在备用接口的规则之前。这允许设备在主 ISP 不可用时根据当前路由状态选择正确的 NAT 目的接口。如果指定目标对象,NAT 规则将始终为其他规则选择主接口。

  • 如果您收到不应与为接口定义的 NAT 规则匹配的流量的 ASP drop reason nat-no-xlate-to-pat-pool,请为受影响的流量配置身份 NAT 规则,以便流量可以不经转换地通过。

  • 如果为 GRE 隧道终端配置 NAT,则您必须在终端上禁用保持连接,否则将无法建立隧道。终端将保持连接发送到原始地址。

  • DHCP 和 BOOTP 共享端口 UDP/67-68。由于 BOOTP 已经过时,如果同时运行 DHCP,为 bootps 端口编写 NAT 规则可能会导致端口分配问题。请考虑使用 DHCP 中继来传输网段之间的 DHCP 请求。

管理 NAT 策略

网络地址转换 (NAT) 会将传入数据包的 IP 地址转换为传出数据包中的其他地址。NAT 的主要功能之一是使专用 IP 网络可以连接到互联网。NAT 用公用 IP 地址替换专用 IP 地址,将内部专用网络中的专用地址转换为可在公用互联网上使用的可路由地址。NAT 会对转换进行跟踪(也称为 xlate),以确保将返回流量定向到正确的未转换主机地址。

过程


步骤 1

选择设备 > NAT

步骤 2

管理 NAT 策略:

  • 创建 - 点击 新建策略 按钮,。请参阅创建 NAT 策略

  • 复制 - 点击要复制的策略旁边的 复制 (复制图标)。系统将提示您为副本指定唯一的新名称。该副本包含所有策略规则和配置,但不包含设备分配。

  • 报告 - 点击 报告 (报告图标) 以获取策略。系统会提示您保存 PDF 报告,其中包括策略属性、设备分配、规则以及对象使用信息。

  • 编辑 - 点击要编辑的策略旁边的 编辑 (编辑图标)。请参阅配置用于威胁防御的 NAT

  • 删除 - 点击要删除的策略旁边的 删除 (删除图标),然后点击确定 (OK)。当系统提示是否继续时,还会告知您是否有其他用户在策略中有未保存的更改。

    小心

     

    将 NAT 策略部署于托管设备后,就不能从设备删除策略。相反,如果要删除托管设备上已出现的 NAT 规则,则必须部署不带任何规则的 NAT 策略。您也不能删除上一次部署于任何目标设备的策略,即使该策略已过时。要完全删除该策略,必须向目标部署其他策略。


创建 NAT 策略

创建新的 NAT 策略时,必须至少为其提供一个唯一的名称。虽然在创建策略过程中不需要识别策略目标,但必须执行这个步骤后才能部署策略。如果将不带有规则的 NAT 策略应用于某台设备,系统会从该设备删除所有 NAT 规则。

过程


步骤 1

选择设备 > NAT

步骤 2

从下拉列表中点击 新策略,。

步骤 3

名称 (Name) 中输入唯一的名称。

步骤 4

输入说明 (Description)(可选)。

步骤 5

选择要部署策略的设备:

  • 可用设备 (Available Devices) 列表中选择一个设备,然后点击添加到策略 (Add to Policy)
  • 点击可用设备 (Available Devices) 列表中的设备并将其拖移到所选设备 (Selected Devices) 列表。
  • 点击设备旁边的 删除 (删除图标),从所选设备 (Selected Devices) 列表中删除设备。

步骤 6

点击保存 (Save)


配置 NAT 策略目标

创建或编辑策略时,可以确定要应用策略的托管设备。可以搜索一系列可用设备和高可用性对,并将其添加到所选设备列表。

过程


步骤 1

选择设备 > NAT

步骤 2

点击要修改的 NAT 策略旁边的 编辑 (编辑图标)

如果显示视图 (视图按钮),则表明配置属于祖先域,或者您没有修改配置的权限。

步骤 3

点击策略分配

步骤 4

执行以下任一操作:

  • 要将设备、高可用性对或设备组分配给策略,请在可用设备 (Available Devices) 列表中将其选中,然后点击添加到策略 (Add toPolicy)。还可以进行拖放。
  • 要删除设备分配,请点击所选设备 (Selected Devices) 列表中的设备、高可用性对或设备组旁边的 删除 (删除图标)

步骤 5

点击确定 (OK)


配置用于威胁防御的 NAT

网络地址转换可能非常复杂。我们建议规则应尽可能保持简单,以避免出现转换问题和难以进行故障排除的情况。在实施 NAT 之前仔细规划,这非常重要。以下程序说明了规划的基本方法。

NAT 策略为共享策略。您将策略分配给应具有类似 NAT 规则的设备。

策略中的给定规则是否适用于分配的设备由规则中使用的接口对象(安全区域或接口组)来确定。如果接口对象包括设备的一个或多个接口,则规则会部署到设备。因此,通过仔细设计接口对象,您可以配置应用于单个共享策略内的设备子集的规则。适用于“任意”接口对象的规则会部署到所有设备。

如果将某个接口的类型更改为不适用于以具有该接口的设备为目标的 NAT 策略的类型,策略会将该接口标记为“已删除”。在 NAT 策略中点击保存 (Save) 会自动从策略删除接口。

如果设备组需要显著不同的规则,则可以配置多个 NAT 策略。

过程


步骤 1

选择设备 (Devices) > NAT.

  • 点击新建策略 (New Policy) 以创建新策略。为策略命名,或者为其分配设备,然后点击保存 (Save)

    还可以在以后更改设备分配,只需编辑策略并点击策略分配 (Policy Assignments)

  • 点击 编辑 (编辑图标) 以编辑现有威胁防御 NAT 策略。

    如果显示视图 (视图按钮),则表明配置属于祖先域,或者您没有修改配置的权限。

步骤 2

决定您需要哪些类型的规则。

可以创建动态 NAT、动态 PAT、静态 NAT 和身份 NAT 规则。有关概述,请参阅 NAT 类型

步骤 3

决定应将哪些规则作为手动或自动 NAT 来实施。

有关这两种实施选项的比较,请参阅自动 NAT 和手动 NAT

步骤 4

决定哪些规则应该根据设备来自定义。

由于您可以将 NAT 策略分配给多台设备,因此可以在多台设备上配置单个规则。但是,您可能会具有一些每台设备应有不同解释的规则,或一些仅适用于设备子集的规则。

使用接口对象来控制应在哪些设备上配置规则。然后,在网络对象上使用对象覆盖以自定义每台设备使用的地址。

有关详细信息,请参阅为多个设备自定义 NAT 规则

步骤 5

遵循以下部分中的说明创建规则。

步骤 6

管理 NAT 策略和规则。

您可以执行以下操作来管理策略及其规则。

  • 要编辑策略名称或说明,请在那些字段中点击,键入您的更改,然后在字段之外点击。

  • 要查看那些仅适用于特定设备的规则,请点击按设备过滤 (Filter by Device) 并选择所需的设备。如果某个设备使用的接口对象包括该设备上的接口,则规则适用于该设备。

  • 要查看策略中的任何警告或错误,请点击显示警告 (Show Warnings),,然后选择设备 (Device)。警告和错误标记出会对流量产生不利影响或阻碍策略部署的配置。

  • 要更改策略所分配到的设备,请点击策略分配 (Policy Assignments) 链接并根据需要修改所选设备列表。

  • 要更改规则是启用还是禁用,请使用右键点击规则并通过 State 命令选择所需的选项。可以暂时禁用一条规则而不使用这些控制来删除规则。

  • 要添加规则,请点击添加规则 (Add Rule) 按钮。

  • 要编辑规则,请点击规则的 编辑 (编辑图标)

  • 要删除规则,请点击规则的 删除 (删除图标)

  • 要更改页面上显示的规则数量,请使用每页行数 (Rows Per Page) 下拉列表。

  • 要选择多个规则以启用、禁用或删除,请点击规则的复选框或标题中的复选框,然后再执行操作。

步骤 7

点击保存 (Save)

此时,您可以转至部署 > 部署并将策略部署到所分配的设备。在部署更改之后,更改才生效。


为多个设备自定义 NAT 规则

由于 NAT 策略已共享,可以将给定策略分配给多个设备。但您最多只可为某个给定对象配置一个自动 NAT 规则。因此,如果您要根据执行转换的特定设备为对象配置不同的转换,则需要谨慎配置接口对象(安全区域或接口组)和定义转换地址的网络对象覆盖。

接口对象确定在哪些设备上配置规则。网络对象覆盖确定给定设备为该对象使用哪些 IP 地址。

请考虑以下情景:

  • FTD-A 和 FTD-B 具有连接到名为“inside”的接口的网络 192.168.1.0/24。

  • 在 FTD-A 上,当转至“outside”接口时,您要将所有 192.168.1.0/24 地址转换为 10.100.10.10 - 10.100.10.200 范围内的一个 NAT 池。

  • 在 FTD-B 上,当转至“outside”接口时,您要将所有 192.168.1.0/24 地址转换为 10.200.10.10 - 10.200.10.200 范围内的一个 NAT 池。

要实现上述配置,请执行以下操作。虽然此示例规则适用于动态自动 NAT,但您也可以将此方法推广到任何类型的 NAT 规则。

过程


步骤 1

为内部和外部接口创建安全区域。

  1. 选择对象 (Object) > 对象管理 (Object Management)

  2. 从目录中选择接口对象 (Interface Objects) 并点击添加 (Add) > 安全区域 (Security Zone)。(您可以使用接口组而不是区域。)

  3. 配置内部区域属性。

    • 名称 (Name) - 输入名称,例如,inside-zone

    • 类型 (Type) - 为路由模式设备选择路由 (Routed),为透明模式选择交换 (Switched)

    • 所选接口 (Selected Interfaces) - 将 FTD-A/内部和 FTD-B/内部接口添加到所选列表。

  4. 点击保存 (Save)

  5. 点击Add (添加) > 安全区域 (Security Zone) 并定义外部区域属性。

    • 名称 (Name) - 输入名称,例如,outside-zone

    • 接口类型 (Interface Type) - 为路由模式设备选择路由 (Routed),为透明模式选择交换 (Switched)

    • 所选接口 (Selected Interfaces) - 将 FTD-A/外部和 FTD-B/外部接口添加到所选列表。

  6. 点击保存 (Save)

步骤 2

在“对象管理”(Object Management) 页面上为原始内部网络创建网络对象。

  1. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 配置内部网络属性。

    • 名称 (Name) - 输入名称,例如,inside-network

    • 网络 (Network) - 输入网络地址,例如,192.168.1.0/24

  3. 点击保存 (Save)

步骤 3

为已转换的 NAT 池创建网络对象并定义覆盖。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为 FTD-A 配置 NAT 池属性。

    • 名称 (Name) - 输入名称,例如,NAT-pool

    • 网络 (Network) - 输入要包含在 FTD-A 池中的地址范围,例如,10.100.10.10-10.100.10.200

  3. 选择允许覆盖 (Allow Overrides)

  4. 点击覆盖 (Overrides) 标题以打开对象覆盖列表。

  5. 点击添加 (Add) 以打开“添加对象覆盖”(Add Object Override) 对话框。

  6. 选择 FTD-B 和添加 (Add) 以将其添加到“所选设备”(Selected Devices) 列表。

  7. 点击覆盖 (Override) 并将网络 (Network) 更改为 10.200.10.10-10.200.10.200

  8. 点击添加 (Add) 以将覆盖添加到设备。

    通过定义 FTD-B 的覆盖,每当系统在 FTD-B 上配置此对象时,将使用覆盖值而不是原始对象中定义的值。

  9. 点击保存 (Save)

步骤 4

配置 NAT 规则。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 (Type)= 动态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 (Source Interface Objects) = 内部区域。

    • 目标接口对象 (Destination Interface Objects) = 外部区域。

     

    接口对象用于控制应在哪些设备上配置规则。由于在本例中区域仅包含 FTD-A 和 FTD-B 的接口,因此即使 NAT 策略分配给其他设备,规则也将仅部署到这两台设备。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 (Original Source) = 内部网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = NAT 池对象。

  6. 点击保存 (Save)

    您现在有一条对 FTD-A 和 FTD-B 有不同解释的规则,为每个防火墙保护的内部网络提供唯一转换。


搜索和过滤 NAT 规则表

您可以搜索和过滤 NAT 规则表,以帮助您查找需要修改或查看的规则。过滤表时,仅显示匹配的规则。请注意,尽管规则编号依次更改为 1、2 等,但过滤不会更改实际规则编号或规则在表中相对于隐藏规则的位置。过滤只是更改您可以看到的内容,以帮助您找到您感兴趣的规则。

编辑 NAT 策略时,可以使用表上方的字段执行以下类型的搜索/过滤:

  • 按设备过滤 (Filter by Device) - 点击 按设备过滤 (Filter by Device),然后选择要查看其规则的设备,然后点击 确定 (OK)。规则是否适用于设备取决于规则的接口限制。如果为源接口或目标接口指定安全区域或接口组,则当设备的至少一个接口位于该区域或组中时,该规则将应用于该设备。如果 NAT 规则适用于任何源接口和任何目标接口,则它适用于所有设备。

    如果您还执行文本或多属性搜索,则结果仅限于所选设备。

    要删除此过滤器,请点击按设备过滤 (Filter by Device) 并取消选择设备,或选择全部 (All),然后点击确定 (OK)

  • 简单文本搜索-在 过滤器 框中,键入字符串,然后按 Enter 键。该字符串将与规则中的所有值进行比较。例如,如果输入“network-object-1”(网络对象的名称),则会获得在源、目标和 PAT 池属性中使用该对象的规则。

    对于网络和端口对象,该字符串还会与规则中使用的对象的内容进行比较。例如,如果 PAT 池对象包括 10.100.10.3-10.100.10.100 范围,则在 10.100.10.3 或 10.100.10.100(或部分 10.100.10)上搜索将包括使用该 PAT 池对象的规则。但是,匹配必须精确:在 10.100.10.5 上搜索将不匹配此 PAT 池对象,即使 IP 地址在对象的 IP 地址范围内。

    要删除过滤器,请点击过滤器框右侧的 x

  • 多属性搜索-如果简单文本搜索提供的结果过多,可以为搜索配置多个值。点击过滤器 (Filter) 框以打开属性列表,然后选择或输入要搜索的属性的字符串,然后点击过滤器按钮。这些属性与您在 NAT 规则中配置的属性相同。属性已进行 AND 运算,因此过滤后的结果仅包含与您配置的所有属性匹配的规则。

    • 对于二进制属性,例如规则状态(启用/禁用)、是否配置了 PAT 池(启用/禁用)、规则的方向(uni/bi)或规则类型(静态/动态),只需选中或取消选中相应的复选框。如果您不关心属性值,请选中这两个复选框。如果取消选中这两个框,则没有任何规则与过滤器匹配。

    • 对于字符串属性,请键入与该属性相关的完整或部分字符串。这些将是安全区域/接口组、网络对象或端口对象的对象名称。它也可以是网络或端口对象内容,其匹配方式与简单文本搜索相同。

    要删除过滤器,请点击“过滤器”(Filter) 框右侧的 x ,或点击“过滤器”(Filter) 框以打开下拉列表,然后点击清除按钮。

启用、禁用或删除多个规则

您可以逐一启用或禁用手动 NAT 规则,或者删除任何 NAT 规则。您也可以选择多个规则,并将更改一次性应用于所有规则。由于启用/禁用仅适用于手动 NAT,如果您选择了混合规则类型,那么就只能将其删除。

请注意,在启用或禁用规则时,选择一些已启用或禁用的规则并不重要。例如,启用已启用的规则只会让该规则保持启用状态。

过程


步骤 1

选择 设备 > NAT,然后编辑威胁防御 NAT 策略。

步骤 2

(可选。)过滤 NAT 规则,以便找到要更改的规则。

如果您有大型 NAT 策略,过滤特别有用。例如,您可以搜索已禁用的规则以便查找需要启用的规则。

步骤 3

选择要更改的规则。

  • 点击规则左列中的复选框,以便选择(或取消选择)单个规则。

  • 点击表头中的复选框,以便选择当前显示页面上的所有规则。

在翻页时,您的选择会被保留。但实际上,最好是在转到下一页之前对页面上选择的规则执行操作。

步骤 4

执行所需的操作。如果选择了多个规则,系统会要求您确认操作。

请注意,这些操作也可通过右键点击菜单来执行。

  • 要启用所有规则,请点击选择批量操作 (Select Bulk Action) > 启用 (Enable)

  • 要禁用所有规则,请点击选择批量操作 (Select Bulk Action) > 禁用 (Disable)

  • 要删除所有规则,请点击选择批量操作 (Select Bulk Action) > 删除 (Delete)


动态 NAT

以下主题介绍动态 NAT 以及如何配置动态 NAT。

关于动态 NAT

动态 NAT 将一个实际地址组转换为一个可在目标网络上路由的映射地址池。映射池通常包含少于实际地址组的地址。当您要转换的主机访问目标网络时,NAT 会从映射池中为该主机分配 IP 地址。仅在实际主机发起连接时创建转换。转换仅在连接期间发生,而且转换超时后,给定用户不保持同一 IP 地址。因此,目标网络上的用户不能向使用动态 NAT 的主机发起可靠连接,即使访问规则允许该连接。



在转换期间,如果访问规则允许连接转换后主机,远程主机可以发起这种连接。因为地址不可预测,所以与主机的连接不可能发生。然而,在这种情况下,可以依靠访问规则的安全性。远程主机的成功连接可重置连接的空闲计时器。


下图显示典型的动态 NAT 场景。仅实际主机可以创建 NAT 会话,允许返回响应流量。

图 5. 动态 NAT

下图显示一台远程主机尝试发起到映射地址的连接。该地址当前不在转换表中;因此,会丢弃数据包。

图 6. 远程主机尝试向映射地址发起连接

动态 NAT 的优缺点

动态 NAT 有以下缺点:

  • 如果映射池的地址少于实际组,并且流量数量大于预期,地址可能会用尽。

    如果经常发生这种情况,请使用 PAT 或 PAT 回退方法,因为 PAT 可以使用单一地址的端口提供超过 64,000 次转换。

  • 不得不利用映射池中的大量可路由地址,而且可能没有大量的可路由地址可用。

动态 NAT 的优点在于,某些协议不能使用 PAT。PAT 不适用于以下项:

  • 没有超载端口的 IP 协议,例如 GRE 0 版本。

  • 某些多媒体应用,它们在一个端口上有数据流,在另一个端口上有控制路径,并且不是开放标准。

配置动态自动 NAT

使用动态自动 NAT 规则将地址转换为可在目标网络中路由的其他 IP 地址。

开始之前

选择对象 > 对象管理并创建规则中所需的网络对象或组。或者,您可以在定义 NAT 规则时创建对象。对象必须满足以下要求:

  • 原始地址 - 该地址必须是网络对象(而非组),而且它可以是主机、范围或子网。

  • 转换后的源 - 此选项可以是网络对象或组,但不能包含子网。组不能同时包含 IPv4 和 IPv6 地址,它只能包含一种类型的地址。如果某个组同时包含范围和主机 IP 地址,则范围将用于动态 NAT,主机 IP 地址将用作 PAT 回退。

过程

步骤 1

依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

步骤 2

执行以下操作之一:

  • 点击添加规则 (Add Rule) 按钮以创建新规则。
  • 点击编辑 (编辑图标)以编辑现有规则。

右键点击菜单还具有用于剪切、复制、粘贴、插入和删除规则的选项。

步骤 3

配置基本规则选项:

  • NAT 规则 - 选择自动 NAT 规则
  • 类型 - 选择动态

步骤 4

接口对象 (Interface Objects) 上配置以下选项:

  • 源接口对象目标接口对象 - (网桥组成员接口的必选项。)用于识别此 NAT 规则应用的接口的接口对象(安全区域或接口组)。是包含实际接口的对象,流量通过该接口进入设备。目标是包含映射接口的对象,流量通过该接口离开设备。默认情况下,此规则应用于除网桥组成员接口之外的所有接口(任意)。

步骤 5

常规转换上配置以下选项:

  • 原始源 - 包含您要转换的地址的网络对象。
  • 转换后的源 - 包含映射地址的网络对象或组。

步骤 6

(可选。)在高级 (Advanced) 上选择所需选项:

  • 转换与此规则匹配的 DNS 回复 - 是否转换 DNS 应答中的 IP 地址。对于从映射接口传输到实际接口的 DNS 回复,地址(IPv4 A 或 IPv6 AAAA)记录会从映射值重写为实际值。相反,对于从实际接口传输到映射接口的 DNS 回复,该记录会从实际值重写为映射值。此选项用于特定情况,有时 NAT64/46 转换(其中重写也会在 A 和 AAAA 记录之间转换)需要使用此选项。有关详细信息,请参阅使用 NAT 重写 DNS 查询和响应
  • 跳转到接口 PAT(目标接口) - 当已分配其他映射地址后,是否将目标接口的 IP 地址用作备份方法(接口 PAT 回退)。仅当您选择不是网桥组成员的目的地接口时,此选项才可用。要使用接口的 IPv6 地址,另请勾选 IPv6 选项。
  • IPv6 - 是否为接口 PAT 使用目的地接口的 IPv6 地址。

步骤 7

点击保存以添加规则。

步骤 8

点击“NAT”页面上的保存以保存更改。


配置动态手动 NAT

当自动 NAT 不能满足您的需求时,请使用动态手动 NAT 规则。例如,如果您要根据目标进行不同的转换。动态 NAT 会将地址转换为可在目标网络中路由的其他 IP 地址。

开始之前

依次选择对象 > 对象管理,然后创建规则中所需的网络对象或组。组不能同时包含 IPv4 和 IPv6 地址;只能包含一种类型。或者,您可以在定义 NAT 规则时创建对象。对象还必须满足以下要求:

  • 原始源 (Original Source) - 此选项可以是网络对象或组,而且它可以包含主机、范围或子网。如果要转换所有原始源流量,可以跳过此步骤并在规则中指定任何 (Any)

  • 转换后的源 - 此选项可以是网络对象或组,但不能包含在子网中。如果某个组同时包含范围和主机 IP 地址,则范围将用于动态 NAT,主机 IP 地址将用作 PAT 回退。

如果您要在规则中为 原始目标转换后的目标 配置静态转换,还可以为这些地址创建网络对象或组。

对于动态 NAT,您还可以对目标执行端口转换。在对象管理器中,请确保有可用于原始目标端口转换后的目标端口的端口对象。系统将忽略您指定的源端口。

过程

步骤 1

依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

步骤 2

执行以下操作之一:

  • 点击添加规则 (Add Rule) 按钮以创建新规则。
  • 点击编辑 (编辑图标)以编辑现有规则。

右键点击菜单还具有用于剪切、复制、粘贴、插入和删除规则的选项。

步骤 3

配置基本规则选项:

  • NAT 规则 - 选择手动 NAT 规则
  • 类型 - 选择动态。该设置仅应用于源地址。如果为目标地址定义转换,则该转换始终为静态。
  • 启用 - 您是否希望规则处于活动状态。可以随后使用“规则”(Rules) 页面上的右键点击菜单激活或停用该规则。
  • 插入 - 要添加规则的位置。可以将其插入类别中(在自动 NAT 规则之前或之后)或指定规则的上方或下方。

步骤 4

接口对象 (Interface Objects) 上配置以下选项:

  • 源接口对象目标接口对象 - (网桥组成员接口的必选项。)用于识别此 NAT 规则应用的接口的接口对象(安全区域或接口组)。是包含实际接口的对象,流量通过该接口进入设备。目标是包含映射接口的对象,流量通过该接口离开设备。默认情况下,此规则应用于除网桥组成员接口之外的所有接口(任意)。

步骤 5

(在转换页面上。)确定原始数据包地址(IPv4 或 IPv6 地址);例如,显示在原始数据包中的数据包地址。

请参阅下图,了解原始数据包与转换后数据包的示例。

  • 原始源 - 包含将要转换的地址的网络对象或组。

  • 原始目标 -(可选。)包含目的目标地址的网络对象或组。如果将此留空,则无论目的目标为何都将应用源地址转换。如果指定目标目的地址,可以为该地址配置静态转换或只是为其使用将身份 NAT 用于该地址。

    可以选择源接口 IP (Source Interface IP) 以使原始目的基于源接口(不能为“任意”[Any])。如果选择此选项,则还必须选择一个已转换后的目的目标对象。要为目的目标地址实施带端口转换的静态接口 NAT,请选择此选项,并为目的目标端口选择适当的端口对象。

步骤 6

确定已转换的数据包地址(IPv4 或 IPv6 地址);例如,显示在目标接口网络中的数据包地址。如果需要,可在 IPv4 与 IPv6 之间进行转换。

  • 转换后的源 - 包含映射地址的网络对象或组。
  • 转换后的目标 -(可选。)包含已转换的数据包中使用的目标地址的网络对象或组。如果为原始目标选择了一个对象,则可以通过选择相同的对象确定 NAT(即无转换)。

步骤 7

(可选。)确定用于服务转换的目标服务端口:原始目标端口转换后的目标端口

动态 NAT 不支持端口转换,因此,请将原始源端口已转换源端口字段保留为空。然而,由于目标转换始终为静态,因此可为目标端口执行端口转换。

NAT 仅支持 TCP 或 UDP。转换端口时,请确保实际和映射服务对象中的协议相同(同为 TCP 或同为 UDP)。对于身份 NAT,可将相同的服务对象同时用于实际和映射端口。

步骤 8

(可选。)在高级 (Advanced) 上选择所需选项:

  • (仅适用于源转换。)转换与此规则匹配的 DNS 回复 - 是否转换 DNS 应答中的 IP 地址。对于从映射接口传输到实际接口的 DNS 回复,地址(IPv4 A 或 IPv6 AAAA)记录会从映射值重写为实际值。相反,对于从实际接口传输到映射接口的 DNS 回复,该记录会从实际值重写为映射值。此选项用于特定情况,有时 NAT64/46 转换(其中重写也会在 A 和 AAAA 记录之间转换)需要使用此选项。有关详细信息,请参阅使用 NAT 重写 DNS 查询和响应
  • 跳转到接口 PAT(目标接口) - 当已分配其他映射地址后,是否将目标接口的 IP 地址用作备份方法(接口 PAT 回退)。仅当您选择不是网桥组成员的目的地接口时,此选项才可用。要使用接口的 IPv6 地址,另请勾选 IPv6 选项。
  • IPv6 - 是否为接口 PAT 使用目的地接口的 IPv6 地址。

步骤 9

点击保存以添加规则。

步骤 10

点击“NAT”页面上的保存以保存更改。


动态 PAT

以下主题介绍动态 PAT。

关于动态 PAT

通过将实际地址和源端口转换为映射地址和唯一端口,动态 PAT 可以将多个实际地址转换为单一映射地址。

每个连接都需要单独的转换会话,因为每个连接的源端口都不同。例如,10.1.1.1:1025 需要来自 10.1.1.1:1026 的单独的转换。

下图显示一个典型的动态 PAT 场景。仅实际主机可以创建 NAT 会话,允许返回响应流量。映射地址对于每次转换都是相同的,但端口需要动态分配。

图 7. 动态 PAT

对于转换持续时间,如果访问规则允许,目标网络上的远程主机可以发起到转换后主机的连接。因为端口地址(实际和映射)不可预测,所以到该主机的连接不可能发生。然而,在这种情况下,可以依靠访问规则的安全性。

在连接过期后,端口转换也将过期。



建议每个接口使用不同的 PAT 池。如果多个接口使用同一池,尤其是用于“任何”接口时,该池将被快速耗尽,且没有端口可用于新的转换。


动态 PAT 的优缺点

通过动态 PAT,可以使用单一映射地址,从而保存可路由地址。甚至可以将 威胁防御设备 接口 IP 地址用作 PAT 地址。

动态 PAT 不适用于某些数据流不同于控制路径的多媒体应用。有关详细信息,请参阅对检测到的协议的 NAT 支持

动态 PAT 还可以创建大量显示为来自单一 IP 地址的连接,服务器可能将此流量解释为 DoS 攻击。可以配置一个 PAT 地址池,使用 PAT 地址轮询分配来避免出现这种情况。

PAT 池对象准则

当为 PAT 池创建网络对象时,请遵守以下准则。

对于 PAT 池
  • 端口会映射到 1024 到 65535 范围内的可用端口。您可以选择包含保留的端口,即 1024 以下的端口,以便让整个端口范围可用于转换。

    在集群中运行时,每个地址的 512 个端口块会被分配给集群成员,并在这些端口块内进行映射。如果还启用块分配,则会根据块分配大小(其默认值也是 512)来分配端口。如果更改集群设备限制(集群大小),请确保清除转换或重新启动设备,以便将 PAT 池适当地重新分配到集群设备。

  • 如果对 PAT 池启用块分配,则仅在 1024-65535 范围内分配端口块。因此,如果应用需要较低的端口号 (1-1023),它可能不起作用。例如,请求端口 22 (SSH) 的应用会获得 1024-65535 范围内和分配到主机的块范围内的映射端口。

  • 如在两个不同的规则中使用相同的 PAT 池对象,则请确保为每条规则指定相同的选项。例如,如果一条规则指定扩展 PAT,则另一条规则也必须指定扩展 PAT。

  • 如果主机拥有现有连接,则来自该主机的后续连接会使用相同的 PAT IP 地址。如果没有可用的端口,这可能会阻止连接。使用轮询选项可避免此问题。

  • 为获得最佳性能,请将 PAT 池中的 IP 地址数量限制为 10,000。

对于 PAT 池的扩展 PAT
  • 许多应用检测不支持扩展 PAT。

  • 如为动态 PAT 规则启用扩展 PAT,则不能在支持端口转换规则的另一静态 NAT 中使用 PAT 池中的地址作为 PAT 地址。例如,如果 PAT 池包括 10.1.1.1,则无法将 10.1.1.1 作为 PAT 地址创建带端口转换规则的静态 NAT。

  • 如使用 PAT 池,并为回退指定接口,则无法指定扩展 PAT。

  • 对于使用 ICE 或 TURN 的 VoIP 部署,请勿使用扩展 PAT。ICE 和 TURN 依赖于 PAT 绑定才能对所有目标均保持相同。

  • 您不能在集群中的设备上使用扩展 PAT。

  • 扩展 PAT 会增加设备上的内存使用率。

对于 PAT 池的轮询
  • 如果主机拥有现有连接,并且端口可用,则来自该主机的后续连接将使用相同的 PAT IP 地址。不过,这种“粘性”不能超越故障转移。如果该设备执行故障转移,来自主机的后续连接可能会使用初始 IP 地址。

  • 如果在同一接口上混合使用 PAT 池/轮询规则和接口 PAT 规则,IP 地址"粘性"也会受到影响。对于任何给定接口,请选择 PAT 池或接口 PAT;请勿创建竞争 PAT 规则。

  • 轮询可能会消耗大量的内存,在与扩展 PAT 组合使用时尤其如此。由于将为每一个映射协议/IP 地址/端口范围创建 NAT 池,因此,轮询会导致大量并发 NAT 池,从而消耗内存。扩展 PAT 甚至将导致更多数量的并发 NAT 池。

配置动态自动 PAT

使用动态自动 PAT 规则可将地址转换为唯一的 IP 地址/端口组合,而不是仅转换为多个 IP 地址。您可以转换为单个地址(目标接口的地址或其他地址),或者使用地址的 PAT 池来提供更多的可能转换。

开始之前

选择对象 > 对象管理并创建规则中所需的网络对象或组。或者,您可以在定义 NAT 规则时创建对象。对象必须满足以下要求:

  • 原始地址 - 该地址必须是网络对象(而非组),而且它可以是主机、范围或子网。

  • 转换后的源 - 可通过以下选项指定 PAT 地址:

    • 目标接口 - 要使用目标接口地址,不需要网络对象。

    • 单个 PAT 地址 - 创建包含单个主机的网络对象。

    • PAT 池 - 创建一个包含范围的网络对象,或创建一个包括主机、范围或这两者的网络对象组。不能包含子网。组不能同时包含 IPv4 和 IPv6 地址,它只能包含一种类型的地址。

过程

步骤 1

依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

步骤 2

执行以下操作之一:

  • 点击添加规则 (Add Rule) 按钮以创建新规则。
  • 点击编辑 (编辑图标)以编辑现有规则。

右键点击菜单还具有用于剪切、复制、粘贴、插入和删除规则的选项。

步骤 3

配置基本规则选项:

  • NAT 规则 - 选择自动 NAT 规则
  • 类型 - 选择动态

步骤 4

接口对象 (Interface Objects) 上配置以下选项:

  • 源接口对象目标接口对象 - (网桥组成员接口的必选项。)用于识别此 NAT 规则应用的接口的接口对象(安全区域或接口组)。是包含实际接口的对象,流量通过该接口进入设备。目标是包含映射接口的对象,流量通过该接口离开设备。默认情况下,此规则应用于除网桥组成员接口之外的所有接口(任意)。

步骤 5

常规转换上配置以下选项:

  • 原始源 - 包含您要转换的地址的网络对象。
  • 转换后的源 - 以下项之一:
    • (接口 PAT。)要使用目标接口的地址,请选择目标接口 IP (Destination Interface IP)。您还必须选择特定目标接口。要使用接口的 IPv6 地址,还必须在高级 (Advanced) 上选择 IPv6 选项。跳过配置 PAT 池的步骤。

    • 要使用目标接口地址以外的单个地址,请选择为此用途创建的主机网络对象。跳过配置 PAT 池的步骤。

    • 若要使用 PAT 池,请将转换后的源留空。

步骤 6

如果使用的是 PAT 池,请选择 PAT 池页面并执行以下操作:

  1. 选择启用 PAT 池 (Enable PAT pool)

  2. 选择包含 PAT > 地址字段中的池地址的网络对象组。

    或者,可以选择目的接口 IP (Destination Interface IP),它是实施接口 PAT 的另一种方法。

  3. (可选)根据需要选择以下选项:

    • 使用轮询分配 - 以轮询方式分配地址/端口。默认情况下,如果不采用轮询,在使用下一个 PAT 地址之前,将分配 PAT 地址的所有端口。轮询方法分配来自池中每个 PAT 地址的一个地址/端口,然后才返回再次使用第一个地址,接着是第二个地址,以此类推。

    • 扩展 PAT 表 - 使用扩展 PAT。通过将目的地地址和端口纳入转换信息,相对于按 IP 地址,扩展 PAT 将按服务使用 65535 个端口。通常,创建 PAT 转换时,不考虑目的地端口和地址,因此限制为每个 PAT 地址 65535 个端口。例如,通过扩展 PAT,您可以创建在访问 192.168.1.7:23 时转到 10.1.1.1:1027 的转换,以及在访问 192.168.1.7:80 时转到 10.1.1.1:1027 的转换。不能将此选项用于接口 PAT 或接口 PAT 回退。

    • 扁平端口范围包括保留端口 - 在分配 TCP/UDP 端口时使用 1024 到 65535 的端口范围作为单个扁平范围。(6.7 以下版本)为转换选择映射端口号时,PAT 使用实际源端口号(若可用)。然而,如果不使用此选项,则当实际端口可用时,将默认从与实际端口号相同的端口范围选择映射端口:1 到 511、512 到 1023 以及 1024 到 65535。为了避免用尽低端口号范围的端口,请配置此设置。要使用 1 到 65535 的整个范围,另请勾选包括保留端口 (Include Reserved Ports) 选项。对于运行版本 6.7 或更高版本的 威胁防御 设备,无论是否选择该选项,始终配置扁平端口范围。您仍可以为这些系统选择包括保留端口 (Include Reserved Ports) 选项,并且系统将采用该设置。

    • 块分配 - 启用端口块分配。对于运营商级或大规模 PAT,可以为每个主机分配一个端口块,而非由 NAT 每次分配一个端口转换。如果分配端口块,来自该主机的后续连接将使用该块中随机选定的新端口。如果主机将所有端口的活动连接置于基元块中,可根据需要分配更多块。只能在 1024-65535 范围内分配端口块。端口块分配与轮询兼容,但无法将其与扩展 PAT 或不分段端口范围选项一起使用。也无法使用接口 PAT 回退。

步骤 7

(可选。)在高级 (Advanced) 上选择所需选项:

  • 跳转到接口 PAT(目标接口) - 当已分配其他映射地址后,是否将目标接口的 IP 地址用作备份方法(接口 PAT 回退)。仅当您选择不是网桥组成员的目的地接口时,此选项才可用。要使用接口的 IPv6 地址,另请勾选 IPv6 选项。 如果已配置接口 PAT 作为转换后的地址或 PAT 池,则不能选择此选项。
  • IPv6 - 是否为接口 PAT 使用目的地接口的 IPv6 地址。

步骤 8

点击保存以添加规则。

步骤 9

点击“NAT”页面上的保存以保存更改。


配置动态手动 PAT

当自动 PAT 不能满足您的需求时,请使用动态手动 PAT 规则。例如,如果您要根据目标进行不同的转换。动态 PAT 可将地址转换为唯一的 IP 地址/端口组合,而不是仅转换为多个 IP 地址。您可以转换为单个地址(目标接口的地址或其他地址),或者使用地址的 PAT 池来提供更多的可能转换。

开始之前

依次选择对象 > 对象管理,然后创建规则中所需的网络对象或组。组不能同时包含 IPv4 和 IPv6 地址;只能包含一种类型。或者,您可以在定义 NAT 规则时创建对象。对象还必须满足以下要求:

  • 原始源 (Original Source) - 此选项可以是网络对象或组,而且它可以包含主机、范围或子网。如果要转换所有原始源流量,可以跳过此步骤并在规则中指定任何 (Any)

  • 转换后的源 - 可通过以下选项指定 PAT 地址:

    • 目标接口 - 要使用目标接口地址,不需要网络对象。

    • 单个 PAT 地址 - 创建包含单个主机的网络对象。

    • PAT 池 - 创建一个包含范围的网络对象,或创建一个包括主机、范围或这两者的网络对象组。不能包含子网。

如果您要在规则中为 原始目标转换后的目标 配置静态转换,还可以为这些地址创建网络对象或组。

对于动态 NAT,您还可以对目标执行端口转换。在对象管理器中,请确保有可用于原始目标端口转换后的目标端口的端口对象。系统将忽略您指定的源端口。

过程

步骤 1

依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

步骤 2

执行以下操作之一:

  • 点击添加规则 (Add Rule) 按钮以创建新规则。
  • 点击编辑 (编辑图标)以编辑现有规则。

右键点击菜单还具有用于剪切、复制、粘贴、插入和删除规则的选项。

步骤 3

配置基本规则选项:

  • NAT 规则 - 选择手动 NAT 规则
  • 类型 - 选择动态。该设置仅应用于源地址。如果为目标地址定义转换,则该转换始终为静态。
  • 启用 - 您是否希望规则处于活动状态。可以随后使用“规则”(Rules) 页面上的右键点击菜单激活或停用该规则。
  • 插入 - 要添加规则的位置。可以将其插入类别中(在自动 NAT 规则之前或之后)或指定规则的上方或下方。

步骤 4

接口对象 (Interface Objects) 上配置以下选项:

  • 源接口对象目标接口对象 - (网桥组成员接口的必选项。)用于识别此 NAT 规则应用的接口的接口对象(安全区域或接口组)。是包含实际接口的对象,流量通过该接口进入设备。目标是包含映射接口的对象,流量通过该接口离开设备。默认情况下,此规则应用于除网桥组成员接口之外的所有接口(任意)。

步骤 5

(在转换页面上。)确定原始数据包地址(IPv4 或 IPv6 地址);例如,显示在原始数据包中的数据包地址。

请参阅下图,了解原始数据包与转换后数据包的示例。

  • 原始源 - 包含将要转换的地址的网络对象或组。

  • 原始目标 -(可选。)包含目的目标地址的网络对象或组。如果将此留空,则无论目的目标为何都将应用源地址转换。如果指定目标目的地址,可以为该地址配置静态转换或只是为其使用将身份 NAT 用于该地址。

    可以选择源接口 IP (Source Interface IP) 以使原始目的基于源接口(不能为“任意”[Any])。如果选择此选项,则还必须选择一个已转换后的目的目标对象。要为目的目标地址实施带端口转换的静态接口 NAT,请选择此选项,并为目的目标端口选择适当的端口对象。

步骤 6

确定已转换的数据包地址(IPv4 或 IPv6 地址);例如,显示在目标接口网络中的数据包地址。如果需要,可在 IPv4 与 IPv6 之间进行转换。

  • 转换后的源 - 以下项之一:
    • (接口 PAT。)要使用目标接口的地址,请选择接口目标接口 IP。您还必须选择特定目标接口。要使用接口的 IPv6 地址,还必须在高级 (Advanced) 上选择 IPv6 选项。跳过配置 PAT 池的步骤。

    • 要使用目标接口地址以外的单个地址,请选择为此用途创建的主机网络对象。跳过配置 PAT 池的步骤。

    • 若要使用 PAT 池,请将转换后的源留空。

  • 转换后的目标 -(可选。)包含已转换的数据包中使用的目标地址的网络对象或组。如果为原始目标选择了一个对象,则可以通过选择相同的对象确定 NAT(即无转换)。

步骤 7

(可选。)确定用于服务转换的目标服务端口:原始目标端口转换后的目标端口

动态 NAT 不支持端口转换,因此,请将原始源端口已转换源端口字段保留为空。然而,由于目标转换始终为静态,因此可为目标端口执行端口转换。

NAT 仅支持 TCP 或 UDP。转换端口时,请确保实际和映射服务对象中的协议相同(同为 TCP 或同为 UDP)。对于身份 NAT,可将相同的服务对象同时用于实际和映射端口。

步骤 8

如果使用的是 PAT 池,请选择 PAT 池页面并执行以下操作:

  1. 选择启用 PAT 池 (Enable PAT pool)

  2. 选择包含 PAT > 地址字段中的池地址的网络对象组。

    或者,可以选择目的接口 IP (Destination Interface IP),它是实施接口 PAT 的另一种方法。

  3. (可选)根据需要选择以下选项:

    • 使用轮询分配 - 以轮询方式分配地址/端口。默认情况下,如果不采用轮询,在使用下一个 PAT 地址之前,将分配 PAT 地址的所有端口。轮询方法分配来自池中每个 PAT 地址的一个地址/端口,然后才返回再次使用第一个地址,接着是第二个地址,以此类推。

    • 扩展 PAT 表 - 使用扩展 PAT。通过将目的地地址和端口纳入转换信息,相对于按 IP 地址,扩展 PAT 将按服务使用 65535 个端口。通常,创建 PAT 转换时,不考虑目的地端口和地址,因此限制为每个 PAT 地址 65535 个端口。例如,通过扩展 PAT,您可以创建在访问 192.168.1.7:23 时转到 10.1.1.1:1027 的转换,以及在访问 192.168.1.7:80 时转到 10.1.1.1:1027 的转换。不能将此选项用于接口 PAT 或接口 PAT 回退。

    • 扁平端口范围包括保留端口 - 在分配 TCP/UDP 端口时使用 1024 到 65535 的端口范围作为单个扁平范围。(6.7 以下版本)为转换选择映射端口号时,PAT 使用实际源端口号(若可用)。然而,如果不使用此选项,则当实际端口可用时,将默认从与实际端口号相同的端口范围选择映射端口:1 到 511、512 到 1023 以及 1024 到 65535。为了避免用尽低端口号范围的端口,请配置此设置。要使用 1 到 65535 的整个范围,另请勾选包括保留端口 (Include Reserved Ports) 选项。对于运行版本 6.7 或更高版本的 威胁防御 设备,无论是否选择该选项,始终配置扁平端口范围。您仍可以为这些系统选择包括保留端口 (Include Reserved Ports) 选项,并且系统将采用该设置。

    • 块分配 - 启用端口块分配。对于运营商级或大规模 PAT,可以为每个主机分配一个端口块,而非由 NAT 每次分配一个端口转换。如果分配端口块,来自该主机的后续连接将使用该块中随机选定的新端口。如果主机将所有端口的活动连接置于基元块中,可根据需要分配更多块。只能在 1024-65535 范围内分配端口块。端口块分配与轮询兼容,但无法将其与扩展 PAT 或不分段端口范围选项一起使用。也无法使用接口 PAT 回退。

步骤 9

(可选。)在高级 (Advanced) 上选择所需选项:

  • 跳转到接口 PAT(目标接口) - 当已分配其他映射地址后,是否将目标接口的 IP 地址用作备份方法(接口 PAT 回退)。仅当您选择不是网桥组成员的目的地接口时,此选项才可用。要使用接口的 IPv6 地址,另请勾选 IPv6 选项。
  • IPv6 - 是否为接口 PAT 使用目的地接口的 IPv6 地址。

步骤 10

点击保存以添加规则。

步骤 11

点击“NAT”页面上的保存以保存更改。


使用端口块分配配置 PAT

对于运营商级或大规模 PAT,您可以为每台主机分配端口块,而无需通过 NAT 一次分配一个端口转换(请参阅 RFC 6888)。如果分配端口块,来自该主机的后续连接将使用该块中随机选定的新端口。如果主机将所有端口的活动连接置于基元块中,可根据需要分配更多块。当使用块中端口的最后一个转换被删除时,系统将释放该块。

分配端口块的主要原因是为了减少日志记录。记录端口块分配,记录连接,但不会记录在端口块中创建的转换。另一方面,这样会使日志分析变得更加复杂。

只能在 1024-65535 范围内分配端口块。因此,如果应用需要较低的端口号 (1-1023),它可能不起作用。例如,请求端口 22 (SSH) 的应用会获得 1024-65535 范围内和分配到主机的块范围内的映射端口。您可以创建一个单独的 NAT 规则,对于使用低端口号的应用不应用块分配;对于两次 NAT,请确保该规则位于块分配规则之前。

开始之前

NAT 规则的使用说明:

  • 您可以包含使用轮询分配 (Use Round Robin Allocation) 选项,但无法包含扩展 PAT 唯一性、使用宽范围、包含保留的端口或后退至接口 PAT 的选项。此外,还允许其他源/目标地址和端口信息。

  • 同所有 NAT 变更一样,如果要替换现有的规则,必须清除与被替换规则相关的转换,新规则才会生效。可以显式清除它们,也可以静待它们超时。在集群中运行时,您必须在整个集群中全局清除 xlate。



    如果要在常规 PAT 和块分配 PAT 规则之间切换,您必须先删除规则,然后再清除转换。然后,您可以创建新的对象 NAT 规则。否则,您将在 show asp drop 输出中看到 pat-port-block-state-mismatch 丢弃。


  • 对于特定 PAT 池,必须为使用该池的所有规则指定(或不指定)块分配。不能在一个规则中分配块,而在另一个规则中不分配块。重叠的 PAT 池也不能混合块分配设置。此外,该池的静态 NAT 不能与端口转换规则重叠。

过程

步骤 1

(可选。)配置全局 PAT 端口块分配设置。

有一些可以控制端口块分配的全局设置。如果要更改这些选项的默认值,必须配置一个 FlexConfig 对象,并将其添加到 FlexConfig 策略中。

  1. 选择对象 > 对象管理 > FlexConfig > FlexConfig 对象,然后创建新对象。

  2. 配置块分配大小,即每个块中的端口数。

    xlate block-allocation size value

    范围为 32-4096。默认值为 512。使用“no”形式可恢复默认值。

    如果不使用默认值,请确保 64,512 能被您所选的大小整除(1024-65535 范围中的端口数)。否则,会出现无法使用的端口。例如,如果指定 100,会有 12 个未使用端口。

  3. 配置每个主机可分配的最大块数。

    xlate block-allocation maximum-per-host number

    限制是针对每个协议,因此限制为 4 表示每个主机最多 4 个 UDP 块、4个 TCP 块和 4 个 ICMP 块。范围为 1-8,默认值为 4。使用“no”形式可恢复默认值。

  4. (可选。)启用临时系统日志生成。

    xlate block-allocation pba-interim-logging seconds

    默认情况下,系统会在端口块创建和删除操作发生时生成系统日志消息。如果启用临时日志记录,系统会按您指定的时间间隔生成以下消息。这些消息会报告消息生成时所有已分配的活动端口块,包括协议(ICMP、TCP、UDP、源和目标接口与 IP 地址,以及端口块。可以指定 21600 至 604800 秒(6 小时至 7 天)的时间间隔。

    %ASA-6-305017: Pba-interim-logging: Active protocol block of ports for translation from real_interface:real_host_ip to mapped_interface:mapped_ip_address/start_port_num-end_port_num

    示例:

    以下示例将块分配大小设置为 64,将每主机最大数设置为 8,并且每 6 小时启用一次临时日志记录。

    
    xlate block-allocation size 64
    xlate block-allocation maximum-per-host 8
    xlate block-allocation pba-interim-logging 21600
    
  5. 在 FlexConfig 对象中选择以下选项:

    • 部署 = 每次

    • 类型 = 附加

  6. 点击保存以创建 FlexConfig 对象。

  7. 选择设备 > FlexConfig,然后创建或编辑分配给需要调整这些设置的设备的 FlexConfig 策略。

  8. 在可用对象列表中选择对象,然后点击 > 将其移动至所选的对象列表。

  9. 点击保存 (Save)

    您可以点击预览配置,选择其中一个目标设备,并验证 xlate 命令是否正确显示。

步骤 2

添加使用 PAT 池端口块分配的 NAT 规则。

  1. 依次选择设备 > NAT,并添加或编辑威胁防御 NAT 策略。

  2. 添加或编辑 NAT 规则,并至少配置以下选项。

    • 类型 = 动态

    • 转换 > 原始源中,选择定义源地址的对象。

    • PAT 池 (PAT Pool) 中配置以下选项:

      • 选择启用 PAT 池

      • PAT > 地址中选择定义 PAT 池的网络对象或组。

      • 选择块分配选项。

  3. 保存对规则和 NAT 策略所做的更改。


静态 NAT

以下主题介绍静态 NAT 以及如何实施静态 NAT。

关于静态 NAT

静态 NAT 创建实际地址到映射地址的固定转换。因为映射地址对于每个连续连接都是相同的,所以静态 NAT 允许双向连接发起,即到主机发起和从主机发起(如果有允许这样做的访问规则)。另一方面,通过动态 NAT 和 PAT,每台主机为每次后续转换使用不同的地址或端口,因此,不支持双向发起。

下图显示典型的静态 NAT 场景。转换始终处于活动状态,所以,实际主机和远程主机可以发起连接。

图 8. 静态 NAT


如果需要,可以禁用双向性。


支持端口转换的静态 NAT

支持端口转换的静态 NAT 让您可以指定实际和映射协议及端口。

指定带静态 NAT 的端口时,可以选择将端口和/或 IP 地址映射到同一值或不同值。

下图显示支持端口转换的典型静态 NAT 场景,其中显示映射到本身的端口和映射到不同值的端口;在这两种情况下,IP 地址映射到不同值。转换始终处于活动状态,所以,转换后主机和远程主机可以发起连接。

图 9. 支持端口转换的典型静态 NAT 场景

支持端口转换的静态 NAT 规则支持仅访问指定端口的目标 IP 地址。如果您尝试访问其他端口上 NAT 规则未涵盖的的目标 IP 地址,连接将被阻止。此外,对于手动 NAT,如果流量与 NAT 规则的源 IP 地址不匹配,但与目标 IP 地址匹配,流量将被丢弃,不管目标端口为何。因此,您必须为允许发送到目标 IP 地址的所有其他流量添加额外规则。例如,您可以为 IP 地址配置静态 NAT 规则(不含端口规范),并将其放置在端口转换规则后面。



对于需要对辅助信道执行应用检查的应用(例如 FTP 和 VoIP),NAT 会自动转换辅助端口。


下面是使用支持端口转换的静态 NAT 的其他情况。

具有身份端口转换的静态 NAT

可以简化对内部资源的外部访问。例如,如果您有在不同端口上提供服务(例如 FTP、HTTP 和 SMTP)的三个单独的服务器,可以为外部用户提供单个 IP 地址以访问这些服务。然后,可以配置具有身份端口转换的静态 NAT,从而根据尝试访问的端口将单个外部 IP 地址映射到实际服务器的正确 IP 地址。您无需更改端口,因为服务器使用的是标准端口(分别是 21、80 和 25)。

对非标准端口进行端口转换的静态 NAT

还可以利用支持端口转换的静态 NAT 将一个公认端口转换为一个非标准端口,反之亦然。例如,如果内部 Web 服务器使用端口 8080,可以允许外部用户连接到端口 80,然后取消转换到原始端口 8080。同样,要进一步提高安全性,可以告知 Web 用户连接到非标准端口 6785,然后取消转换到端口 80。

具有端口转换的静态接口 NAT

可以配置静态 NAT,以将一个实际地址映射到一个接口地址/端口组合。例如,如果要将对设备外部接口的 Telnet 访问重定向至内部主机,则可以将内部主机 IP 地址/端口 23 映射到外部接口地址/端口 23。

一对多静态 NAT

通常,配置带一对一映射的静态 NAT。然而,在某些情况下,可能要将单一实际地址配置到多个映射地址(一对多)。配置一对多静态 NAT 时,当实际主机发起流量时,它始终使用第一个映射地址。然而,对于发起到主机的流量,可以发起到任何映射地址的流量,并且不将它们转换为单一实际地址。

下图显示典型的一对多静态 NAT 场景。由于实际主机进行的发起的流量始终使用第一个映射地址,因此从技术上说,实际主机 IP/第一个映射 IP 的转换是唯一的双向转换。

图 10. 一对多静态 NAT

例如,在 10.1.2.27 上有一个负载均衡器。根据请求的 URL,它会将流量重新定向到正确的 Web 服务器。

图 11. 一对多静态 NAT 示例
其他映射场景(不推荐)

NAT 具有很高的灵活性,允许任何类型的静态映射场景:不仅包括一对一、一对多,还包括少对多、多对少和多对一映射。我们推荐仅使用一对一或一对多映射。其他映射选项可能会导致意外后果。

在功能上,少对多与一对多相同;但是,因为此配置更加复杂,而且实际映射可能不会一目了然,所以我们建议为每个需要一对多配置的实际地址创建该配置。例如,对于少对多场景,少量的实际地址会按顺序映射到多个映射地址(A 到 1、B 到 2、C 到 3)。当映射所有实际地址时,下一个映射地址会映射到第一个实际地址,依此类推,直到映射了所有映射地址为止(A 到 4、B 到 5、C 到 6)。这将导致每个实际地址有多个映射地址。就像一对多配置一样,仅第一个映射是双向的;后续映射可以将流量发起实际主机,但所有实际主机发起的流量仅将第一个映射地址用于源。

下图显示典型的少对多静态 NAT 场景。

图 12. 少对多静态 NAT

对于实际地址多于映射地址的多对少或多对一配置,映射地址会在实际地址用尽之前先用尽。仅最低实际 IP 地址和映射池之间的映射可以导致双向发起。剩余的更高的实际地址可以发起流量,但不能将流量发起到这些地址(由于五元组 [源 IP、目标 IP、源端口、目标端口、协议] 的唯一性,连接的返回流量会定向到正确的实际地址)。



多对少或多对一 NAT 不是 PAT。如果两台实际主机使用同一源端口号,连接到同一外部服务器和同一 TCP 目标端口,并且两台主机转换到同一 IP 地址,那么由于地址冲突(五元组不唯一),将重置两个连接。


下图显示一个典型的多对少静态 NAT 场景。

图 13. 多对少静态 NAT

我们建议不要这样使用静态规则,而是为需要双向发起的流量创建一对一规则,为其他地址创建动态规则。

配置静态自动 NAT

使用静态自动 NAT 规则将地址转换为可在目标网络中路由的其他 IP 地址。您还可以通过静态 NAT 规则执行端口转换。

开始之前

选择对象 > 对象管理并创建规则中所需的网络对象或组。或者,您可以在定义 NAT 规则时创建对象。对象必须满足以下要求:

  • 原始地址 - 该地址必须是网络对象(而非组),而且它可以是主机、范围或子网。

  • 转换后的源 - 可以通过以下选项指定转换后的地址:

    • 目标接口 - 要使用目标接口地址,不需要网络对象。该选项配置具有端口转换的静态接口 NAT:源地址/端口转换为接口的地址和相同的端口号。

    • 地址-创建包含主机、范围或子网的网络对象或组。组不能同时包含 IPv4 和 IPv6 地址;其只能包含一种类型。通常,配置相同数量的映射地址和实际地址,以便进行一对一映射。然而,地址数量可以不匹配。

过程

步骤 1

依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

步骤 2

执行以下操作之一:

  • 点击添加规则 (Add Rule) 按钮以创建新规则。
  • 点击编辑 (编辑图标)以编辑现有规则。

右键点击菜单还具有用于剪切、复制、粘贴、插入和删除规则的选项。

步骤 3

配置基本规则选项:

  • NAT 规则 - 选择自动 NAT 规则
  • 类型 (Type) - 选择静态 (Static)

步骤 4

接口对象 (Interface Objects) 上配置以下选项:

  • 源接口对象目标接口对象 - (网桥组成员接口的必选项。)用于识别此 NAT 规则应用的接口的接口对象(安全区域或接口组)。是包含实际接口的对象,流量通过该接口进入设备。目标是包含映射接口的对象,流量通过该接口离开设备。默认情况下,此规则应用于除网桥组成员接口之外的所有接口(任意)。

步骤 5

常规转换上配置以下选项:

  • 原始源 - 包含您要转换的地址的网络对象。
  • 转换后的源 - 以下项之一:
    • 要使用一组地址,请选择地址和包含映射地址的网络对象或组。通常,配置相同数量的映射地址和实际地址,以便进行一对一映射。然而,地址数量可以不匹配。

    • (具有端口转换的静态接口 NAT。)要使用目标接口的地址,请选择目标接口 IP (Destination Interface IP)。您还必须选择特定目标接口。要使用接口的 IPv6 地址,还必须在高级 (Advanced) 上选择 IPv6 选项。该选项配置具有端口转换的静态接口 NAT:源地址/端口转换为接口的地址和相同的端口号。

  • (可选。)原始端口转换后的端口 - 如果需要转换 TCP 或 UDP 端口,请在原始端口中选择协议,并输入原始和转换端口编号。例如,如有必要,可以将 TCP/80 转换为 8080。

步骤 6

(可选。)在高级 (Advanced) 上选择所需选项:

  • 转换与此规则相匹配的 DNS 应答 - 是否转换 DNS 应答中的 IP 地址。对于从映射接口传输到实际接口的 DNS 回复,地址(IPv4 A 或 IPv6 AAAA)记录会从映射值重写为实际值。相反,对于从实际接口传输到映射接口的 DNS 回复,该记录会从实际值重写为映射值。此选项用于特定情况,有时 NAT64/46 转换(其中重写也会在 A 和 AAAA 记录之间转换)需要使用此选项。有关详细信息,请参阅使用 NAT 重写 DNS 查询和响应如果您在进行端口转换,则此选项不可用。
  • IPv6 - 是否为接口 PAT 使用目的地接口的 IPv6 地址。
  • 网络到网络映射 - 对于 NAT 46,请选择此选项以将第一个 IPv4 地址转换为第一个 IPv6 地址,将第二个 IPv4 地址转换为第二个 IPv6 地址,依此类推。如不使用此选项,则将使用 IPv4 嵌入式方法。对于一对一转换,必须使用此选项。
  • 请勿在目标接口上使用代理 ARP - 为映射 IP 地址的传入数据包禁用代理 ARP。如果使用与映射接口相同的网络中的地址,则系统会使用代理 ARP 来应答映射地址的任何 ARP 请求,从而拦截以映射地址为目的地的流量。此解决方案可以简化路由,因为设备不必是任何其他网络的网关。如果需要,可以禁用代理 ARP,在此情况下需要确保在上游路由器上具有正确的路由。通常,对于身份 NAT,是不需要代理 ARP 的,而且在某些情况下,会造成连接问题。

步骤 7

点击保存以添加规则。

步骤 8

点击“NAT”页面上的保存以保存更改。


配置静态手动 NAT

当自动 NAT 不能满足您的需求时,请使用静态手动 NAT 规则。例如,如果您要根据目标进行不同的转换。静态 NAT 会将地址转换为可在目标网络中路由的其他 IP 地址。您还可以通过静态 NAT 规则执行端口转换。

开始之前

依次选择对象 > 对象管理,然后创建规则中所需的网络对象或组。组不能同时包含 IPv4 和 IPv6 地址;只能包含一种类型。或者,您可以在定义 NAT 规则时创建对象。对象还必须满足以下要求:

  • 原始源 (Original Source) - 此选项可以是网络对象或组,而且它可以包含主机、范围或子网。如果要转换所有原始源流量,可以跳过此步骤并在规则中指定任何 (Any)

  • 转换后的源 - 可以通过以下选项指定转换后的地址:

    • 目标接口 - 要使用目标接口地址,不需要网络对象。该选项配置具有端口转换的静态接口 NAT:源地址/端口转换为接口的地址和相同的端口号。

    • 地址 (Address) - 创建包主机、范围或子网的网络对象或组。通常,配置相同数量的映射地址和实际地址,以便进行一对一映射。然而,地址数量可以不匹配。

如果您要在规则中为原始目标 (Original Destination)转换后的目标 (Translated Destination) 配置静态转换,还可以为这些地址创建网络对象或组。如果只需要配置支持端口转换的目标静态接口 NAT,则可以跳过为目标映射地址添加对象的过程,并在规则中指定接口。

您还可以对源和/或目标执行端口转换。在对象管理器中,确保有可以用于原始端口和转换后的端口的端口对象。

过程

步骤 1

依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

步骤 2

执行以下操作之一:

  • 点击添加规则 (Add Rule) 按钮以创建新规则。
  • 点击编辑 (编辑图标)以编辑现有规则。

右键点击菜单还具有用于剪切、复制、粘贴、插入和删除规则的选项。

步骤 3

配置基本规则选项:

  • NAT 规则 - 选择手动 NAT 规则
  • 类型 - 选择静态。该设置仅应用于源地址。如果为目标地址定义转换,则该转换始终为静态。
  • 启用 - 您是否希望规则处于活动状态。可以随后使用“规则”(Rules) 页面上的右键点击菜单激活或停用该规则。
  • 插入 - 要添加规则的位置。可以将其插入类别中(在自动 NAT 规则之前或之后)或指定规则的上方或下方。

步骤 4

接口对象 (Interface Objects) 上配置以下选项:

  • 源接口对象目标接口对象 - (网桥组成员接口的必选项。)用于识别此 NAT 规则应用的接口的接口对象(安全区域或接口组)。是包含实际接口的对象,流量通过该接口进入设备。目标是包含映射接口的对象,流量通过该接口离开设备。默认情况下,此规则应用于除网桥组成员接口之外的所有接口(任意)。

步骤 5

(在转换页面上。)确定原始数据包地址(IPv4 或 IPv6 地址);例如,显示在原始数据包中的数据包地址。

请参阅下图,了解原始数据包与转换后数据包的示例。

  • 原始源 - 包含将要转换的地址的网络对象或组。

  • 原始目标 -(可选。)包含目的目标地址的网络对象或组。如果将此留空,则无论目的目标为何都将应用源地址转换。如果指定目标目的地址,可以为该地址配置静态转换或只是为其使用将身份 NAT 用于该地址。

    可以选择源接口 IP (Source Interface IP) 以使原始目的基于源接口(不能为“任意”[Any])。如果选择此选项,则还必须选择一个已转换后的目的目标对象。要为目的目标地址实施带端口转换的静态接口 NAT,请选择此选项,并为目的目标端口选择适当的端口对象。

步骤 6

确定已转换的数据包地址(IPv4 或 IPv6 地址);例如,显示在目标接口网络中的数据包地址。如果需要,可在 IPv4 与 IPv6 之间进行转换。

  • 转换后的源 - 以下项之一:
    • 要使用一组地址,请选择地址和包含映射地址的网络对象或组。通常,配置相同数量的映射地址和实际地址,以便进行一对一映射。然而,地址数量可以不匹配。

    • (具有端口转换的静态接口 NAT。)要使用目标接口的地址,请选择目标接口 IP (Destination Interface IP)。您还必须选择特定目标接口。要使用接口的 IPv6 地址,还必须在高级 (Advanced) 上选择 IPv6 选项。该选项配置具有端口转换的静态接口 NAT:源地址/端口转换为接口的地址和相同的端口号。

  • 转换后的目标 -(可选。)包含已转换的数据包中使用的目标地址的网络对象或组。如果为原始目标选择了一个对象,则可以通过选择相同的对象确定 NAT(即无转换)。

步骤 7

(可选。)为服务转换确定源或目的服务端口。

如果要配置支持端口转换的静态 NAT,可以为源和/或目的转换端口。例如,可以在 TCP/80 和 TCP/8080 之间进行转换。

NAT 仅支持 TCP 或 UDP。转换端口时,请确保实际和映射服务对象中的协议相同(同为 TCP 或同为 UDP)。对于身份 NAT,可将相同的服务对象同时用于实际和映射端口。

  • 原始源端口转换后的源端口 - 定义源地址的端口转换。
  • 原始目标端口转换后的目标端口 - 定义目标地址的端口转换。

步骤 8

(可选。)在高级 (Advanced) 上选择所需选项:

  • 转换与此规则相匹配的 DNS 应答 - 是否转换 DNS 应答中的 IP 地址。对于从映射接口传输到实际接口的 DNS 回复,地址(IPv4 A 或 IPv6 AAAA)记录会从映射值重写为实际值。相反,对于从实际接口传输到映射接口的 DNS 回复,该记录会从实际值重写为映射值。此选项用于特定情况,有时 NAT64/46 转换(其中重写也会在 A 和 AAAA 记录之间转换)需要使用此选项。有关详细信息,请参阅使用 NAT 重写 DNS 查询和响应如果您在进行端口转换,则此选项不可用。
  • IPv6 - 是否为接口 PAT 使用目的地接口的 IPv6 地址。
  • 网络到网络映射 - 对于 NAT 46,请选择此选项以将第一个 IPv4 地址转换为第一个 IPv6 地址,将第二个 IPv4 地址转换为第二个 IPv6 地址,依此类推。如不使用此选项,则将使用 IPv4 嵌入式方法。对于一对一转换,必须使用此选项。
  • 请勿在目标接口上使用代理 ARP - 为映射 IP 地址的传入数据包禁用代理 ARP。如果使用与映射接口相同的网络中的地址,则系统会使用代理 ARP 来应答映射地址的任何 ARP 请求,从而拦截以映射地址为目的地的流量。此解决方案可以简化路由,因为设备不必是任何其他网络的网关。如果需要,可以禁用代理 ARP,在此情况下需要确保在上游路由器上具有正确的路由。通常,对于身份 NAT,是不需要代理 ARP 的,而且在某些情况下,会造成连接问题。
  • 单向 - 选择此选项以阻止目标地址发起流向源地址的流量。单向选项主要用于测试目的,可能不适用于所有协议。例如,SIP 要求执行协议检查以使用 NAT 转换 SIP 报头,但如果将转换设为单向,则不会发生这种情况。

步骤 9

点击保存以添加规则。

步骤 10

点击“NAT”页面上的保存以保存更改。


身份 NAT

可能有一个 NAT 配置,在其中需要将 IP 地址转换为其本身。例如,如果创建一条将 NAT 应用于每个网络的大体的规则,但想使一个网络免于 NAT,则可以创建一条静态 NAT 规则,以将地址转换为其本身。

下图显示典型的身份 NAT 场景。

图 14. 身份 NAT

以下主题介绍如何配置身份 NAT。

配置身份自动 NAT

使用静态身份自动 NAT 规则可防止地址转换。即,防止将地址转换为自身。

开始之前

选择对象 > 对象管理并创建规则中所需的网络对象或组。或者,您可以在定义 NAT 规则时创建对象。对象必须满足以下要求:

  • 原始地址-该地址必须是网络对象(而非组),而且它可以是主机、范围或子网。

  • 转换后的源 - 其内容与原始源对象完全相同的网络对象或组。您可以使用相同的对象。

过程

步骤 1

依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

步骤 2

执行以下操作之一:

  • 点击添加规则 (Add Rule) 按钮以创建新规则。
  • 点击编辑 (编辑图标)以编辑现有规则。

右键点击菜单还具有用于剪切、复制、粘贴、插入和删除规则的选项。

步骤 3

配置基本规则选项:

  • NAT 规则 - 选择自动 NAT 规则
  • 类型 (Type) - 选择静态 (Static)

步骤 4

接口对象 (Interface Objects) 上配置以下选项:

  • 源接口对象目标接口对象 - (网桥组成员接口的必选项。)用于识别此 NAT 规则应用的接口的接口对象(安全区域或接口组)。是包含实际接口的对象,流量通过该接口进入设备。目标是包含映射接口的对象,流量通过该接口离开设备。默认情况下,此规则应用于除网桥组成员接口之外的所有接口(任意)。

步骤 5

常规转换上配置以下选项:

  • 原始源 - 包含您要转换的地址的网络对象。
  • 转换后的源 - 与原始源相同的对象。或者,您可以选择内容完全相同的其他对象。

不要为身份 NAT 配置原始端口转换后的端口选项。

步骤 6

(可选。)在高级 (Advanced) 上选择所需选项:

  • 转换与此规则匹配的 DNS 回复 - 请勿为身份 NAT 配置此选项。
  • IPv6 - 请勿为身份 NAT 配置此选项。
  • 网络到网络映射 - 请勿为身份 NAT 配置此选项。
  • 不在目标接口上使用代理 ARP - 为映射 IP 地址的传入数据包禁用代理 ARP。如果使用与映射接口相同的网络中的地址,则系统会使用代理 ARP 来应答映射地址的任何 ARP 请求,从而拦截以映射地址为目的地的流量。此解决方案可以简化路由,因为设备不必是任何其他网络的网关。如果需要,可以禁用代理 ARP,在此情况下需要确保在上游路由器上具有正确的路由。通常,对于身份 NAT,是不需要代理 ARP 的,而且在某些情况下,会造成连接问题。
  • 对目标接口执行路由查找 - 如果在为原始源地址和已转换源地址选择同一对象时选择源接口和目标接口,则可以选择此选项,以使系统根据路由表而不是使用在 NAT 规则中配置的目标接口来确定目标接口。

步骤 7

点击保存以添加规则。

步骤 8

点击“NAT”页面上的保存以保存更改。


配置身份手动 NAT

当自动 NAT 不能满足您的需求时,请使用静态身份手动 NAT 规则。例如,如果您要根据目标进行不同的转换。使用静态身份 NAT 规则可防止地址转换。即,防止将地址转换为自身。

开始之前

依次选择对象 > 对象管理,然后创建规则中所需的网络对象或组。组不能同时包含 IPv4 和 IPv6 地址;只能包含一种类型。或者,您可以在定义 NAT 规则时创建对象。对象还必须满足以下要求:

  • 原始源 - 此选项可以是网络对象或组,而且它可以包含主机、范围或子网。如果要转换所有原始源流量,可以跳过此步骤并在规则中指定任何 (Any)

  • 转换后的源 - 与原始源相同的对象或组。或者,您可以选择内容完全相同的其他对象。

如果您要在规则中为原始目标 (Original Destination)转换后的目标 (Translated Destination) 配置静态转换,还可以为这些地址创建网络对象或组。如果只需要配置支持端口转换的目标静态接口 NAT,则可以跳过为目标映射地址添加对象的过程,并在规则中指定接口。

您还可以对源和/或目标执行端口转换。在对象管理器中,确保有可以用于原始端口和转换后的端口的端口对象。您可以为身份 NAT 使用相同的对象。

过程

步骤 1

依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

步骤 2

执行以下操作之一:

  • 点击添加规则 (Add Rule) 按钮以创建新规则。
  • 点击编辑 (编辑图标)以编辑现有规则。

右键点击菜单还具有用于剪切、复制、粘贴、插入和删除规则的选项。

步骤 3

配置基本规则选项:

  • NAT 规则 - 选择手动 NAT 规则
  • 类型 - 选择静态。该设置仅应用于源地址。如果为目标地址定义转换,则该转换始终为静态。
  • 启用 - 您是否希望规则处于活动状态。可以随后使用“规则”(Rules) 页面上的右键点击菜单激活或停用该规则。
  • 插入 - 要添加规则的位置。可以将其插入类别中(在自动 NAT 规则之前或之后)或指定规则的上方或下方。

步骤 4

接口对象 (Interface Objects) 上配置以下选项:

  • 源接口对象目标接口对象 - (网桥组成员接口的必选项。)用于识别此 NAT 规则应用的接口的接口对象(安全区域或接口组)。是包含实际接口的对象,流量通过该接口进入设备。目标是包含映射接口的对象,流量通过该接口离开设备。默认情况下,此规则应用于除网桥组成员接口之外的所有接口(任意)。

步骤 5

确定原始数据包地址(IPv4 或 IPv6 地址);例如,显示在原始数据包中的数据包地址。

请参阅下图,了解原始数据包与转换后数据包的示例,其中在内部主机上执行身份 NAT,但转换外部主机。

  • 原始源 - 包含要转换的地址的网络对象或组。

  • 原始目标 -(可选。)包含目的目标地址的网络对象或组。如果将此留空,则无论目的目标为何都将应用源地址转换。如果指定目标目的地址,可以为该地址配置静态转换或只是为其使用将身份 NAT 用于该地址。

    可以依次选择 接口对象 ,以使原始目标基于源接口(不能为“任意”)。如果选择此选项,则还必须选择一个已转换后的目的目标对象。要为目的目标地址实施带端口转换的静态接口 NAT,请选择此选项,并为目的目标端口选择适当的端口对象。

步骤 6

确定已转换的数据包地址(IPv4 或 IPv6 地址);例如,显示在目标接口网络中的数据包地址。如果需要,可在 IPv4 与 IPv6 之间进行转换。

  • 转换后的源 - 与原始源相同的对象或组。或者,您可以选择内容完全相同的其他对象。
  • 转换后的目标 -(可选。)包含已转换的数据包中使用的目标地址的网络对象或组。如果为原始目标选择了一个对象,则可以通过选择相同的对象确定 NAT(即无转换)。

步骤 7

(可选。)为服务转换确定源或目的服务端口。

如果要配置支持端口转换的静态 NAT,可以为源和/或目的转换端口。例如,可以在 TCP/80 和 TCP/8080 之间进行转换。

NAT 仅支持 TCP 或 UDP。转换端口时,请确保实际和映射服务对象中的协议相同(同为 TCP 或同为 UDP)。对于身份 NAT,可将相同的服务对象同时用于实际和映射端口。

  • 原始源端口转换后的源端口 - 定义源地址的端口转换。
  • 原始目标端口转换后的目标端口 - 定义目标地址的端口转换。

步骤 8

(可选。)在高级 (Advanced) 上选择所需选项:

  • 转换与此规则匹配的 DNS 回复 - 请勿为身份 NAT 配置此选项。
  • IPv6 - 是否为接口 PAT 使用目的地接口的 IPv6 地址。
  • 不在目标接口上使用代理 ARP - 为映射 IP 地址的传入数据包禁用代理 ARP。如果使用与映射接口相同的网络中的地址,则系统会使用代理 ARP 来应答映射地址的任何 ARP 请求,从而拦截以映射地址为目的地的流量。此解决方案可以简化路由,因为设备不必是任何其他网络的网关。如果需要,可以禁用代理 ARP,在此情况下需要确保在上游路由器上具有正确的路由。通常,对于身份 NAT,是不需要代理 ARP 的,而且在某些情况下,会造成连接问题。
  • 对目标接口执行路由查找 - 如果在为原始源地址和已转换源地址选择同一对象时选择源接口和目标接口,则可以选择此选项,以使系统根据路由表而不是使用在 NAT 规则中配置的目标接口来确定目标接口。
  • 单向 - 选择此选项以阻止目标地址发起流向源地址的流量。单向选项主要用于测试目的,可能不适用于所有协议。例如,SIP 要求执行协议检查以使用 NAT 转换 SIP 报头,但如果将转换设为单向,则不会发生这种情况。

步骤 9

点击保存以添加规则。

步骤 10

点击“NAT”页面上的保存以保存更改。


威胁防御 的 NAT 规则属性

使用网络地址转换 (NAT) 规则将 IP 地址转换为其他 IP 地址。通常使用 NAT 规则将私有地址转换为可公开路由的地址。可以将一个地址转换成另一个地址,或可以使用端口地址转换 (PAT) 将多个地址转换为一个或几个地址,并使用端口号区分源地址。

NAT 规则包括以下基本属性。自动 NAT 和手动 NAT 规则的属性相同,除非另行指明。

NAT 类型

是否要配置手动 NAT 规则自动 NAT 规则。自动 NAT 仅转换源地址,不能根据目标地址进行不同的转换。因为自动 NAT 更易于配置,因此除非需要手动 NAT 的附加功能,可以使用自动 NAT。有关两者区别的详细信息,请参阅自动 NAT 和手动 NAT

类型

转换规则是动态还是静态。在实施 PAT 时,动态转换会自动从地址池中选择映射的地址或地址/端口组合。如果要精确定义映射的地址/端口,请使用静态转换。

启用(仅限手动 NAT。)

您是否希望规则处于活动状态。可以随后使用“规则”(Rules) 页面上的右键点击菜单激活或停用该规则。不能禁用自动 NAT 规则。

插入(仅限手动 NAT。)

要添加规则的位置。可以将其插入类别中(在自动 NAT 规则之前或之后)或指定规则的上方或下方。

说明(可选。仅手动 NAT。)

规则的用途说明。

以下主题介绍 NAT 规则属性的选项卡。

接口对象 NAT 属性

接口对象(安全区或接口组)定义适用 NAT 规则的接口。在路由模式下,可将默认值“任何”同时用于源和目标,以适用于所有已分配设备的所有接口。但您通常希望选择特定的源和目标接口。

注意

  • “任何”接口的概念并不适用于桥接组成员接口。当指定“任何”接口时,NAT 将排除所有网桥组成员接口。因此,要将 NAT 应用于网桥组成员,必须指定成员接口。您不能为桥接虚拟接口 (BVI) 本身配置 NAT,只能为成员接口配置 NAT。

    如果选择多个接口对象,则仅当某一已分配的设备上具有包括在所有选定对象中的接口时,才会在该设备上配置 NAT 规则。例如,如果同时选择了源安全区和目标安全区,则这两个区域必须同时包含一个或多个用于指定设备的接口。

  • 如果给定设备上存在多个接口对象,则会为每个接口创建相同的规则。这可能会成为包含目标转换的静态 NAT 规则的问题。由于 NAT 规则基于首次命中规则应用,因此只有为对象配置的第一个接口创建的规则与流量匹配。使用目标转换配置静态 NAT 时,请使用每个设备最多包含一个接口的接口对象(分配给 NAT 策略),以确保获得所需的结果。

源接口对象目标接口对象

(网桥组成员接口的必选项。)用于识别此 NAT 规则应用的接口的接口对象(安全区域或接口组)。是包含实际接口的对象,流量通过该接口进入设备。目标是包含映射接口的对象,流量通过该接口离开设备。默认情况下,此规则应用于除网桥组成员接口之外的所有接口(任意)。

自动 NAT 的转换属性

使用 转换 选项定义源地址和映射的转换后地址。以下属性仅适用于自动 NAT。

原始源(始终为必填项)。

包含您要转换的地址的网络对象。该地址必须是网络对象(而非组),而且可以是主机、范围或子网。

您不能为系统定义的 any-ipv4 或 any-ipv6 对象创建自动 NAT 规则。

转换后的源(通常为必填项)。

您要转换到的映射地址。您在此处选择的选项取决于定义的转换规则类型。

  • 动态 NAT - 包含映射地址的网络对象或组。该地址可以是网络对象或组,但是它不能包含子网。组不能同时包含 IPv4 和 IPv6 地址,它只能包含一种类型的地址。如果某个组同时包含范围和主机 IP 地址,则范围将用于动态 NAT,主机 IP 地址将用作 PAT 回退。

  • 动态 PAT - 以下项之一:

    • (接口 PAT。)要使用目标接口的地址,请选择目标接口 IP (Destination Interface IP)。您还必须选择特定目标接口。要使用接口的 IPv6 地址,还必须在高级 (Advanced) 上选择 IPv6 选项。请勿配置 PAT 池。

    • 要使用目标接口地址以外的单个地址,请选择为此用途创建的主机网络对象。请勿配置 PAT 池。

    • 要使用 PAT 池,请将转换后的源保留为空。在 PAT 池 (PAT Pool) 上选择 PAT 池对象。

  • 静态 NAT - 以下项之一:

    • 要使用一组地址,请选择地址和包含映射地址的网络对象或组。该对象或组可以包含主机、范围或子网。通常,配置相同数量的映射地址和实际地址,以便进行一对一映射。然而,地址数量可以不匹配。

    • (具有端口转换的静态接口 NAT。)要使用目标接口的地址,请选择目标接口 IP (Destination Interface IP)。您还必须选择特定目标接口。要使用接口的 IPv6 地址,还必须在高级选项卡上选择 IPv6 选项。该选项配置具有端口转换的静态接口 NAT:源地址/端口转换为接口的地址和相同的端口号。

  • 身份 NAT - 与原始源相同的对象。或者,您可以选择内容完全相同的其他对象。

原始端口转换后的端口(仅静态 NAT)。

如果需要转换 TCP 或 UDP 端口,请在原始端口中选择协议,并输入原始和转换端口编号。例如,如有必要,可以将 TCP/80 转换为 8080。不要为身份 NAT 配置这些选项。

手动 NAT 的转换属性

使用 转换 选项定义源地址和映射的转换后地址。以下属性仅适用于手动 NAT。所有选项均为可选,除非另行指明。

原始源(始终为必填项)。

包含您要转换的地址的网络对象或组。该地址可以是网络对象或组,而且它可以包含主机、范围或子网。如果要转换所有原始源流量,可以在规则中指定任何

转换后的源(通常为必填项)。

您要转换到的映射地址。您在此处选择的选项取决于定义的转换规则类型。

  • 动态 NAT - 包含映射地址的网络对象或组。该地址可以是网络对象或组,但是它不能包含子网。组不能同时包含 IPv4 和 IPv6 地址,它只能包含一种类型的地址。如果某个组同时包含范围和主机 IP 地址,则范围将用于动态 NAT,主机 IP 地址将用作 PAT 回退。

  • 动态 PAT - 以下项之一:

    • (接口 PAT。)要使用目标接口的地址,请选择目标接口 IP (Destination Interface IP)。您还必须选择特定目标接口。要使用接口的 IPv6 地址,还必须在高级 (Advanced) 上选择 IPv6 选项。请勿配置 PAT 池。

    • 要使用目标接口地址以外的单个地址,请选择为此用途创建的主机网络对象。请勿配置 PAT 池。

    • 要使用 PAT 池,请将转换后的源保留为空。在 PAT 池 (PAT Pool) 上选择 PAT 池对象。

  • 静态 NAT - 以下项之一:

    • 要使用一组地址,请选择地址和包含映射地址的网络对象或组。该对象或组可以包含主机、范围或子网。通常,配置相同数量的映射地址和实际地址,以便进行一对一映射。然而,地址数量可以不匹配。

    • (具有端口转换的静态接口 NAT。)要使用目标接口的地址,请选择目标接口 IP (Destination Interface IP)。您还必须选择特定目标接口。要使用接口的 IPv6 地址,还必须在高级选项卡上选择 IPv6 选项。该选项配置具有端口转换的静态接口 NAT:源地址/端口转换为接口的地址和相同的端口号。

  • 身份 NAT - 与原始源相同的对象。或者,您可以选择内容完全相同的其他对象。

原始目标

包含目的目标地址的网络对象或组。如果将此留空,则无论目的目标为何都将应用源地址转换。如果指定目标目的地址,可以为该地址配置静态转换或只是为其使用将身份 NAT 用于该地址。

可以选择源接口 IP (Source Interface IP) 以使原始目的基于源接口(不能为“任意”[Any])。如果选择此选项,则还必须选择一个已转换后的目的目标对象。要为目的目标地址实施带端口转换的静态接口 NAT,请选择此选项,并为目的目标端口选择适当的端口对象。

转换目标

包含已转换的数据包中使用的目标地址的网络对象或组。如果为原始目标选择了一个对象,则可以通过选择相同的对象确定 NAT(即无转换)。

您可以使用指定完全限定域名作为转换目的的网络对象;有关更多信息,请参阅 FQDN 目的准则

原始源端口转换后的源端口原始目标端口转换后的目标端口

为原始和转换后的数据包定义源和目标服务的端口对象。您可以转换端口,或者选择同一对象以便在没有转换端口的情况下使规则敏感察觉到该服务。在配置服务时请记住以下规则:

  • (动态 NAT 或 PAT。)不能对原始源端口转换后的源端口进行转换。您可以仅对目标端口进行转换。

  • NAT 仅支持 TCP 或 UDP。转换端口时,请确保实际和映射服务对象中的协议相同(同为 TCP 或同为 UDP)。对于身份 NAT,可将相同的服务对象同时用于实际和映射端口。

PAT 池 NAT 属性

在配置动态 NAT 时,可以定义一个地址池,以用于使用 PAT 池选项卡上的属性的“端口地址转换”。

启用 PAT 池

选择此选项可为 PAT 配置一个地址池。

PAT

用于以下 PAT 池之一的地址:

  • 地址 - 定义 PAT 池地址的对象,或者是包括某一范围的网络对象,或者是包含主机、范围或二者的网络对象组。不能包含子网。组不能同时包含 IPv4 和 IPv6 地址,它只能包含一种类型的地址。

  • 目标接口 IP-指示您希望将目标接口用作 PAT 地址。对于此选项,必须选择某一特定 目标接口对象;不能将 任何 用作目标接口。这是实施接口 PAT 的另一种方法。

循环法

以轮询方式分配地址/端口。默认情况下,如果不采用轮询,在使用下一个 PAT 地址之前,将分配 PAT 地址的所有端口。轮询方法分配来自池中每个 PAT 地址的一个地址/端口,然后才返回再次使用第一个地址,接着是第二个地址,以此类推。

扩展 PAT 表

使用扩展 PAT。通过将目的地地址和端口纳入转换信息,相对于按 IP 地址,扩展 PAT 将按服务使用 65535 个端口。通常,创建 PAT 转换时,不考虑目的地端口和地址,因此限制为每个 PAT 地址 65535 个端口。例如,通过扩展 PAT,您可以创建在访问 192.168.1.7:23 时转到 10.1.1.1:1027 的转换,以及在访问 192.168.1.7:80 时转到 10.1.1.1:1027 的转换。不能将此选项用于接口 PAT 或接口 PAT 回退。

不分段端口范围包括保留端口

在分配 TCP/UDP 端口时使用 1024 到 65535 的端口范围作为单个扁平范围。(6.7 以下版本)为转换选择映射端口号时,PAT 使用实际源端口号(若可用)。然而,如果不使用此选项,则当实际端口可用时,将默认从与实际端口号相同的端口范围选择映射端口:1 到 511、512 到 1023 以及 1024 到 65535。为了避免用尽低端口号范围的端口,请配置此设置。要使用 1 到 65535 的整个范围,另请勾选包括保留端口 (Include Reserved Ports) 选项。对于运行版本 6.7 或更高版本的 威胁防御 设备,无论是否选择该选项,始终配置扁平端口范围。您仍可以为这些系统选择包括保留端口 (Include Reserved Ports) 选项,并且系统将采用该设置。

阻止分配

启用端口块分配。对于运营商级或大规模 PAT,可以为每个主机分配一个端口块,而非由 NAT 每次分配一个端口转换。如果分配端口块,来自该主机的后续连接将使用该块中随机选定的新端口。如果主机将所有端口的活动连接置于基元块中,可根据需要分配更多块。只能在 1024-65535 范围内分配端口块。端口块分配与轮询兼容,但无法将其与扩展 PAT 或不分段端口范围选项一起使用。也无法使用接口 PAT 回退。

高级 NAT 属性

在配置 NAT 时,可以在高级选项中配置提供专业化服务的属性。所有这些属性都是可选的:仅当需要服务时才对其进行配置。

转换与此规则匹配的 DNS 回复

是否转换 DNS 应答中的 IP 地址。对于从映射接口传输到实际接口的 DNS 回复,地址(IPv4 A 或 IPv6 AAAA)记录会从映射值重写为实际值。相反,对于从实际接口传输到映射接口的 DNS 回复,该记录会从实际值重写为映射值。此选项用于特定情况,有时 NAT64/46 转换(其中重写也会在 A 和 AAAA 记录之间转换)需要使用此选项。有关详细信息,请参阅使用 NAT 重写 DNS 查询和响应如果在静态 NAT 规则中进行端口转换,则此选项不可用。

贯穿到接口 PAT(目标接口)(仅动态 NAT。)

当已分配其他映射地址后,是否将目标接口的 IP 地址用作备份方法(接口 PAT 回退)。仅当您选择不是网桥组成员的目的地接口时,此选项才可用。要使用接口的 IPv6 地址,另请勾选 IPv6 选项。如果已配置了接口 PAT 配置作为转换的地址,则不能选择此选项。另外,配置 PAT 池时也不能选择此选项。

IPv6

是否为接口 PAT 使用目的地接口的 IPv6 地址。

网络到网络映射(仅静态 NAT)。

对于 NAT 46,请选择此选项以将第一个 IPv4 地址转换为第一个 IPv6 地址,将第二个 IPv4 地址转换为第二个 IPv6 地址,依此类推。如不使用此选项,则将使用 IPv4 嵌入式方法。对于一对一转换,必须使用此选项。

不在目标接口上使用代理 ARP(仅静态 NAT。)

为映射 IP 地址的传入数据包禁用代理 ARP。如果使用与映射接口相同的网络中的地址,则系统会使用代理 ARP 来应答映射地址的任何 ARP 请求,从而拦截以映射地址为目的地的流量。此解决方案可以简化路由,因为设备不必是任何其他网络的网关。如果需要,可以禁用代理 ARP,在此情况下需要确保在上游路由器上具有正确的路由。通常,对于身份 NAT,是不需要代理 ARP 的,而且在某些情况下,会造成连接问题。

对目标接口执行路由查找(仅静态身份 NAT。仅路由模式。)

如果在为原始源地址和已转换源地址选择同一对象时选择源接口和目标接口,则可以选择此选项,以使系统根据路由表而不是使用在 NAT 规则中配置的目标接口来确定目标接口。

单向(仅手动 NAT,仅静态 NAT。)

选择此选项以阻止目标地址发起流向源地址的流量。单向选项主要用于测试目的,可能不适用于所有协议。例如,SIP 要求执行协议检查以使用 NAT 转换 SIP 报头,但如果将转换设为单向,则不会发生这种情况。

转换 IPv6 网络

当需要在仅 IPv6 网络和仅 IPv4 网络之间传递流量时,需要使用 NAT 在地址类型之间进行转换。即使两个都是 IPv6 网络,您也可能需要对外部网络隐藏内部地址。

对于 IPv6 网络,您可以使用以下转换类型:

  • NAT64、NAT46 - 将 IPv6 数据包转换成 IPv4 数据包,反之亦然。您需要定义两个策略,一个用于 IPv6 向 IPv4 的转换,另一个用于 IPv4 向 IPv6 的转换。虽然您可以使用单一 手动 NAT 规则完成此任务,但如果 DNS 服务器位于外部网络,则可能需要重写 DNS 响应。由于在指定了目标的情况下,无法在手动 NAT 规则中启用 DNS 重写,所以最好创建两个自动 NAT 规则。



    NAT46 仅支持静态映射。


  • NAT66 - 将 IPv6 数据包转换为不同的 IPv6 地址。我们建议使用静态 NAT。尽管可以使用 NAT 或 PAT,但由于 IPv6 地址大量供应,因此不必使用动态 NAT。



NAT64 和 NAT 46 仅可以在标准路由接口上使用。NAT66 可在路由接口和网桥组成员接口上使用。


NAT64/46:将 IPv6 地址转换为 IPv4 地址

当流量从 IPv6 网络进入仅 IPv4 网络时,您需要将 IPv6 地址转换为 IPv4 地址,并将流量从 Ipv4 返回 IPv6。您需要定义两个地址池,一个 IPv4 地址池用于绑定 IPv4 网络中的 IPv6 地址,另一个 IPv6 地址池用于绑定 IPv6 网络中的 IPv4 地址。

  • NAT64 规则的 IPv4 地址池一般较小,通常可能没有足够的地址与 IPv6 客户端地址一对一映射。与动态或静态 NAT 相比,动态 PAT 可以更容易满足可能的大量 IPv6 客户端地址需要。

  • NAT46 规则的 IPv6 地址池可以等于或大于要映射的 IPv4 地址数。这允许每个 IPv4 地址映射到不同的 IPv6 地址。NAT46 仅支持静态映射,因此您不能使用动态 PAT。

您需要定义两个策略,一个用于源 IPv6 网络,一个用于目标 IPv4 网络。虽然您可以使用单一 手动 NAT 规则完成此任务,但如果 DNS 服务器位于外部网络,则可能需要重写 DNS 响应。由于在指定了目标的情况下,无法在手动 NAT 规则中启用 DNS 重写,所以最好创建两个自动 NAT 规则。

NAT64/46 示例:内部 IPv6 网络与外部 IPv4 互联网

以下是一个非常简单的示例,假设您具有仅包含 IPv6 的内部网络,且您希望将发送到互联网的流量转换为 IPv4。此示例假定您无需 DNS 转换,以便可以在单个手动 NAT 规则中执行 NAT64 和 NAT46 转换。


基本 NAT64 网络图。

在本例中,借助外部接口的 IP 地址,使用动态接口 PAT 将内部 IPv6 网络转换为 IPv4。将外部 IPv4 流量静态转换为 2001:db8::/96 网络中的地址,允许在内部网络中传输。

过程

步骤 1

创建定义内部 IPv6 网络的网络对象。

  1. 选择对象 > 对象管理

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 定义内部 IPv6 网络。

    为网络对象命名(例如,inside_v6),然后输入网络地址 2001:db8::/96。

  4. 点击保存 (Save)

步骤 2

创建手动 NAT 规则以将 IPv6 网络转换为 IPv4 并再次返回。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 = 手动 NAT 规则。

    • 类型 (Type)= 动态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目标接口对象 = 外部。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = inside_v6 网络对象。

    • 已转换的源 = 目标接口 IP

    • 原始目标 (Original Destination) = inside_v6 网络对象。

    • 转换后的目标 (Translated Destination) = any-ipv4 网络对象。

  6. 点击确定 (OK)

    使用此规则时,从内部接口上的 2001:db8::/96 子网流向外部接口的任何流量都将接受使用外部接口 IPv4 地址进行的 NAT64 PAT 转换。相反,外部网络中的任何 IPv4 地址到达内部接口,都将使用嵌入式 IPv4 地址方法转换为 2001:db8::/96 网络中的一个地址。

  7. 点击 NAT 规则页面上的保存 (Save)


NAT64/46 示例:包含外部 IPv4 互联网和 DNS 转换的内部 IPv6 网络

下面是一个典型的示例:内部网络只支持 IPv6,但外部互联网上有一些内部用户所需的服务只支持 IPv4。


NAT64 网络图。

在本例中,借助外部接口的 IP 地址,使用动态接口 PAT 将内部 IPv6 网络转换为 IPv4。将外部 IPv4 流量静态转换为 2001:db8::/96 网络中的地址,允许在内部网络中传输。对 NAT46 规则启用 DNS 重写,使外部 DNS 服务器的回复可以从 A (IPv4) 记录转换为 AAAA (IPv6) 记录,地址也能从 IPv4 地址转换为 IPv6 地址。

当内部 IPv6 网络中地址为 2001:DB8::100 的客户端尝试打开 www.example.com 时,此 Web 请求的典型顺序如下。

  1. 客户端的计算机向地址为 2001:DB8::D1A5:CA81 的 DNS 服务器发送 DNS 请求。NAT 规则对 DNS 请求中的源和目的进行以下转换:

    • 2001:DB8::100 转换为 209.165.201.1 上的唯一端口(NAT64 接口 PAT 规则。)

    • 2001:DB8::D1A5:CA81 转换为 209.165.202.129(NAT46 规则。)D1A5:CA81 是 209.165.202.129 的 IPv6 对应物。)

  2. DNS 服务器以 A 记录进行响应,指出 www.example.com 位于 209.165.200.225。NAT46 规则(已启用 DNS 重写)将 A 记录转换为 IPv6 对应物 AAAA 记录,并在 AAAA 记录中将 209.165.200.225 转换为 2001:db8:D1A5:C8E1。此外,DNS 响应中的源地址和目标地址未转换:

    • 209.165.202.129 转换为 2001:DB8::D1A5:CA81

    • 209.165.201.1 转换为 2001:db8::100

  3. IPv6 客户端现在有 Web 服务器的 IP 地址,于是向位于 2001:db8:D1A5:C8E1 的 www.example.com 发出 HTTP 请求。(D1A5:C8E1 是 209.165.200.225 的 IPv6 对应物。)HTTP 请求中的源和目的进行转换:

    • 2001:DB8::100 转换为 209.156.101.54 上的唯一端口(NAT64 接口 PAT 规则。)

    • 2001:db8:D1A5:C8E1 转换为 209.165.200.225(NAT46 规则。)

以下步骤程序介绍了如何配置此示例。

开始之前

确保具有包含用于设备的接口的接口对象(安全区或接口组)。在本示例中,我们假定接口对象是名为内部外部的安全区。要配置接口对象,请依次选择对象 > 对象管理,然后选择接口

过程

步骤 1

创建定义内部 IPv6 网络和外部 IPv4 网络的网络对象。

  1. 选择对象 > 对象管理

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 定义内部 IPv6 网络。

    为网络对象命名(例如,inside_v6),然后输入网络地址 2001:db8::/96。

  4. 点击保存 (Save)

  5. 点击添加网络 (Add Network) > 添加对象 (Add Object)并定义外部 IPv4 网络。

    为网络对象命名(例如,outside_v4_any),然后输入网络地址 0.0.0.0/0。

  6. 点击保存 (Save)

步骤 2

为内部 IPv6 网络配置 NAT64 动态 PAT 规则。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 (Type)= 动态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目标接口对象 = 外部。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = inside_v6 网络对象。

    • 已转换的源 = 目标接口 IP


    NAT64 动态 PAT 规则。

  6. 点击确定 (OK)

    使用此规则时,从内部接口上的 2001:db8::/96 子网流向外部接口的任何流量都将接受使用外部接口 IPv4 地址进行的 NAT64 PAT 转换。

步骤 3

为外部 IPv4 网络配置静态 NAT46 规则。

  1. 点击添加规则 (Add Rule)

  2. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 = 静态。

  3. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 外部。

    • 目标接口对象 = 内部。

  4. 转换 (Translation) 上配置以下选项:

    • 原始源 = outside_v4_any 网络对象。

    • 转换后的源 > 地址 (Translated Source Address) = inside_v6 网络对象。

  5. 高级 (Advanced) 选项卡上,选择转换与此规则匹配的 DNS 回复 (Translate DNS replies that match this rule)

  6. 点击确定 (OK)

    使用此规则时,外部网络中的任何 IPv4 地址到达内部接口,都将使用嵌入式 IPv4 地址方法转换为 2001:db8::/96 网络中的一个地址。此外,DNS 响应从 A (IPv4) 记录转换为 AAAA (IPv6) 记录,其地址也从 IPv4 地址转换为 IPv6 地址。


NAT66:将 IPv6 地址转换为不同的 IPv6 地址

当从一个 IPv6 网络进入另一个 IPv6 网络时,您可以将地址转换为外部网络上的不同 IPv6 地址。我们建议使用静态 NAT。尽管可以使用 NAT 或 PAT,但由于 IPv6 地址大量供应,因此不必使用动态 NAT。

因为您不是在不同的地址类型之间转换,所以您需要一个单一的 NAT66 转换规则。使用自动 NAT 可轻松地为这些规则建模。但是,如果不想允许返回流量,您可以仅使用手动 NAT 将静态 NAT 规则设为单向。

NAT66 示例:网络间的静态转换

您可以使用自动 NAT 在 IPv6 地址池之间配置静态转换。以下示例说明如何将 2001:db8:122:2091::/96 网络中的内部地址转换为 2001:db8:122:2999::/96 网络中的外部地址。


NAT66 静态转换网络图。

开始之前

确保具有包含用于设备的接口的接口对象(安全区或接口组)。在本示例中,我们假定接口对象是名为内部外部的安全区。要配置接口对象,请依次选择对象 > 对象管理,然后选择接口

过程

步骤 1

创建定义内部 IPv6 网络和外部 IPv6 NAT 网络的网络对象。

  1. 选择对象 > 对象管理

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 定义内部 IPv6 网络。

    为网络对象命名(例如,inside_v6),然后输入网络地址 2001:db8:122:2091::/96。

  4. 点击保存 (Save)

  5. 点击添加网络 (Add Network) > 添加对象 (Add Object) 并定义外部 IPv6 NAT 网络。

    为网络对象命名(例如,outside_nat_v6),然后输入网络地址 2001:db8:122:2999::/96。

  6. 点击保存 (Save)

步骤 2

为内部 IPv6 网络配置静态 NAT 规则。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 = 静态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目标接口对象 = 外部。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = inside_v6 网络对象。

    • 转换后的源 > 地址 (Translated Source Address) = outside_nat_v6 网络对象。

  6. 点击确定 (OK)

    使用此规则,从内部接口上的 2001:db8:122:2091::/96 子网到外部接口的任何流量都会经静态 NAT66 转换为 2001:db8:122:2999::/96 网络上的地址。


NAT66 示例:简单 IPv6 接口 PAT

实施 NAT66 的一个简单方法是将内部地址动态分配给外部接口 IPv6 地址上的不同端口。

为 NAT66 配置接口 PAT 规则时,该接口上配置的所有全局地址均用于 PAT 映射。该接口的链路本地地址或站点本地地址不用于 PAT。


NAT66 接口 PAT 网络图。

开始之前

确保具有包含用于设备的接口的接口对象(安全区或接口组)。在本示例中,我们假定接口对象是名为内部外部的安全区。要配置接口对象,请依次选择对象 > 对象管理,然后选择接口

过程

步骤 1

创建定义内部 IPv6 网络的网络对象。

  1. 选择对象 > 对象管理

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 定义内部 IPv6 网络。

    为网络对象命名(例如,inside_v6),然后输入网络地址 2001:db8:122:2091::/96。

  4. 点击保存 (Save)

步骤 2

为内部 IPv6 网络配置动态 PAT 规则。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 (Type)= 动态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目标接口对象 = 外部。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = inside_v6 网络对象。

    • 已转换的源 = 目标接口 IP

  6. 高级上,选择 IPv6,指示应使用的目标接口 IPv6 地址。

  7. 点击确定 (OK)

    使用此规则,从内部接口的 2001:db8:122:2091::/96 子网到外部接口的任何流量均会通过 NAT66 PAT 转换为为外部接口配置的 IPv6 全局地址之一。


监控 NAT

要对 NAT 连接进行监控和故障排除,请登录设备 CLI 并使用以下命令。

  • show nat 显示 NAT 规则和每个规则的命中计数。还有其他关键字可用于显示 NAT 的其他方面信息。

  • show xlate 显示当前处于活动状态的实际 NAT 转换。

  • clear xlate 允许删除处于活动状态的 NAT 转换。如果更改 NAT 规则,您可能需要删除活动的转换,因为现有连接继续使用旧的转换槽,直到连接结束。清除转换允许系统根据您的新规则,在客户端的下一次连接尝试中为客户端构建新的转换。

NAT 示例

以下主题提供了在威胁防御设备上配置 NAT 的示例。

提供对内部 Web 服务器的访问权限(静态自动 NAT)

以下示例为内部 Web 服务器执行静态 NAT。实际地址位于专用网络上,因此公共地址是必需的。需要静态 NAT,以便主机能够在固定地址发起到 Web 服务器的流量。

图 15. 面向内部 Web 服务器的静态 NAT

开始之前

确保存在包含保护 Web 服务器的设备接口的接口对象(安全区域或接口组)。在本示例中,我们假定接口对象是名为内部外部的安全区。要配置接口对象,请依次选择对象 > 对象管理,然后选择接口

过程


步骤 1

创建定义服务器私有和公共主机地址的网络对象。

  1. 选择对象 > 对象管理

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 定义 Web 服务器的私有地址。

    为网络对象命名(例如,WebServerPrivate),然后输入实际主机 IP 地址 10.1.2.27。选择允许覆盖选项,但不要定义覆盖。

  4. 点击保存 (Save)

  5. 点击添加网络 (Add Network) > 添加对象 (Add Object) 并定义公共地址。

    为网络对象命名(例如,WebServerPublic),并输入主机地址 209.165.201.10。

  6. 点击保存 (Save)

步骤 2

配置对象的静态 NAT。

  1. 选择设备 (Devices) > 设备管理 (Device Management),然后编辑要在其上定义规则的威胁防御设备。选择 NAT

    如果在使用域,请确保当前位于包含该设备的同一分叶域中。

  2. 点击添加 NAT 规则 (Add NAT Rule) > 添加自动 NAT (Add Auto NAT)

  3. 配置以下属性:

    • 类型 = 静态。

    • 源接口 = 内部。

    • 目标接口 = 外部。

    • 原始源 = WebServerPrivate 网络对象。

    • 转换后的源 > 地址 = WebServerPublic 网络对象。


    WebServerPrivate 的静态 NAT 规则。

  4. 点击保存 (Save)

步骤 3

配置对象的静态 NAT。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 = 静态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目标接口对象 = 外部。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = WebServerPrivate 网络对象。

    • 转换后的源 > 地址 = WebServerPublic 网络对象。

  6. 点击保存 (Save)

步骤 4

点击 NAT 规则页面上的保存


面向内部主机的动态自动 NAT 和面向外部 Web 服务器的静态 NAT

当专用网络上的内部用户访问外部 Web 服务器时,以下示例为这些用户配置动态 NAT。此外,当内部用户连接到外部 Web 服务器时,该 Web 服务器地址被转换为显示在内部网络上的地址。

图 16. 面向内部 Web 服务器的动态 NAT,面向外部 Web 服务器的静态 NAT

开始之前

确保存在包含保护 Web 服务器的设备接口的接口对象(安全区域或接口组)。在本示例中,我们假定接口对象是名为内部外部的安全区。要配置接口对象,请依次选择对象 > 对象管理,然后选择接口

过程


步骤 1

为要向其转换内部地址的动态 NAT 池创建一个网络对象组。

  1. 选择对象 > 对象管理

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加组 (Add Group)

  3. 定义动态 NAT 池。

    命名网络对象(例如,myNATpool)。在“所选网络”列表下面的“内联”编辑框中分别输入 209.165.201.20 和 209.165.201.30 之间的 11 个主机地址中的每一个,然后点击添加 (Add)

  4. 点击保存 (Save)

步骤 2

为要向其转换内部地址的动态 NAT 池创建一个网络对象。

  1. 选择对象 (Object) > 对象管理 (Object Management)

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 定义动态 NAT 池。

    为网络对象命名(例如,myNATpool),并输入网络地址范围 209.165.201.20-209.165.201.30。

  4. 点击保存 (Save)

步骤 3

为内部网络创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,MyInsNet),并输入网络地址 10.1.2.0/24。选择允许覆盖选项,但不要定义覆盖。

  3. 点击保存 (Save)

步骤 4

为外部 Web 服务器创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,MyWebServer),并输入主机地址 209.165.201.12。选择允许覆盖选项,但不要定义覆盖。

  3. 点击保存 (Save)

步骤 5

为转换的 Web 服务器地址创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,TransWebServer),并输入主机地址 10.1.2.20。

  3. 点击保存 (Save)

步骤 6

使用动态 NAT 池对象为内部网络配置动态 NAT。

  1. 选择设备 (Devices) > 设备管理 (Device Management),然后编辑要在其上定义规则的威胁防御设备。选择 NAT

    如果在使用域,请确保当前位于包含该设备的同一分叶域中。

  2. 点击添加 NAT 规则 (Add NAT Rule) > 添加自动 NAT (Add Auto NAT)

  3. 配置以下属性:

    • 类型 = 动态。

    • 源接口 = 内部。

    • 目标接口 = 外部。

    • 原始源 = myInsNet 网络对象。

    • 转换后的源 > 地址 (Translated Source Address) = myNATpool 网络组。


    MyInsNet 的动态 NAT 规则。

  4. 点击保存 (Save)

步骤 7

使用动态 NAT 池对象为内部网络配置动态 NAT。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 (Type)= 动态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目标接口对象 = 外部。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = myInsNet 网络对象。

    • 转换后的源 > 地址 (Translated Source Address) = myNATpool 网络组。

  6. 点击保存 (Save)

步骤 8

为 Web 服务器配置静态 NAT。

  1. 点击添加 NAT 规则 (Add NAT Rule) > 添加自动 NAT (Add Auto NAT)

  2. 配置以下属性:

    • 类型 = 静态。

    • 源接口 = 外部。

    • 目标接口 = 内部。

    • 原始源 = myWebServer 网络对象。

    • 转换后的源 > 地址 (Translated Source Address) = TransWebServer 网络对象。


    myWebServer 的静态 NAT 规则。

  3. 点击保存 (Save)

步骤 9

为 Web 服务器配置静态 NAT。

  1. 点击添加规则 (Add Rule)

  2. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 = 静态。

  3. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 外部。

    • 目标接口对象 = 内部。

  4. 转换 (Translation) 上配置以下选项:

    • 原始源 = myWebServer 网络对象。

    • 转换后的源 > 地址 (Translated Source Address) = TransWebServer 网络对象。

  5. 点击保存 (Save)

步骤 10

点击 NAT 规则页面上的保存


具有多个映射地址的内部负载均衡器(静态自动 NAT,一对多)

以下示例显示转换为多个 IP 地址的内部负载均衡器。当外部主机访问其中一个映射 IP 地址时,将该地址反向转换为单一负载均衡器地址。根据请求的 URL,它会将流量重新定向到正确的 Web 服务器。

图 17. 内部负载均衡器的一对多静态 NAT

开始之前

确保存在包含保护 Web 服务器的设备接口的接口对象(安全区域或接口组)。在本示例中,我们假定接口对象是名为内部外部的安全区。要配置接口对象,请依次选择对象 > 对象管理,然后选择接口

过程


步骤 1

为要向其映射负载均衡器的地址创建网络对象组。

  1. 选择对象 > 对象管理

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加组 (Add Group)

  3. 定义地址。

    为网络对象命名(例如,myPublicIPs)。在“所选网络”列表下面的“内联”编辑框中分别输入 3 个主机地址 209.165.201.3、209.165.201.4 和 209.165.201.5,然后点击添加 (Add)

  4. 点击保存 (Save)

步骤 2

为要向其映射负载均衡器的地址创建网络对象。

  1. 选择对象 (Object) > 对象管理 (Object Management)

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 定义地址。

    为网络对象命名(例如,myPublicIPs)并输入网络范围 209.165.201.3-209.165.201.5。

  4. 点击保存 (Save)

步骤 3

为负载均衡器创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,myLBHost),然后输入主机地址 10.1.2.27。选择允许覆盖选项,但不要定义覆盖。

  3. 点击保存 (Save)

步骤 4

为负载均衡器配置静态 NAT。

  1. 选择设备 (Devices) > 设备管理 (Device Management),然后编辑要在其上定义规则的威胁防御设备。选择 NAT

    如果在使用域,请确保当前位于包含该设备的同一分叶域中。

  2. 点击添加 NAT 规则 (Add NAT Rule) > 添加自动 NAT (Add Auto NAT)

  3. 配置以下属性:

    • 类型 = 静态。

    • 源接口 = 内部。

    • 目标接口 = 外部。

    • 原始源 = myLBHost 网络对象。

    • 转换后的源 > 地址 (Translated Source Address) = myPublicIPs 网络组。


    myLBHost 的静态 NAT 规则。

  4. 点击保存 (Save)

步骤 5

为负载均衡器配置静态 NAT。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 = 静态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目标接口对象 = 外部。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = myLBHost 网络对象。

    • 转换后的源 > 地址 (Translated Source Address) = myPublicIPs 网络组。

  6. 点击保存 (Save)

步骤 6

点击 NAT 规则页面上的保存


FTP、HTTP 和 SMTP 的单个地址(具有端口转换的静态自动 NAT)

以下支持端口转换的静态 NAT 示例为远程用户访问 FTP、HTTP 和 SMTP 提供单一地址。实际上,这些服务器是实际网络上的不同设备,但对于每台服务器,可以指定采用端口转换规则的静态 NAT,这些规则使用同一映射 IP 地址和不同端口。

图 18. 支持端口转换的静态 NAT

开始之前

确保您的接口对象(安全区域或接口组)包含保护服务器的设备的接口。在本示例中,我们假定接口对象是名为内部外部的安全区。要配置接口对象,请依次选择对象 > 对象管理,然后选择接口

过程


步骤 1

为 FTP 服务器创建网络对象。

  1. 选择对象 (Object) > 对象管理 (Object Management)

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 为网络对象命名(例如,FTPserver),然后输入 FTP 服务器的实际 IP 地址 10.1.2.27。选择允许覆盖选项,但不要定义覆盖。

  4. 点击保存 (Save)

步骤 2

为 HTTP 服务器创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,HTTPserver),然后输入主机地址 10.1.2.28。选择允许覆盖选项,但不要定义覆盖。

  3. 点击保存 (Save)

步骤 3

为 SMTP 服务器创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,SMTPserver),然后输入主机地址 10.1.2.29。选择允许覆盖选项,但不要定义覆盖。

  3. 点击保存 (Save)

步骤 4

为用于三台服务器的公共 IP 地址创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,ServerPublicIP),然后输入主机地址 209.165.201.3。

  3. 点击保存 (Save)

步骤 5

为 FTP 服务器配置具有端口转换的静态 NAT,并将 FTP 端口映射到其自身。

  1. 选择设备 (Devices) > 设备管理 (Device Management),然后编辑要在其上定义规则的威胁防御设备。选择 NAT

    如果在使用域,请确保当前位于包含该设备的同一分叶域中。

  2. 点击添加 NAT 规则 (Add NAT Rule) > 添加自动 NAT (Add Auto NAT)

  3. 配置以下属性:

    • 类型 = 静态。

    • 源接口 = 内部。

    • 目标接口 = 外部。

    • 原始源 = FTPserver 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = ServerPublicIP 网络对象。

    • 原始端口 (Original Port) > TCP = 21。

    • 转换后的端口 = 21。


    FTP 服务器的静态 NAT 规则。

  4. 点击保存 (Save)

步骤 6

为 FTP 服务器配置具有端口转换的静态 NAT,并将 FTP 端口映射到其自身。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 = 静态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目标接口对象 = 外部。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = FTPserver 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = ServerPublicIP 网络对象。

    • 原始端口 (Original Port) > TCP = 21。

    • 转换后的端口 = 21。

  6. 点击保存 (Save)

步骤 7

为 HTTP 服务器配置具有端口转换的静态 NAT,并将 HTTP 端口映射到其自身。

  1. 点击添加 NAT 规则 (Add NAT Rule) > 添加自动 NAT (Add Auto NAT)

  2. 配置以下属性:

    • 类型 = 静态。

    • 源接口 = 内部。

    • 目标接口 = 外部。

    • 原始源 = HTTPserver 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = ServerPublicIP 网络对象。

    • 原始端口 (Original Port) > TCP = 80。

    • 转换后的端口 = 80。


    HTTP 服务器的静态 NAT 规则。

  3. 点击保存 (Save)

步骤 8

为 HTTP 服务器配置具有端口转换的静态 NAT,并将 HTTP 端口映射到其自身。

  1. 点击添加规则 (Add Rule)

  2. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 = 静态。

  3. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目标接口对象 = 外部。

  4. 转换 (Translation) 上配置以下选项:

    • 原始源 = HTTPserver 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = ServerPublicIP 网络对象。

    • 原始端口 (Original Port) > TCP = 80。

    • 转换后的端口 = 80。

  5. 点击保存 (Save)

步骤 9

为 SMTP 服务器配置具有端口转换的静态 NAT,并将 SMTP 端口映射到其自身。

  1. 点击添加 NAT 规则 (Add NAT Rule) > 添加自动 NAT (Add Auto NAT)

  2. 配置以下属性:

    • 类型 = 静态。

    • 源接口 = 内部。

    • 目标接口 = 外部。

    • 原始源 = SMTPserver 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = ServerPublicIP 网络对象。

    • 原始端口 (Original Port) > TCP = 25。

    • 转换后的端口 = 25。


    SMTP 服务器的静态 NAT 规则。

  3. 点击保存 (Save)

步骤 10

为 SMTP 服务器配置具有端口转换的静态 NAT,并将 SMTP 端口映射到其自身。

  1. 点击添加规则 (Add Rule)

  2. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 = 静态。

  3. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目标接口对象 = 外部。

  4. 转换 (Translation) 上配置以下选项:

    • 原始源 = SMTPserver 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = ServerPublicIP 网络对象。

    • 原始端口 (Original Port) > TCP = 25。

    • 转换后的端口 = 25。

  5. 点击保存 (Save)

步骤 11

点击 NAT 规则页面上的保存


转换因目标而异(动态手动 PAT)

下图显示 10.1.2.0/24 网络上的一台主机正在访问两台不同的服务器。当主机访问位于 209.165.201.11 的服务器时,实际地址将转换为 209.165.202.129:port。当主机访问位于 209.165.200.225 的服务器时,实际地址将转换为 209.165.202.130:port

图 19. 具有不同目标地址的手动 NAT

开始之前

确保具有接口对象(安全区域或接口组),其包含保护服务器的设备的接口。在本例中,我们将假定接口对象是名为内部dmz 的安全区域。要配置接口对象,请选择对象 > 对象管理,然后选择接口

过程


步骤 1

为内部网络创建网络对象。

  1. 选择对象 (Object) > 对象管理 (Object Management)

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 为网络对象命名(例如,myInsideNetwork),然后输入实际网络地址 10.1.2.0/24。

  4. 点击保存 (Save)

步骤 2

为 DMZ 网络 1 创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,DMZnetwork1),然后输入网络地址 209.165.201.0/27(子网掩码为 255.255.255.224)。

  3. 点击保存 (Save)

步骤 3

为 DMZ 网络 1 的 PAT 地址创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,PATaddress1),然后输入主机地址 209.165.202.129。

  3. 点击保存 (Save)

步骤 4

为 DMZ 网络 2 创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,DMZnetwork2),然后输入网络地址 209.165.200.224/27(子网掩码为 255.255.255.224)。

  3. 点击保存 (Save)

步骤 5

为 DMZ 网络 2 的 PAT 地址创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,PATaddress2),然后输入主机地址 209.165.202.130。

  3. 点击保存 (Save)

步骤 6

为 DMZ 网络 1 配置动态手动 PAT。

  1. 选择设备 (Devices) > 设备管理 (Device Management),然后编辑要在其上定义规则的威胁防御设备。选择 NAT

    如果在使用域,请确保当前位于包含该设备的同一分叶域中。

  2. 点击添加 NAT 规则 (Add NAT Rule) > 添加手动 NAT (Add Manual NAT)

  3. 配置以下属性:

    • 类型 = 动态。

    • 源接口 = 内部。

    • 目标接口 = dmz。

    • 原始源 = myInsideNetwork 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = PATaddress1 网络对象。

    • 原始目标 (Original Destination) > 地址 (Address) = DMZnetwork1 网络对象。

    • 转换后的目标 = DMZnetwork1 网络对象。

       

      由于您不需要转换目标地址,因此需要通过为原始目标地址和转换后的目标地址指定相同的地址,从而为其配置身份 NAT。将所有端口字段留空。


    DMZ 网络 1 的动态 NAT 规则。

  4. 点击保存 (Save)

步骤 7

为 DMZ 网络 1 配置动态手动 PAT。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 = 手动 NAT 规则。

    • 类型 (Type)= 动态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目的接口对象 = dmz。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = myInsideNetwork 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = PATaddress1 网络对象。

    • 原始目标 (Original Destination) > 地址 (Address) = DMZnetwork1 网络对象。

    • 转换后的目标 = DMZnetwork1 网络对象。

       

      由于您不需要转换目标地址,因此需要通过为原始目标地址和转换后的目标地址指定相同的地址,从而为其配置身份 NAT。将所有端口字段留空。

  6. 点击保存 (Save)

步骤 8

为 DMZ 网络 2 配置动态手动 PAT。

  1. 点击添加 NAT 规则 (Add NAT Rule) > 添加手动 NAT (Add Manual NAT)

  2. 配置以下属性:

    • 类型 = 动态。

    • 源接口 = 内部。

    • 目标接口 = dmz。

    • 原始源 = myInsideNetwork 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = PATaddress2 网络对象。

    • 原始目标 (Original Destination) > 地址 (Address) = DMZnetwork2 网络对象。

    • 转换后的目标 = DMZnetwork2 网络对象。


    DMZ 网络 2 的动态 NAT 规则。

  3. 点击保存 (Save)

步骤 9

为 DMZ 网络 2 配置动态手动 PAT。

  1. 点击添加规则 (Add Rule)

  2. 配置以下属性:

    • NAT 规则 = 手动 NAT 规则。

    • 类型 (Type)= 动态。

  3. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目的接口对象 = dmz。

  4. 转换 (Translation) 上配置以下选项:

    • 原始源 = myInsideNetwork 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = PATaddress2 网络对象。

    • 原始目标 (Original Destination) > 地址 (Address) = DMZnetwork2 网络对象。

    • 转换后的目标 = DMZnetwork2 网络对象。

  5. 点击保存 (Save)

步骤 10

点击 NAT 规则页面上的保存


转换因目标地址和端口而异(动态手动 PAT)

下图显示源端口和目标端口的使用情况。10.1.2.0/24 网络上的主机同时因为网络服务和 Telnet 服务访问单个主机。当主机进行 Telnet 服务访问服务器时,实际地址将转换为 209.165.202.129:port。当主机进行网络服务访问相同服务器时,真实地址将转换为 209.165.202.130:port

图 20. 具有不同目标端口的手动 NAT

开始之前

确保具有接口对象(安全区域或接口组),其包含保护服务器的设备的接口。在本例中,我们将假定接口对象是名为内部dmz 的安全区域。要配置接口对象,请选择对象 > 对象管理,然后选择接口

过程


步骤 1

为内部网络创建网络对象。

  1. 选择对象 (Object) > 对象管理 (Object Management)

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 为网络对象命名(例如,myInsideNetwork),然后输入实际网络地址 10.1.2.0/24。

  4. 点击保存 (Save)

步骤 2

为 Telnet/Web 服务器创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,TelnetWebServer),然后输入主机地址 209.165.201.11。

  3. 点击保存 (Save)

步骤 3

使用 Telnet 时为 PAT 地址创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,PATaddress1),然后输入主机地址 209.165.202.129。

  3. 点击保存 (Save)

步骤 4

使用 HTTP 时为 PAT 地址创建网络对象。

  1. 点击添加网络 (Add Network) > 添加对象 (Add Object)

  2. 为网络对象命名(例如,PATaddress2),然后输入主机地址 209.165.202.130。

  3. 点击保存 (Save)

步骤 5

为 Telnet 访问创建动态手动 PAT。

  1. 选择设备 (Devices) > 设备管理 (Device Management),然后编辑要在其上定义规则的威胁防御设备。选择 NAT

    如果在使用域,请确保当前位于包含该设备的同一分叶域中。

  2. 点击添加 NAT 规则 (Add NAT Rule) > 添加手动 NAT (Add Manual NAT)

  3. 配置以下属性:

    • 类型 = 动态。

    • 源接口 = 内部。

    • 目标接口 = dmz。

    • 原始源 = myInsideNetwork 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = PATaddress1 网络对象。

    • 原始目标 (Original Destination) > 地址 (Address) = TelnetWebServer 网络对象。

    • 转换后的目标 = TelnetWebServer 网络对象。

    • 原始目标端口 = TELNET 端口对象(系统定义)。

    • 转换后的目标端口 = TELNET 端口对象(系统定义)。

       

      由于您不需要转换目标地址或端口,因此需要通过为原始目标地址和转换后的目标地址指定相同的地址,以及为原始端口和转换后的端口指定相同的端口,从而为它们配置身份 NAT。


    动态 NAT Telnet 规则。

  4. 点击保存 (Save)

步骤 6

为 Telnet 访问创建动态手动 PAT。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 = 手动 NAT 规则。

    • 类型 (Type)= 动态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目的接口对象 = dmz。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = myInsideNetwork 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = PATaddress1 网络对象。

    • 原始目标 (Original Destination) > 地址 (Address) = TelnetWebServer 网络对象。

    • 转换后的目标 = TelnetWebServer 网络对象。

    • 原始目标端口 = TELNET 端口对象(系统定义)。

    • 转换后的目标端口 = TELNET 端口对象(系统定义)。

       

      由于您不需要转换目标地址或端口,因此需要通过为原始目标地址和转换后的目标地址指定相同的地址,以及为原始端口和转换后的端口指定相同的端口,从而为它们配置身份 NAT。

  6. 点击保存 (Save)

步骤 7

为 Web 访问创建动态手动 PAT。

  1. 点击添加 NAT 规则 (Add NAT Rule) > 添加手动 NAT (Add Manual NAT)

  2. 配置以下属性:

    • 类型 = 动态。

    • 源接口 = 内部。

    • 目标接口 = dmz。

    • 原始源 = myInsideNetwork 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = PATaddress2 网络对象。

    • 原始目标 (Original Destination) > 地址 (Address) = TelnetWebServer 网络对象。

    • 转换后的目标 = TelnetWebServer 网络对象。

    • 原始目标端口 = HTTP 端口对象(系统定义)。

    • 转换后的目标端口 = HTTP 端口对象(系统定义)。


    动态 NAT HTTP 规则。

  3. 点击保存 (Save)

步骤 8

为 Web 访问创建动态手动 PAT。

  1. 点击添加规则 (Add Rule)

  2. 配置以下属性:

    • NAT 规则 = 手动 NAT 规则。

    • 类型 (Type)= 动态。

  3. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目的接口对象 = dmz。

  4. 转换 (Translation) 上配置以下选项:

    • 原始源 = myInsideNetwork 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = PATaddress2 网络对象。

    • 原始目标 (Original Destination) > 地址 (Address) = TelnetWebServer 网络对象。

    • 转换后的目标 = TelnetWebServer 网络对象。

    • 原始目标端口 = HTTP 端口对象(系统定义)。

    • 转换后的目标端口 = HTTP 端口对象(系统定义)。

  5. 点击保存 (Save)

步骤 9

点击 NAT 规则页面上的保存


NAT 和站点间 VPN

使用管理中心 VPN 向导(设备 > 站点间)创建基于策略的站点间 VPN 时,可以选择 NAT 免除选项以自动创建规则。您可以在 NAT 策略页面(设备 > NAT > NAT 免除)中查看设备的 NAT 免除。如果不想在 VPN 向导中配置 NAT 免除,可以使用以下程序进行 NAT 免除。

下图显示连接博尔德办公室和圣荷西办公室的站点间隧道。对于要发送到互联网的流量(例如,从博尔德办公室中的 10.1.1.6 到 www.example.com),需要利用 NAT 提供的公用 IP 地址访问互联网。以下示例使用接口 PAT 规则。然而,对于要穿过 VPN 隧道的流量(例如,从博尔德办公室中的 10.1.1.6 到圣荷西办公室中的 10.2.2.78),您不想执行 NAT;您需要通过创建身份 NAT 规则来豁免此流量。身份 NAT 只能将地址转换为其相同的地址。

图 21. 用于站点间 VPN 的接口 PAT 和身份 NAT

以下示例说明 Firewall1(博尔德办公室)的配置。

开始之前

确保您有包含 VPN 中设备接口的接口对象(安全区域或接口组)。在本例中,我们假定接口对象为针对 Firewall1(博尔德办公室)接口的名为 inside-boulderoutside-boulder 的安全区域。要配置接口对象,请选择对象 > 对象管理,然后选择接口

过程


步骤 1

创建对象来定义各种网络。

  1. 选择对象 > 对象管理

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 找到博尔德办公室内部网络。

    为网络对象命名(例如,boulder-network),然后输入网络地址 10.1.1.0/24。

  4. 点击保存 (Save)

  5. 点击添加网络 > 添加对象,并定义内部圣荷西网络。

    为网络对象命名(例如,sanjose-network),然后输入网络地址 10.2.2.0/24。

  6. 点击保存 (Save)

步骤 2

在 Firewall1(博尔德办公室)上,为博尔德办公室网络配置经过 VPN 连接到圣荷西办公室时的手动身份 NAT。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 = 手动 NAT 规则。

    • 类型 = 静态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = inside-boulder。

    • 目标接口对象 = outside-boulder。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = boulder-network 对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = boulder-network 对象。

    • 原始目标 (Original Destination) > 地址 (Address) = sanjose-network 对象。

    • 转换后的目标 = sanjose-network 对象。

       

      由于您不需要转换目标地址,因此需要通过为原始目标地址和转换后的目标地址指定相同的地址,从而为其配置身份 NAT。将所有端口字段留空。此规则为源和目标配置身份 NAT。

  6. 高级 (Advanced) 选项卡中,选择不在目标接口上使用代理 ARP (Do not proxy ARP on Destination interface)

  7. 点击保存 (Save)

步骤 3

在 Firewall1(博尔德办公室)上,为内部博尔德办公室网络配置接入互联网时的手动动态接口 PAT。

  1. 点击添加规则 (Add Rule)

  2. 配置以下属性:

    • NAT 规则 = 手动 NAT 规则。

    • 类型 (Type)= 动态。

    • 插入规则 = 在第一个规则之后的任何位置。由于此规则将应用于所有目的地址,使用 sanjose-network 作为目的的规则必须在此规则之前,否则永远也不会匹配 sanjose-network 规则。默认设置是将新的手动 NAT 规则放到“NAT 规则在自动 NAT 之前”部分的末尾。

  3. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = inside-boulder。

    • 目标接口对象 = outside-boulder。

  4. 转换 (Translation) 上配置以下选项:

    • 原始源 = boulder-network 对象。

    • 转换后的源 = 目标接口 IP。此选项使用目标接口对象中包含的接口来配置接口 PAT。

    • 原始目标 (Original Destination) > 地址 (Address) = 任意(留空)。

    • 转换后的目标 = 任意(留空)。

  5. 点击保存 (Save)

步骤 4

如果您也管理着 Firewall2(圣荷西办公室),您可以为该设备配置类似的规则。

  • 当目标是 boulder-network 时,手动身份 NAT 规则将用于 sanjose-network。为 Firewall2 内部和外部网络创建新的接口对象。

  • 当目标是“任何”时,手动动态接口 PAT 规则将用于 sanjose-network。


使用 NAT 重写 DNS 查询和响应

可能需要配置 威胁防御设备 以修改 DNS 应答,方法是用匹配 NAT 配置的地址替换应答中的地址。配置每条转换规则时,可以配置 DNS 修改。DNS 修改也称为“DNS Doctoring”。

此功能可以重写匹配 NAT 规则的 DNS 查询和应答中的地址(例如,适用于 IPv4 的 A 记录;适用于 IPv6 的 AAAA 记录;或者,适用于逆向 DNS 查询的 PTR 记录)。对于从映射接口穿越到任何其他接口的 DNS 应答,记录会从映射值被重写为实际值。相反,对于从任何接口穿越到映射接口的 DNS 应答,记录会从实际值被重写为映射值。此功能适用于 NAT44、NAT 66、NAT46 和 NAT64。

以下是需要在 NAT 规则上配置 DNS 重写的几种主要情况。

  • 规则为 NAT64 或 NAT46,并且 DNS 服务器位于外部网络上。您需要进行 DNS 重写以实现 DNS A 记录(适用于 IPv4)和 AAAA 记录(适用于 IPv6)之间的转换。

  • DNS 服务器在外部,客户端在内部,并且客户端使用的一些完全限定域名解析到其他内部主机。

  • DNS 服务器在内部并以专用 IP 地址进行响应,客户端在外部,并且客户端访问指向内部托管的服务器的完全限定域名。

DNS 重写限制

以下是 DNS 重写的某些限制:

  • DNS 重写不适用于 PAT,因为多条 PAT 规则适用于每个 A 或 AAAA 记录,而要使用的 PAT 规则不确定。

  • 如果您配置了手动 NAT 规则,当指定了目的地址和源地址时,不能配置 DNS 修改。当流向 A 与 B 时,这类规则可能会有单个地址的不同转换。因此,将精确匹配 DNS 应答中的 IP 地址与正确的两次 NAT 规则相匹配;DNS 应答不包含有关哪个源地址/目标地址组合位于提示 DNS 请求的数据包中的信息。

  • 实际上,DNS 重写在 xlate 条目而非 NAT 规则上完成。因此,如果没有面向动态规则的 xlate,则不能正确完成重写。静态 NAT 也会出现相同的问题。

  • DNS 重写不会重写 DNS 动态更新消息(操作码为 5)。

以下主题提供了 NAT 规则中 DNS 重写的示例。

DNS64 应答修改

下图显示外部 IPv4 网络上的 FTP 服务器和 DNS 服务器。系统有面向外部服务器的静态转换。在这种情况下,当内部 IPv6 用户从 DNS 服务器请求 ftp.cisco.com 的地址时,DNS 服务器将以实际地址 209.165.200.225 作为响应。

由于您希望内部用户使用 ftp.cisco.com 的映射地址(2001:DB8::D1A5:C8E1,其中 D1A5:C8E1 是 209.165.200.225 的 IPv6 对应物),因此需要配置 DNS 回复修改以进行静态转换。本示例还包括面向 DNS 服务器的静态 NAT 转换和面向内部 IPv6 主机的 PAT 规则。

开始之前

确保具有包含用于设备的接口的接口对象(安全区或接口组)。在本示例中,我们假定接口对象是名为内部外部的安全区。要配置接口对象,请依次选择对象 > 对象管理,然后选择接口

过程

步骤 1

为 FTP 服务器、DNS 服务器、内部网络和 PAT 池创建网络对象。

  1. 选择对象 (Object) > 对象管理 (Object Management)

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 定义实际 FTP 服务器地址。

    为网络对象命名(例如,ftp_server),然后输入主机地址 209.165.200.225。

  4. 点击保存 (Save)

  5. 点击添加网络 > 添加对象并定义 FTP 服务器的转换后 IPv6 地址。

    为网络对象命名(例如,ftp_server_v6),然后输入主机地址 2001:DB8::D1A5:C8E1。

  6. 点击保存 (Save)

  7. 点击添加网络 > 添加对象并定义 DNS 服务器的实际地址。

    为网络对象命名(例如,dns_server),然后输入主机地址 209.165.201.15。

  8. 点击保存 (Save)

  9. 点击添加网络 > 添加对象并定义 DNS 服务器的转换后 IPv6 地址。

    为网络对象命名(例如,dns_server_v6)并输入主机地址 2001:DB8::D1A5:C90F(其中 D1A5:C90F 是 209.165.201.15 的 IPv6 对应项)。

  10. 点击保存 (Save)

  11. 点击添加网络 > 添加对象并定义内部 IPv6 网络。

    为网络对象命名(例如,inside_v6),然后输入网络地址 2001:DB8::/96。

  12. 点击保存 (Save)

  13. 点击添加网络 > 添加对象并定义内部 IPv6 网络的 IPv4 PAT 池。

    为网络对象命名(例如,ipv4_pool),然后输入范围 209.165.200.230-209.165.200.235。

  14. 点击保存 (Save)

步骤 2

为 FTP 服务器配置带 DNS 修改的静态 NAT 规则。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 = 静态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 外部。

    • 目标接口对象 = 内部。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = ftp_server 网络对象。

    • 转换后的源 > 地址 (Translated Source Address) = ftp_server_v6 网络对象。

  6. 高级 (Advanced) 上,选择以下选项:

    • 转换匹配该规则的 DNS 回复

    • 网到网映射,因为这是一对一 NAT46 转换。

  7. 点击确定 (OK)

步骤 3

为 DNS 服务器配置静态 NAT 规则。

  1. 点击添加规则 (Add Rule)

  2. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 = 静态。

  3. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 外部。

    • 目标接口对象 = 内部。

  4. 转换 (Translation) 上配置以下选项:

    • 原始源 = dns_server 网络对象。

    • 转换后的源 > 地址 (Translated Source Address) = dns_server_v6 网络对象。

  5. 高级 (Advanced) 上,选择网到网映射 (Net to Net Mapping),因为这是一对一 NAT46 转换。

  6. 点击确定 (OK)

步骤 4

为内部 IPv6 网络配置具有 PAT 池规则的动态 NAT。

  1. 点击添加规则 (Add Rule)

  2. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 (Type)= 动态。

  3. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目标接口对象 = 外部。

  4. 转换 (Translation) 上配置以下选项:

    • 原始源 = inside_v6 网络对象。

    • 转换后的源 > 地址 (Translated Source Address) = 将此字段留空。

  5. PAT 池 (PAT Pool) 中配置以下选项:

    • 启用 PAT 池 = 选择此选项。

    • 转换后的源 > 地址 (Translated Source Address) = ipv4_pool 网络对象。

  6. 点击确定 (OK)


DNS 回复修改、外部接口上的 DNS 服务器

下图显示可从外部接口访问的 DNS 服务器。服务器 ftp.cisco.com 在内部接口上。将 NAT 配置为将 ftp.cisco.com 实际地址 (10.1.3.14) 静态转换为在外部网络上可见的映射地址 (209.165.201.10)。

在这种情况下,您要在此静态规则上启用 DNS 回复修改,以便使用实际地址访问 ftp.cisco.com 的内部用户可以接收来自 DNS 服务器的实际地址,而不是映射地址。

当内部主机发送对 ftp.cisco.com 的地址的 DNS 请求时,DNS 服务器将以映射地址 (209.165.201.10) 作为回复。系统引用内部服务器的静态规则,并将 DNS 回复中的地址转换为 10.1.3.14。如果不启用 DNS 回复修改,则内部主机尝试将流量发送到 209.165.201.10,而不是直接访问 ftp.cisco.com。

开始之前

确保具有包含用于设备的接口的接口对象(安全区或接口组)。在本示例中,我们假定接口对象是名为内部外部的安全区。要配置接口对象,请依次选择对象 > 对象管理,然后选择接口

过程

步骤 1

为 FTP 服务器创建网络对象。

  1. 选择对象 > 对象管理

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 定义实际 FTP 服务器地址。

    为网络对象命名(例如,ftp_server),然后输入主机地址 10.1.3.14。

  4. 点击保存 (Save)

  5. 点击添加网络 (Add Network) > 添加对象 (Add Object),然后定义 FTP 服务器的转换后地址。

    为网络对象命名(例如,ftp_server_outside),然后输入主机地址 209.165.201.10。

  6. 点击保存 (Save)

步骤 2

为 FTP 服务器配置带 DNS 修改的静态 NAT 规则。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 = 静态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 内部。

    • 目标接口对象 = 外部。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = ftp_server 网络对象。

    • 转换后的源 (Translated Source) > 地址 (Address) = ftp_server_outside 网络对象。

  6. 高级 (Advanced) 选项卡上,选择转换与此规则匹配的 DNS 回复 (Translate DNS replies that match this rule)

  7. 点击确定 (OK)


DNS 回复修改、主机网络上的 DNS 服务器

下图显示外部网络上的 FTP 服务器和 DNS 服务器。系统有面向外部服务器的静态转换。在这种情况下,当内部用户从 DNS 服务器请求 ftp.cisco.com 的地址时,DNS 服务器将以实际地址 209.165.20.10 作为响应。由于您希望内部用户使用 ftp.cisco.com 的映射地址 (10.1.2.56),因此需要配置 DNS 回复修改以进行静态转换。

开始之前

确保具有包含用于设备的接口的接口对象(安全区或接口组)。在本示例中,我们假定接口对象是名为内部外部的安全区。要配置接口对象,请依次选择对象 > 对象管理,然后选择接口

过程

步骤 1

为 FTP 服务器创建网络对象。

  1. 选择对象 > 对象管理

  2. 从目录中选择网络 (Network) 并点击添加网络 (Add Network) > 添加对象 (Add Object)

  3. 定义实际 FTP 服务器地址。

    命名网络对象(例如,ftp_server),然后输入主机地址 209.165.201.10。

  4. 点击保存 (Save)

  5. 点击添加网络 (Add Network) > 添加对象 (Add Object),然后定义 FTP 服务器的转换后地址。

    命名网络对象(例如,ftp_server_translated),然后输入主机地址 10.1.2.56。

  6. 点击保存 (Save)

步骤 2

为 FTP 服务器配置带 DNS 修改的静态 NAT 规则。

  1. 依次选择设备 > NAT,并创建或编辑 威胁防御 NAT 策略。

  2. 点击添加规则 (Add Rule)

  3. 配置以下属性:

    • NAT 规则 (NAT Rule) = 自动 NAT 规则。

    • 类型 = 静态。

  4. 接口对象 (Interface Objects) 上配置以下选项:

    • 源接口对象 = 外部。

    • 目标接口对象 = 内部。

  5. 转换 (Translation) 上配置以下选项:

    • 原始源 = ftp_server 网络对象。

    • 转换后的源 > 地址 (Translated Source Address) = ftp_server_translated 网络对象。

  6. 高级 (Advanced) 选项卡上,选择转换与此规则匹配的 DNS 回复 (Translate DNS replies that match this rule)

  7. 点击确定 (OK)


威胁防御 NAT 的历史记录

功能

管理中心最低版本

威胁防御最低版本

详细信息

编辑 NAT 规则时创建网络组。

7.2.6

7.4.1

任意

编辑 NAT 规则时,除网络对象外,还可以创建网络组。

版本 7.3.x 或7.4.0 不支持此功能。

能够一次启用、禁用或删除多个 NAT 规则。

7.2

任意

您可以选择多个 NAT 规则,并同时启用、禁用或删除它们。启用和禁用仅适用于手动 NAT 规则,而删除适用于任何 NAT 规则。

手动 NAT 支持完全限定域名 (FQDN) 对象作为转换目的。

7.1

任意

您可以使用 FQDN 网络对象(例如指定 www.example.com 的网络对象)作为手动 NAT 规则中的转换目标地址。系统根据 DNS 服务器返回的 IP 地址配置规则。

集群中对PAT地址分配的更改。PAT 池 平面端口范围 选项现在已默认启用,并且不可配置。

6.7

任意

更改PAT地址分配给集群成员的方式。以前,地址是分配给集群成员的,因此您的PAT池每个集群成员至少需要一个地址。现在,控制设备改为将每个PAT池地址划分为大小相等的端口块,并在集群成员之间分配它们。每个成员都有相同 PAT 地址的端口块。因此,您可以根据通常需要 PAT 的连接数量,将 PAT 池的大小减小到一个 IP 地址。能在 1024-65535 范围内,在 512 端口块中分配端口块。配置 PAT 池规则时,可以选择在此块分配中包含保留端口 1-1023。例如,在4节点集群中,每个节点获得32个数据块,与每个PAT池IP地址处理65535个连接的单个节点相比,它能够处理每个PAT池IP地址16384个连接。

作为此更改的一部分,所有系统的PAT池(无论是独立系统还是在集群中运行)现在都使用1023-65535的平面端口范围。以前,您可以通过在 PAT 池规则中包含不分段端口范围 (Flat Port Range) 选项来选择性地使用不分段范围。 不分段端口范围 (Flat Port Range) 选项现已被忽略:PAT 池现在始终是不分段的。您可以选择 包括保留端口 (Include Reserved Ports) 选项,以在 PAT 池中包括 1-1023 端口范围。

请注意,如果配置端口块分配( 块分配 (Block Allocation) PAT 池选项),则会使用块分配大小,而不是默认的 512 端口块。此外,不能为集群中的系统的PAT池配置扩展PAT。

能够搜索和过滤 威胁防御 NAT 规则表。

6.7

任意

现在,您可以在 威胁防御 NAT 策略中搜索规则,以帮助您根据 IP 地址、端口、对象名称等查找规则。搜索结果包括部分匹配项。搜索条件会过滤规则表,以便仅显示匹配的规则。

当您编辑 威胁防御 NAT 策略时,我们在规则表上方添加了一个搜索字段。

对服务提供商级 NAT 的改进。

6.5

任意

对于运营商级或大规模 PAT,您可以为每台主机分配端口块,而无需通过 NAT 一次分配一个端口转换(请参阅 RFC 6888)。

新增/修改的屏幕:已将块分配 (Block Allocation) 选项添加到 威胁防御 NAT 规则的“NAT PAT 池”(NAT PAT Pool) 选项卡中。

支持 威胁防御的 NAT 中的网络范围对象。

6.1.0

任意

您现在可以在适当时在 威胁防御 NAT 规则中使用网络范围对象。

威胁防御的网络地址转换 (NAT)。

6.0.1

任意

已添加 威胁防御的 NAT 策略。

新增/修改的屏幕:威胁防御已作为一种 NAT 策略添加到设备 (Devices) > NAT 页面中。