在本文中,我们向您展示如何在配置了NAT的Proxmox上创建专用和虚拟网络桥。在Proxmox虚拟化基础架构中,可以通过CLI(手动编辑网络配置文件)或直观的图形用户界面来完成网络配置。可以使用这两种方法,但是选择哪一种方法取决于您的Linux管理专业知识。从GUI修改网络配置的优点之一是Proxmox VE不会直接将更改写入/etc/network/interfaces。取而代之的是,它将使用一个名为/etc/network/interfaces.new的临时文件,该文件允许一次进行许多相关的更改。它还有助于确保在提交/etc/network/interfaces之前网络更改正确无误,因为错误的网络配置可能会导致节点无法访问。参考在Debian 10(Buster)上安装Proxmox VE 6的方法。

使用NAT在Proxmox上创建虚拟网桥

对于CLI方法,您将直接编辑/etc/network/interfaces配置文件:

sudo vim /etc/network/interfaces
我将基于以下网络参数创建虚拟网桥:
网络:192.168.50.0
网络掩码:255.255.255.0
Proxmox主机IP:192.168.50.1
在服务器上打印当前的活动网络接口:
$ sudo ip -f inet a s
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enp4s0: mtu 1500 qdisc mq state UP group default qlen 1000
inet 192.168.58.236/26 brd 195.201.58.255 scope global enp4s0
valid_lft forever preferred_lft forever
我将创建一个名为vmbr1的虚拟网桥:
auto vmbr1
iface vmbr1 inet static
address 192.168.50.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0

请注意,没有链接到网桥的物理接口(bridge_ports没有)。

配置NAT(伪装)

伪装(Masquerading)允许您创建的专用网络中的虚拟机通过使用主机IP地址进行传出流量来访问外部网络。iptables重写了每个传出数据包,使其看起来像是源自主机,并且响应也相应地进行了重写,以路由到原始发送者。

我将修改上述网络配置,以添加用于互联网连接的路由。由于我的主要接口enp4s0已连接到物理交换机并具有Internet连接,因此我们将路由来自vmbr1的流量:

auto vmbr1
iface vmbr1 inet static
address 192.168.50.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up   iptables -t nat -A POSTROUTING -s '192.168.50.0/24' -o enp4s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.50.0/24' -o enp4s0 -j MASQUERADE

请注意,enp4s0可以替换为VLAN接口或另一个Linux网桥。iptables提供伪装功能,允许专用虚拟网络上的实例访问Internet。

调出网桥界面

通过手动启动网桥接口来验证您的网络配置是否正确:

$ sudo ifup vmbr1
Waiting for vmbr1 to get ready (MAXWAIT is 2 seconds).
检查网桥IP信息:
$ ip address show dev vmbr1
3: vmbr1: mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 16:cf:7e:23:de:1e brd ff:ff:ff:ff:ff:ff
inet 192.168.50.1/24 brd 192.168.50.255 scope global vmbr1
valid_lft forever preferred_lft forever
inet6 fe80::14cf:7eff:fe23:de1e/64 scope link
valid_lft forever preferred_lft forever
从输出中可以确认vmbr1上的IP地址正确。
您应该能够重新启动网络服务,而不会出现任何故障:
$ sudo systemctl restart networking
确认状态为活动(active):
$ systemctl status networking.service

proxmox 配置管理vlan proxmox 网络设置_linux虚拟网桥配置nat

在创建的网桥上创建虚拟机后,它的行为就像直接连接到物理网络一样。即使只有一根网线将所有这些VM连接到网络,网络也会将每个虚拟机视为具有自己的MAC。