Proxmox VE networking: Linux bridges (vmbr0) and VLANs
Guests reach the network through Linux bridges such as vmbr0, defined in /etc/network/interfaces. Learn the default setup, VLAN-aware bridges, VLAN tags for guests and how to apply changes safely.
Not checked by a trusted editor yet Last edited Outdated?
A Linux bridge works like a software network switch inside the host. Physical network cards and the virtual network cards of guests plug into it. The installer creates one bridge, vmbr0, connected to the first physical NIC, and puts the host’s management IP on it. Guests attached to vmbr0 appear on the physical network with their own MAC addresses.
The default configuration
Network configuration lives in /etc/network/interfaces. A typical default looks like this (interface names differ per server):
auto lo
iface lo inet loopback
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.0.2.10/24
gateway 192.0.2.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
The physical NIC eno1 has no address of its own; it is just a port of the bridge. The IP address belongs to vmbr0.
How changes are applied
When you edit networking in the web UI (Node → System → Network), Proxmox VE writes to /etc/network/interfaces.new first. Nothing changes until you click Apply Configuration, which moves the file into place and reloads the network live using ifupdown2 (the default since Proxmox VE 7). If you edit /etc/network/interfaces by hand, apply it with:
ifreload -a
Warning: a wrong address, gateway or bridge port can cut off your SSH and web access to the node. Make changes from a console you can reach out of band (IPMI, iLO, a physical screen) or at least keep a second session open, and double-check the file before applying.
VLANs for guests: the VLAN-aware bridge
The simplest way to put guests in different VLANs is to make the bridge VLAN aware. The physical switch port must be a trunk that carries those VLANs. Then each guest NIC gets a VLAN tag, and the bridge handles the tagging.
auto vmbr0
iface vmbr0 inet manual
bridge-ports eno1
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
auto vmbr0.5
iface vmbr0.5 inet static
address 10.0.0.2/24
gateway 10.0.0.1
In this example the host’s own management address sits in VLAN 5 on vmbr0.5. Attach guests by setting tag= on their network device:
qm set 110 --net0 virtio,bridge=vmbr0,tag=20
pct set 200 --net0 name=eth0,bridge=vmbr0,tag=30,ip=dhcp
The other option, the “traditional” VLAN setup, creates a separate VLAN device and bridge per VLAN (for example eno1.5 and vmbr0v5). It works, but VLAN-aware bridges are easier to manage when you have many VLANs.
More bridges and bonds
- Create additional bridges (
vmbr1,vmbr2, …) to separate networks, for example a storage or internal-only network. A bridge without anybridge-portsis an isolated network between guests on that host only. - A bond (
bond0) combines several NICs for redundancy or throughput and can then be used as the bridge port. - Bridge names may be any alphanumeric string up to 10 characters that starts with a letter;
vmbrNis just the convention.
Cluster traffic
If you build a cluster, keep Corosync cluster traffic away from busy networks such as storage or backup traffic. Corosync needs low latency more than bandwidth, and the documentation recommends a dedicated NIC for it.
Official documentation
See also
- 0098 What Proxmox VE is: KVM virtual machines, LXC containers and a web UI Proxmox VE is an open source virtualization platform based on Debian. It runs KVM virtual machines and LXC containers and is managed… Beginner · Concept · Linux Article Basics · Installation & first steps 15 Oct 2026
- 0099 Proxmox VE repositories and updates: enterprise vs no-subscription A fresh Proxmox VE install uses the enterprise repository, which needs a subscription. Learn how to switch to the no-subscription repository and… Beginner · How-to · Linux Article Installation & first steps · Packages & updates 15 Oct 2026
- 0167 Fix: Job for nginx.service failed because the control process exited with error code systemctl prints this when a service's start command exits with an error. The real reason is in journalctl; for nginx it is… Intermediate · Fix · Linux Article Networking & firewalls · Services & systemd 15 Oct 2026
- 0173 Set a static IP address: nmcli on RHEL vs netplan on Ubuntu RHEL, Rocky and AlmaLinux configure networking with NetworkManager (nmcli); Ubuntu Server uses netplan YAML. Here is the same static IP setup in… Intermediate · How-to · Linux Article Networking & firewalls 15 Oct 2026
- 0174 Network and DNS troubleshooting commands: ip, ss, dig, resolvectl A layer-by-layer cheat sheet for "the server cannot reach X": interfaces and routes with ip, listening ports with ss, and name resolution… Beginner · Reference · Linux Article Networking & firewalls 15 Oct 2026
- 0175 Open ports with firewalld and ufw firewalld (RHEL, Rocky, AlmaLinux) and ufw (Ubuntu) are friendly front ends to the kernel firewall. Allow SSH first, then open only the… Intermediate · How-to · Linux Article Networking & firewalls 15 Oct 2026
Repos in the wild
- proxmox/pve-manager: Proxmox VE API and web UI proxmox/pve-manager Read-only GitHub mirror of pve-manager, which provides the Proxmox VE web interface, much of the REST API, core daemons and tools such as pvesh, vzdump and pvenode. GitHub
- firewalld: zone-based firewall daemon firewalld/firewalld Upstream source of firewalld, the default firewall manager on RHEL, Rocky Linux, AlmaLinux and Fedora, including firewall-cmd and its service definitions. GitHub
History
Every saved edit is kept. The plot on the sleeve draws one line per edit. Open any edit to see exactly what changed.
- Commitpedia +3,281 chars