带有 Openvswitch 桥的 Proxmox

带有 Openvswitch 桥的 Proxmox

全部,

我正在尝试创建一种方法,以便能够在我的 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

内网和外网均已正常运行!

相关内容