通过 pfSense 在同一个 proxmox 上有多个 public IP 地址

Multiple public IP Address on same proxmox through pfSense

我有一个带有多个 VM/CT 的 proxmox,我目前正在使用 pfSense 进行 NAT 和 VPN。 以前,我只有 2 个 IP 地址,一个用于 proxmox,用于唯一的子网。

现在我想用另一个 IP 地址添加另一个子网,所以我得到了 FO IP 地址并且我分配了与前一个相同的 MAC 地址。

我看到 IP 别名是一个很好的虚拟 IP 解决方案,可以将另一个 IP 匹配到不同的子网。

我为我的 proxmox 创建了另一个接口

auto lo
iface lo inet loopback

auto vmbr0
iface vmbr0 inet static
        address  PROXMOX.IP/24
        gateway  PROXMOX.GW
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0

auto vmbr1
iface vmbr1 inet static
        address  10.0.111.253
        netmask  255.255.255.0
        bridge-ports LAN
        bridge-stp off
        bridge-fd 0

# Only vmbr2 is new, I did not touch the others
auto vmbr2
iface vmbr2 inet static
        address  10.0.1.253
        netmask  255.255.255.0
        bridge-ports LANSWP
        bridge-stp off
        bridge-fd 0

对于 pfSense 的 VM,我使用 VirtIO 添加了 vmbr2

为了一个新的Ubuntu CT,我添加了一个网络设备(virtIO) eth0 / vmbr2 / IP 10.0.1.1/24 / GW 10.0.1.254

我添加了新的虚拟IP WAN 上的 IP 别名,地址 NEW_PUBLIC_IP/32

我为新的 pfSense 界面添加了新的任务 vtnet2 / IPv4:静态 IPv4 / IPv4 地址:10.0.1.254/24

我配置了一个新的 DHCP 服务器: 服务 > DHCP 服务器 > LANSWP 使能够 范围:10.0.1.10 -> 10.0.1.245 DNS 服务器:8.8.8.8、8.8.4.4

ifconfig 告诉我

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.1.1  netmask 255.255.255.0  broadcast 10.0.1.255

看起来很像之前子网的另一个CT。

我打开新服务器的 80 和 443 端口。 现在,网络服务器可以在互联网上使用了,Yeepee !

但是网络服务器无法连接到互联网

我找到了问题的根源。 当我给pfSense添加接口的时候,pfSense并没有自动创建防火墙规则出去。 所以我添加了规则

Pass / LANSWP / IPv4 / Any protocol / From LANSWP net / To any / Allow IPv4 LAN to internet

Pass / LANSWP / IPv6 / Any protocol / From LANSWP net / To any / Allow IPv6 LAN to internet

现在虚拟机可以访问互联网了。