内部服务器无法在其公共 IPs 上与静态双向 NAT 相互联系

内部服务器无法在其公共 IPs 上与静态双向 NAT 相互联系

23313
Created On 09/26/18 13:53 PM - Last Modified 06/01/23 21:04 PM


Resolution


问题

当内部服务器使用静态双向 NAT 地址配置时, 某些服务器无法通过其公用 IP 地址彼此通信。由于在帕洛阿尔托网络设备上评估策略的方式, 这是预期的行为。本文档提出替代配置作为变通办法。

原因

帕洛阿尔托网络防火墙以自上而下的方式评估 NAT 策略。当匹配规则时, 将选择该规则来处理数据包, 并且不执行进一步的查找。要了解此行为如何影响与服务器的连接, 请考虑下面的方案:

内部 Servers.PNG.png

Srv A: 私有 ip = 192.168.89.206, 公共 ip = 10.66.25.101, FQDN = myserverA.com

Srv B: 私有 ip = 192.168.89.210, 公共 ip = 10.66.25.102, FQDN = myserverB.com

Srv C: 私有 ip = 192.168.89.209, 公共 ip = 10.66.25.103, FQDN = myserverC.com

如果三服务器通过各自的专用 IP 地址进行通信, 则通讯不应成为问题。如果每个服务器只知道其他服务器的公共 IP 地址或 FQDN 名称, 并且每个服务器都有静态双向 NAT 策略, 则会出现此问题。

对于编写的每个双向 NAT 语句, 在 dataplane 中创建了2个策略:

  • 一个用于源 NAT
  • 一个用于目标 NAT

这些 NAT 策略按您配置它们的顺序排列, 因此为三服务器配置 bi-NAT1、bi-NAT2 和 bi-NAT3 将以下列顺序显示在运行配置中:

双 NAT1 (s_NAT1)

双 NAT1 (dNAT1)

双 NAT2 (s_NAT2)

双 NAT2 (dNAT2)

双 NAT3 (s_NAT3)

双 NAT3 (dNAT3)

下面是 GUI 上配置的 NAT 策略的代码段, 以及 bi-NAT1 在 CLI 中的显示方式。

注意: bi-NAT2 和 bi-NAT3 CLI 输出进一步低于此示例, 但未显示. 要查看 dataplane 中的完整 NAT 策略, 请在 CLI 中发出 "显示正在运行的 nat 策略" 命令。

非工作 biNAT. png

使用此配置, 当通信来自 Srv_A (192.168.89.206) 时, 前往目标 myserverB.com (10.66.25.102) 时, 双 NAT1 (s_NAT1) 由于自上而下的策略评估而得到匹配, 但通信从来不起作用。生成的通信量显示如下:

wrongzoneNAT.PNG.png

FailedPing.PNG.png

但是, 当来自 Srv_C (192.168.89.209) 的通信来自于相同的目标 myserverB.com (10.66.25.102) 时, 请注意, 由于正确的目标 NAT 双 NAT2 (dNAT2) 得到匹配, 通信成功。该逻辑查找目标 ip 的匹配项, 并且只有该 ip 被转换。生成的通信量显示如下:

samezoneNAT.PNG.png

还请注意, 对于工作翻译, 从区域和到区域都是 trust-L3 (这是正确的)。但是, 对于非工作的翻译, 从区域是 trust-L3 的, 对区域是 untrust-L3 的, Srv_B 永远不会收到 ping 数据包。

解决办法

为了确保服务器通过其公共 IP 地址相互通信, 我们需要为每个服务器编写不同的目标和源 NAT 语句, 然后将这些目标 NATs 放在源 NATs 之上。请注意, 目标 NAT 语句应将源区域设置为 "任意", 以允许来自任何区域的传入通信。

下面是 NAT 语句在重新配置后的外观:

CorrectNAT.PNG.png

另外, 请验证 Srv_A 是否可以与所有内部服务器成功通信。

AllNATWorking.PNG.png

SuccesfulPing.PNG.png

所有者: tasonibare



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClytCAC&lang=zh_CN&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language