通过 PfSense 连接到 Internet 的虚拟机的 ESXi 网络设置

通过 PfSense 连接到 Internet 的虚拟机的 ESXi 网络设置

使用 ESXi v6 并进行以下设置:

一个标准交换机:虚拟交换机0

  • vSwitch0 有一个上行链路物理适配器(连接互联网,这是唯一的物理适配器)
  • vSwitch0 VM 网络有 3 台虚拟机(可通过 Web 访问,使用静态 IP)

我想在已经启动并运行的 3 台虚拟机中添加运行 PfSense 的第 4 台虚拟机,所有进出 Internet 流量都将通过该虚拟机。

类似于 3 个虚拟机拥有内部专用网络(例如在 10.10.10.0 范围内),使用 pfSense 防火墙作为网关。如果我创建了一个仅 LAN 网络,这种方法可能有效。3 个虚拟机网卡中的每一个都将连接到这个仅 LAN 网络(假设使用 10.10.10.100 作为网关)。

PfSense 将有两个 NIC,一个连接到物理 NIC,一个连接到仅 LAN 网络,IP 地址为 10.10.10.100。

我已经做了什么:

  • 创建了一个新的 vSwitch,未连接到任何物理 NIC
  • 将 3 个虚拟机网卡分配给此网络

我是否需要将这些 VM NIC 的网关设置为仅 PfSense LAN IP?或者我是否使用 vkernel 并将网关从默认公共 IP 更改为 10.10.10.100(尝试过一次,但与 ESXi 服务器的连接断开了)?

答案1

关于您的设置的警告

如果您只有一个物理适配器,并且系统只有一个上行链路到 Universe,我建议您在此设置中谨慎使用此系统。我建议您去为系统购买一个额外的适配器,并将其添加到您的系统中 - 这样您仍然可以拥有备用物理连接。

只有一个上行链路时您将面临的另一个麻烦是,您必须将 VMKernel 移动到 pfSense 网络,然后您将无法通过 Web 访问该 VMKernel。然后,您需要在 pfSense 上设置 VPN,以便您可以通过 VPN 进入网络,通过 pfSense 访问 ESXi 管理网络。


我的回答中有一些相当重要的注释,你应该注意一下

  • 我不会介绍如何配置 pfSense。这个问题询问的是 ESXi 网络设置,所以我只回答了这部分。如果您需要帮助设置 pfSense,请单独提问,或参考互联网上数十亿个教程之一。
  • 我用来截图的 ESXi 服务器有(9) 物理以太网端口。其中只有两个未使用,因此它们在这些图像中显示为vmnic5vmnic6。而我图表中显示的项目是不是在积极使用中,这种方法仍然“有效”。我已经使用 VMware Workstation(采用不同但类似的方法)和我的 ESXi 对此进行了概念验证测试。
  • 我的 ESXi 系统是 ESXi 6.0U2,已启用嵌入式 Web UI。我可能在 WebUI 和 vSphere Client 之间切换;在我的屏幕截图中,但配置的基本原理保持不变。
  • 我的屏幕截图上没有 VMKernel。我的 ESXi 上的 VmKernel 位于单独的 vSwitch 上,具有单独的上行链路,位于单独的子网上。我的图表但将显示 VMKernel 项。

有了我的强制性警告,这件事实际上并不像看起来那么困难。

身体的设备和物理 pfSense 设备,您将拥有一个 WAN 端口和一个 LAN 端口。您的 WAN 端口将连接到上行链路。LAN 端口将连接到内部网络上的某种类型的交换机和其余 LAN 基础设施。pfSense WAN 将配置为 WAN IP 地址(静态或动态),pfSense LAN 将配置为具有静态设置的 LAN IP 地址,并且您可以为 LAN 打开 DHCP 或让每个系统都具有静态 IP,默认网关指向该 LAN。

对于 ESXi 上的一切,我们都必须模拟这一点,但概念仍然是相同的。


ESXi 和 vSphere

假设您已经拥有虚拟机,那么您可能已经拥有一个vSwitch0,它又链接到物理系统上行链路,就像这样,但是虚拟机位于“虚拟机网络”组中,并且有一个vmnic实际上连接到某个东西的:

vSwitch0-原始

重要的是从现在开始,vSwitch0 上的任何内容现在都将被视为“上行链路”,因为它上面有物理网卡。我们可以稍后更改。pfSense WAN 虚拟网卡将位于此交换机上。

为 pfSense LAN 创建 vSwitch1

我们将在这里创建 LAN。如果您之前创建过 vSwitch,则可以轻松完成此部分,但实际上,我们为虚拟机添加 vSwitch,而不是 VMKernel。但这里的关键是不是将物理适配器连接到此网络,因为我们通过 pfSense 运行它,它将是连接到此 vSwitch 的虚拟 NIC。我在这里将新的端口分组命名为“pfSense LAN”。

创建第二个 vSwitch

vSwitch 设置:未选择物理 NIC!

vSphere 中的网络配置窗口中的新 vSwitch

稍后再讨论:将虚拟机移入 pfSense LAN

因为这可能是一个你不能有停机时间,我将把虚拟机移至 pfSense LAN 作为后续步骤。


pfSense虚拟机

现在,对于 pfSense。创建 pfSense VM 时,您需要为其提供两个虚拟 NIC - 一个用于 pfSense“WAN”,即上行链路所在的“外部”,另一个用于 pfSense“LAN”,即 pfSense 防火墙保护的内部网络,并对 LAN 上的机器进行 NAT 和路由到上行链路。

设置 pfSense 时,您需要确保为 VM 提供两个虚拟网络适配器vNIC从此答案中的这一点开始)。它们每个都需要位于我们拥有的单独网络组上,一个位于vSwitch0(如前所述为“VM 网络”),另一个位于vSwitch1(“pfSense LAN”)。我使用E1000类型适配器 - 它们似乎与基于 FreeBSD 的 pfSense 系统配合良好。

pfSense“新 VM 窗口”用于网络设置

这是可选的,但我强烈推荐它。确保在“pfSense LAN”网络上有一个 VM,您可以在其中访问 GUI,以便在设置后可以访问 pfSense。您需要使用它来配置 pfSense 防火墙,除非您知道在 CLI 上为 pfSense 执行的操作(我不会在这里添加 pfSense 设置步骤,因为这基本上是一个不同的问题。)


仅在为 LAN 和 WAN 设置配置 pfSense 并设置防火墙规则后才转到此部分,以便您可以从“一切都可以从 LAN 传到外部”设置开始,然后在锁定之前开始添加白名单项和防火墙规则。

配置完 pfSense 后,我们回到你可能如果您必须从外部访问虚拟机,则会出现停机。

将虚拟机移至 pfSense LAN

基本上,编辑默认“VM 网络”上的每个 VM 的网络适配器设置,并将它们设置为“pfSense LAN”网络段。如果所有内容都是静态 IP,那么您应该已经全部设置好了,只需确保在 VM 上将“网关”设置为您在 pfSense LAN 适配器上设置的静态 IP。(这样,VM 就可以通过 pfSense 进行路由)。

完成后,您的虚拟机可以通过 pfSense 连接到任何外部设备(通过在每台机器上正确设置网关),然后您只需配置 pfSense 以允许连接入站必要时可从外部对机器进行检查。


现在你已经完成了。pfSense 应该能够连接到网络,虚拟机也应该如此。如果您真的关心“VM 网络”的存在,请添加一个名为vSwitch0“pfSense WAN”的组,然后编辑 pfSense 网络设置以使“VM 网络”vNIC 连接到新的“pfSense WAN”组。

我们唯一没有调整的是 VMKernel 的位置。虽然我不是我要在这里做这个,因为它会严重破坏我的系统,你理论上vSwitch1如果您希望管理仅可从网络的“pfSense LAN”部分访问,则可以将 VMKernel 添加到 的属性中,并在“pfSense LAN”中为其指定一个静态 IP。一旦您确认可以通过那里访问,您就可以删除 上的 VMKernel vSwitch0。但是,如果一切都开始中断,那么您必须对机器进行物理访问,才能通过机器本身重新配置管理网络。

请注意,如果您已经在 LAN 或管理网络所在的类似位置,请不要管管理网络。除非您的 ESXi 需要连接到 Internet,否则您不需要它通过网关。


配置后 pfSense / ESXi 网络拓扑图

实际上,关于 ESXi 以及与您的虚拟机、pfSense 和上行链路有关的拓扑,您最终会得到类似的结果,只关注 ESXi 部分。

与 ESXi、pfSense 和 VM 相关的后配置拓扑

相关内容