全部,
我正在尝试创建一种方法,以便能够在我的 Proxmox 基础设施中使用本地网络。
目前,一切都通过 wlan0 的 NAT 运行,所有内部机器都具有相同的本地 IP 地址 - 这对我来说根本没有用。我正在尝试使用 ovs 修复此问题。
我的 ovs 设置:
[wlan0] [IP Stack]
| |
[maplebridge] -- vport1
-- vport2
我的 ovs 配置:
ovs-vsctl add-br maplebridge #Create my bridge
ip link set maplebridge up # Turn on bridge
ovs-vsctl add-port maplebridge wlan0 # Add wlan0
ip addr del 192.168.1.136/24 dev wlan0 # Remove config from wlan0
dhclient maplebridge # DHCP IP addr to maplebridge
ip tuntap add mode tap vport1 # Create vport1
ip tuntap add mode tap vport2 # Create vport2
ip link set vport1 up # Turn on vport1
ip link set vport2 up # Turn on vport2
ovs-vsctl add-port maplebridge vport1 -- add-port maplebridge vport2 # Add ports to bridge
ovs 设置:
root@henesys:/home/mztriz# ovs-vsctl show
55601e1b-928a-454b-9e7f-d5c24ed47fe9
Bridge maplebridge
Port maplebridge
Interface maplebridge
type: internal
Port "vport2"
Interface "vport2"
Port "vport1"What
Interface "vport1"
Port "wlan0"
Interface "wlan0"
ovs_version: "2.3.0"
/etc/network/interfaces 的内容:
root@henesys:/home/mztriz# cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet static
address 192.168.1.136
netmask 255.255.255.0
gateway 192.168.1.1
wpa-ssid ""
wpa-psk ""
allow-ovs maplebridge
iface maplebridge inet dhcp
ovs_type OVSBridge
ovs_ports vport1 vport2
allow-br0 vport1
iface vport1 inet manual
ovs_bridge vport1
ovs_type OVSPort
allow-br0 vport2
iface vport2 inet manual
ovs_bridge vport2
ovs_type OVSPort
这是我在网络下的 Web 界面上看到的内容:
如果我尝试将其中一台虚拟机设置为使用网络适配器 vport1,则会发生以下情况:
如您所见,我无法将 vports 1 或 2 连接到任何虚拟机。此设置在 Proxmox 中如何工作?
编辑:
有人建议我尝试使用从 Proxmox Web GUI 创建的 ovs 桥接器进行 NAT over NAT,如下所示:
在 Proxmox 内部创建一个新的子网(例如 192.168.2.0/24),即从“maplebridge”中删除“wlan0”。
所有虚拟机都应该通过一个虚拟 LAN 连接,而不是通过 WLAN 连接。
流量必须通过 Proxmox 中的内部 NAT 进行路由,网桥启动时必须激活 NAT(添加到 /etc/network/interfaces 中):
auto vmbr1
iface vmbr1 inet static
address 192.168.1.136
netmask 255.255.255.0
ovs_type OVSBridge
pre-up iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o wlan0 -j MASQUERADE
但是,如果我这样做,由于 wlan0 和 vmbr1 的地址相同,它们不会发生冲突吗?
当我使用此配置时,我无法在 192.168.2.0/24 子网内跨虚拟机或外部建立任何连接。我能够选择 vmbr1 供虚拟机在其网络接口中使用,但它们同样只能 ping 本地主机或为其分配的 IP。
答案1
我已使内部 VM 网络正常运行。
将 OVS Bridge vmbr1 添加到 Proxmox,并将 /etc/network/interfaces 更改为以下内容:
auto wlan0
iface wlan0 inet static
address 192.168.1.136
netmask 255.255.255.0
gateway 192.168.1.1
wpa-ssid ""
wpa-psk ""
auto vmbr1
iface vmbr1 inet static
address 10.0.2.1
netmask 255.255.255.0
ovs_type OVSBridge
pre-up iptables -t nat -A POSTROUTING -s 10.0.2.0/24 -o wlan0 -j MASQUERADE
然后,我将网络设备分配vmbr1
给我的虚拟机,并在 10.0.2.x 网络中为每个虚拟机配置一个静态 IP。然后,我在虚拟机和 Proxmox 主机上的 sysctl.conf 中启用了 ipv4 转发。
/etc/sysctl.conf:
net.ipv4.ip_forward = 1
内网和外网均已正常运行!