默认情况下,PVE直接接入vmbr0时,会让真实网络中充斥着各种虚拟机分配的ip,会逼死强迫症。
给每一台非集群PVE分配一个网络,可以拯救强迫症。
当你希望优先使用无线网络的时候,或仅允许有一个IP时,NAT也是一个解决方案。
主要参考文档如下
https://pve.proxmox.com/wiki/Network_Configuration#_masquerading_nat_with_tt_span_class_monospaced_iptables_span_tt
新建一个vmbr1给虚拟机分配网络

本次演示计划给接入vmbr1的虚拟机分配10.1.2.X 的网络,如图所示新建vmbr1。
编辑/etc/network/interfaces配置文件,加入以下文本。
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.1.2.0/24' -o wlp1s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.1.2.0/24' -o wlp1s0 -j MASQUERADE 注意,这里填写的是无线网络的wlp1s0,如果你不打算使用无线,请修改为对应设备。
修改完成后如图所示。

此时可以使用reboot 命令,重启PVE,也可以选择仅重启网络。
注意,PVE的路由表应该是这样的。

建立并完成vmbr1的配置后,创建的虚拟机需要手动分配IP才能上网。
此时可以选择在PVE中安装dhcp服务,但使用软路由更符合一般地球人类管理习惯。
本次演示的软路由为ikuai,你也可以使用openwrt。
本部分默认用户掌握在PVE中安装windows的技能。



创建虚拟机需要注意,net0需要接入vmbr1中,显示要改为vmware兼容。
新建net1留作备用,不接入网络。
部分软路由系统在只有一个口的时候会抽风,两个口就工作正常。


如图所示则ikuai安装完毕,使用win10虚拟机接入vmbr1,手动分配ip。

点击确定,使用浏览器访问ikuai后台。

ikuai的默认用户名密码是admin/admin,进入打开dhcp功能。


确认配置无误后保存,为了方便管理ikuai,也修改lan口ip。

保存后,将虚拟机ip重新调整为自动获取ip,此时可以尝试上网。
如果需要静态分配ip,可以在ikuai中进行分配。
在进行上述配置后,虚拟机已经可以通过vmbr1走wlp1s0访问网络。
但如果需要从外部访问虚拟机,需要修改真实世界路由器的路由表。
由于各家路由器配置各不相同,此处仅以我使用的小米路由器为例。
即便是小米路由器,部分机型也需要关闭防火墙才能正常访问!
如图所示使用telnet访问路由器并添加路由表。

如图所示,新增一个条目。在PVE外机器tracert测试。

验证可达。