Proxmox SDN: VXLAN Networking Across Multi-Node Clusters

proxmox sdn vxlan - custom-sdn-featured.png

Our networking basics guide covered VLANs on a single
bridge — simple, but it depends on your physical switches being configured to trunk the right VLAN IDs to
every Proxmox node. Proxmox SDN with VXLAN removes that dependency: VMs on
different physical nodes join the same Layer 2 network over a UDP overlay, using only IP reachability between
nodes — no switch VLAN configuration at all.

This guide enables SDN, creates a VXLAN zone spanning a 3-node cluster, builds a VNet, attaches VMs to it,
and verifies they can reach each other across nodes as if on the same physical switch.

When VXLAN makes sense over plain VLANs

  • Multi-tenant labs — spin up isolated overlay networks per project without touching switch config
  • Limited VLAN budget — VXLAN gives you up to 16 million VNIs vs. 4094 VLAN IDs
  • Mixed/managed switches — works even if you don’t control the physical switch trunking
  • Trade-off: VXLAN adds ~50 bytes of encapsulation overhead per packet — set MTU accordingly

Step 1: Enable SDN on the Cluster

SDN ships with Proxmox VE but needs the libpve-network-perl package (usually already installed on recent versions). Confirm Datacenter → SDN appears in the web UI. If not, install it and restart pvedaemon and pveproxy.

Enable Proxmox SDN feature in Datacenter menu
Enabling SDN

Step 2: Create a VXLAN Zone

Datacenter → SDN → Zones → Create → VXLAN. Give it an ID (e.g. vxzone1) and list every node’s IP as a peer — this is how nodes discover each other’s VXLAN tunnel endpoints. Set MTU to 1450 (standard 1500 minus VXLAN overhead) unless your network already supports jumbo frames.

Proxmox SDN VXLAN zone creation with peer node IPs
Creating the VXLAN zone

Step 3: Create a VNet Inside the Zone

Datacenter → SDN → VNets → Create. Name it (e.g. vxnet1), assign it to vxzone1, and set a Tag — this is the VXLAN Network Identifier (VNI), a numeric ID (e.g. 10001) that uniquely identifies this overlay network across the cluster.

Proxmox SDN VNet creation with VXLAN VNI tag
Creating the VNet

Step 4: Apply the SDN Configuration

SDN changes are staged until you click Apply in Datacenter → SDN — this pushes the config to /etc/pve/sdn/ and reloads networking on every node cluster-wide. Verify with ip -d link show vxnet1 on each node — you should see a VXLAN interface with the correct VNI and destination port 4789.

Applying Proxmox SDN configuration across cluster nodes
Applying the SDN config

Step 5: Attach a VM to the VNet

On any VM, VM → Hardware → Network Device, set Bridge to vxnet1. No VLAN tag is needed — the VXLAN encapsulation already isolates this traffic from everything else. Repeat on a second VM located on a different physical node to test cross-node connectivity.

Attaching Proxmox VM network device to VXLAN VNet bridge
Attaching VMs to the VNet

Step 6: Verify Cross-Node Layer 2 Connectivity

Assign IPs in the same subnet to both VMs (e.g. 10.10.10.10 and 10.10.10.20) and ping between them. A successful ping with low, direct latency confirms the VXLAN overlay is tunneling their traffic correctly — even though they’re on physically separate hosts with no shared VLAN on the switch.

Verifying VXLAN cross-node connectivity with ping test
Verifying connectivity

Step 7: Add a Subnet for DHCP and Routing (Optional)

For a self-contained overlay network with its own DHCP, go to the VNet → Add Subnet. Set a CIDR (e.g. 10.10.10.0/24), a gateway, and enable SNAT if VMs on this overlay need outbound internet access through the Proxmox host. Proxmox’s built-in DHCP server can then hand out addresses to VMs automatically.

Proxmox SDN subnet configuration with DHCP and SNAT
Adding a subnet with DHCP

CLI reference

# Config files SDN writes to (after Apply)
cat /etc/pve/sdn/zones.cfg
cat /etc/pve/sdn/vnets.cfg

# Verify VXLAN interface on a node
ip -d link show vxnet1

# Apply SDN config from CLI (equivalent to clicking Apply)
pvesh set /cluster/sdn

Troubleshooting checklist

  • Ping fails between VMs? Check that every node’s IP is listed as a peer in the zone, and that ”
    “UDP port 4789 isn’t blocked by a firewall between nodes
  • High packet loss on large transfers? Lower the VM’s MTU to match the VXLAN zone’s MTU (1450)
  • VNet not showing on a node? Confirm you clicked Apply after the config change — ”
    “staged changes don’t take effect until applied

Related tutorials

Image credits: All illustrations use original Proxmox VE branded artwork created
for Gnome IT Solutions — not copied from vendor marketing assets or third-party screenshots.
Tutorial text © Gnome IT Solutions.

Image credits: Screenshots are from the official
Proxmox VE documentation
(Proxmox GmbH), used under open documentation terms for educational purposes.
Tutorial text and layout © Gnome IT Solutions.