Proxmox with an Openvswitch bridge
I got the internal VM network working.
Added OVS Bridge vmbr1 to Proxmox and changed /etc/network/interfaces to the following:
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
I then assigned the network device vmbr1
to my VMs and configured each VM with a static IP in the 10.0.2.x network. Then I enabled ipv4 forwarding in sysctl.conf on the VMs and Proxmox host.
/etc/sysctl.conf:
net.ipv4.ip_forward = 1
Internal and external networks are both working now!
Related videos on Youtube
에이바
Updated on September 18, 2022Comments
-
에이바 over 1 year
All,
I'm trying create a way for me to be able to use the local network within my Proxmox infrastructure.
Currently, everything is running off of NAT from wlan0 and all internal machines have the same local IP address -- which is not very useful to me at all. I'm trying to fix this with ovs.
My ovs setup:
[wlan0] [IP Stack] | | [maplebridge] -- vport1 -- vport2
My ovs config:
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 settings:
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"
Contents of /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
This is what I see in the web interface under Network:
This is what happens if I try to set one of my VMs to use the network adapter vport1:
As you can see I can't attach vports 1 or 2 to any of my VMs. How does this setup work in Proxmox?
EDIT:
It was suggested to me to try NAT over NAT with an ovs bridge created from the Proxmox web GUI as follows:
Make a new subnet (e.g. 192.168.2.0/24) inside of Proxmox, i.e. remove "wlan0" from the "maplebridge".
All VMs should be connected with one virtual LAN, but not with wlan.
The traffic has to be routed via internal NAT in Proxmox, the NAT has to be activated when the bridge starts up (to be added in /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
However, if I do this wouldn't the addresses from wlan0 and vmbr1 conflict since they're the same?
When I use this configuration I cannot get any connectivity in the 192.168.2.0/24 subnet cross VMs or outside. I am able to select vmbr1 for the VMs to use in their network interfaces but again they can only ping local host or their assigned IPs.