如何配置源 NAT(私有 IP => 公有 IP 出站)

如何配置源 NAT(私有 IP => 公有 IP 出站)

我正在运行 VMWare ESXi Free,并将 Zentyal SBS 3.2 作为网关运行。

我有 5 个公共 IPS(CIDR/29我们称它们为 69.1.1.1 - 69.1.1.5),目前 Zentyal 绑定到 69.1.1.1 作为网关,其他 4 个公共 IP 在 Zentyal 中设置为虚拟接口(wan2-wan5)

我有位于专用网络(10.34.251.x)上的机器,当这些机器出站(例如到 Google)时,互联网应该将它们视为网关(69.1.1.1)以外的 IP,这是因为我们的机器需要能够与第三方 API 进行通信,而这些 API 期望这些请求来自特定的 IP。

据我所知,Zentyal 中的 SNAT(源 NAT)用于实现这一点,但我不确定如何配置它,并且在 Zentyal 上找不到关于它的特定文档。

我尝试过用几种不同的方式来进行设置,但都没有结果,而且现在我不知道我是否完全搞错了,或者我缺乏网络和相关术语方面的经验,导致我无法在正确的字段中放置正确的值。

我得到以下表格来在 Zentyal 中设置“SNAT”规则:

Zentyal SNAT 规则屏幕

也许有人可以为上述字段提供一些指导和定义?

SNAT 地址这是我想要伪装的公共 IP 吗?
传出接口这应该是我的外部网卡(连接到公共网络的网卡),还是“专用”接口?听起来这应该是外部接口,因为我希望来自内部网络的流量通过此接口发送出去(无论如何,使用与正常情况不同的 IP)
来源源是在内部网络上(私有 IP 之一?),是我想要伪装的公共 IP,还是完全不同的东西?
目的地这是互联网上的一个地方吗(例如,“仅对网站 Google.com 执行此操作”/IP)或者我是否允许自己再次变得困惑?
服务我假设这允许我限制此规则将应用于哪些服务,但它是否适用于内部网络或正在访问的服务外部网络

如果我可以提供任何进一步的细节或信息来使我正在做的事情更加清晰,我会很乐意这样做。

老实说,任何形式的帮助都会非常感激。我不是网络运营人员,甚至不是接近网络运营人员的人,我每天大部分时间都在编写代码,而我在这家公司的整个“团队”由“我、我自己和我”组成,因此,尽管我试图利用每一个可能的机会拓宽我的知识库,但我只能学这么多,学得这么快,我觉得网络尤其如此,再加上每个解决方案的学习曲线,它们喜欢(从我有限的角度来看)使用与我习惯的略有不同的术语(而且我没有必要的经验来将这些东西与我已经知道的东西进行交叉引用)。

答案1

在对配置进行“暴力破解”之后(第二次),我设法让它工作了。

我第一次尝试以我能想到的所有可能方式配置它时,没有将虚拟接口分配给 WAN 接口。显然,在 Zentyal(可能整个网络世界)中,路由器/网关/无论它在技术上叫什么,都不能完全“了解”您 CIDR 中的其他 IP(假设您有除 /32 之外的其他 IP,并且 IP 超过 1 个)

在我分配了虚拟接口(称为 wan2 -> wan4,实际上并不重要)之后,我甚至没有想过立即再次尝试配置它,因为由于我缺乏网络经验,我认为它们并不重要,也不知道它们是什么(实际上我仍然不知道,也不明白为什么它很重要)。

您的 ISP/DC/ARIN 为您分配的 CIDR 中的所有额外 IP 都已分配给虚拟接口(我认为其他解决方案(如 PFSense)将它们称为虚拟 NIC 或 vNIC,仅供参考),您可以按照下面的配置指南进行操作。请记住,在网络方面我完全没用,而且我做过“强力”地执行此配置直到它起作用(我尝试了所有方法),因此您的里程可能会有所不同(很大)。我可能完全错了,只是运气好而已。

话虽如此,定义!:

SNAT 地址这是您在连接到 Google 之类的网站时尝试“伪装”的 IP。
传出接口我想通过公共网络发送流量,因此我将其设置为“外部”接口。这满足了我的目的。
来源这是位于您后面的机器/虚拟机的 IP私人的您希望在 Internet 上看到的网络具有上面定义的地址SNAT 地址场地。
目的地我相信你会用它来更改哪个网站看到哪个 IP。因此,如果我只想向 Google 显示 69.1.1.2,并希望 Facebook 看到路由器/Zentyal IP,我可以在这里设置(Google 使用循环 DNS,因此可能是一个坏例子,因为当你访问 Google 时你并不总是连接到同一个 IP,不确定你会如何处理!)
服务 大概这类似于目的地,但我不知道它是否影响本地服务或远程服务。因为它紧接着目的地字段,可以安全地假设它会影响目标地址。

Zentyal SNAT 使用占位符进行正确配置

上面您可以看到我使用占位符的配置,这是有效的,并从 Windows 7 Enterprise 客户端进行了测试,通过在 Google 中输入“我的 IP”进行测试(Google 会慷慨地显示他们看到的 IP)。

此外,我在谷歌搜索时看到有人提到,要使用“SNAT”(源 NAT)规则,您需要一个对应的“DNAT”(目标 NAT)规则,这样流量才能返回。如果还需要做其他任何事情才能将流量返回到正确的 VM/机器,Zentyal 会为您完成这项工作(我认为,因为它现在正如人们所期望的那样工作,无需任何进一步的配置)。

如果我能更具体一点,或者这里任何内容完全错误,请告诉我。

更新: 如果你仍然遇到问题,请确保在完成所有操作后单击 Zentyal 管理门户右上角的“保存”按钮任何Zentyal 中的更改,因为当您“保存”当前页面上的设置时,Zentyal 不会写入配置文件(或重新启动服务以便使用新配置)。据推测,这允许您一次进行一系列可能发生冲突的更改,然后一次“提交”它们。老实说,这在调试时可能会令人沮丧,因为很容易忘记这样做,而您只能在键盘上敲打,想知道为什么它“不起作用”。

相关内容