我有一台运行 Proxmox 的计算机,它有 1 个直接连接到互联网的 NIC,并且有一个公共 IP。然后,我运行了不同的虚拟机 (KVM),其中一个是 pfSense。
我想要做的是让主机 (Proxmox) 和 pfSense 位于 DMZ 区域,而其余虚拟机将位于内部 LAN 内,所有流量都必须通过 pfSense。但是我无法让它工作。
我所做的是设置一个连接到( ) 的网桥br0
(包含公共地址、网关...)。由于我具有完全连接性,因此这在主机上有效,但在 pfSense 或任何其他 VM 上则不然。eth0
iface eth0 inet manual
这里的主要问题是,我不确定在 pfSense 中应该使用什么 IP,因为公共 IP 已经在网桥中定义。在 pfSense 中设置相同的 IP 不起作用(似乎合乎逻辑)。我该怎么做?
答案1
你需要
- 创建属于网桥的虚拟适配器(即 tap0)并为其指定一个 IP(例如 192.168.1.1)
- 然后将所有虚拟机连接到该网桥,并让它们使用 192.168.1.1 作为网关,然后
- 通过启用 IP 转发来设置 Proxmox 主机进行 NAT:
- 添加
net.ipv4.ip_forward=1
/etc/sysctl.conf
- 跑步
sysctl -p
- 添加 NAT 规则
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- 添加
这Proxmox 文档很好地涵盖了这一点(并且更详细)。