Proxmox VE 9 SDN: Zones, VNets, and a Working VXLAN Overlay

admineci

admineci

Auteur

1504 mots
Proxmox VE 9 SDN: Zones, VNets, and a Working VXLAN Overlay

A guided exercise: create a VXLAN zone, deploy a VNet with VNI 5000, attach VMs, and test L2 connectivity across nodes. Validated after live migration.

This guided exercise covers the SDN module of our five-day Proxmox VE training. The full program covers VLAN zones, VXLAN overlays, EVPN with BGP, and the integrated firewall.

Guided Exercise: VXLAN Overlay with Proxmox VE 9 SDN

Create a VXLAN overlay network on your Proxmox VE cluster using Software Defined Networking. When you finish this exercise, two VMs on different physical nodes will communicate over an isolated L2 segment that survives live migration without any network reconfiguration.

Outcomes

At the end of this exercise, you will be able to:

  • Create an SDN Zone of type VXLAN with peer addresses for tunnel endpoints.
  • Create a VNet and a Subnet inside that zone.
  • Apply the SDN configuration cluster-wide and verify the VXLAN interfaces on each node.
  • Attach a VM to the VXLAN overlay and test L2 connectivity across nodes.
  • Confirm that VXLAN connectivity survives live migration.

Prerequisites

  • A three-node Proxmox VE 9.2 cluster (cluster setup guide).
  • Shared storage (Ceph or NFS) for live migration testing (Ceph deployment guide).
  • An underlay network connecting all three nodes. This can be the Corosync network, a dedicated VLAN, or any routed subnet. The VXLAN tunnels run on top of this network. For this exercise, the underlay uses 10.20.22.0/24 (the same VLAN used for the cluster network).
  • At least one running VM (or a Cloud-Init template to clone from) to test the overlay network.

Addressing for this exercise:

Node Underlay IP (tunnel endpoint)
pve-node1 10.20.22.21
pve-node2 10.20.22.22
pve-node3 10.20.22.23

The overlay network will be 10.200.0.0/24 with VNI 5000. Replace all addresses with your own.

Instructions

1. Create the VXLAN zone

An SDN zone defines the type of virtual network and the underlay transport. A VXLAN zone needs the list of all tunnel endpoints (peer addresses) so each node knows where to send encapsulated frames.

1.1. Open the SDN configuration in the web UI.

Navigate to DatacenterSDNZones, then click Add and select VXLAN.

1.2. Configure the zone.

Field Value Purpose
ID vxlanzone Zone name (lowercase, no spaces)
Peer Address List 10.20.22.21,10.20.22.22,10.20.22.23 Underlay IPs of all three nodes
MTU auto Proxmox calculates 1450 (1500 minus 50 bytes VXLAN overhead)

Important: The peer addresses must be the underlay (transport) IPs, not the management IPs. These addresses are the tunnel endpoints where VXLAN frames are encapsulated and decapsulated. Using management IPs instead of the dedicated transport network works but mixes overlay traffic with management traffic.

Click Add to create the zone.

2. Create the VNet

A VNet is a virtual network inside a zone. It maps to a Linux bridge on each node and carries traffic tagged with a VXLAN Network Identifier (VNI).

2.1. Navigate to VNets.

In DatacenterSDNVNets, click Create.

2.2. Configure the VNet.

Field Value
Name vnet5000
Zone vxlanzone
Tag 5000

The tag is the VNI. VXLAN supports up to 16 million VNIs (24-bit identifier), far beyond the 4 094 limit of traditional VLANs. Leave Isolate Ports and VLAN Aware unchecked for this exercise.

Click Create.

3. Create the Subnet

3.1. Add a subnet to the VNet.

Select the VNet vnet5000, open the Subnets tab, and click Create.

Field Value
Subnet 10.200.0.0/24
Gateway (leave empty)
SNAT unchecked

This subnet is a pure L2 overlay segment with no routing and no NAT. VMs attached to it communicate at layer 2 only. If you need the overlay to reach external networks, add a gateway and enable SNAT.

4. Apply the SDN configuration

SDN changes in Proxmox are staged: they exist in the configuration but are not active on the nodes until you explicitly apply them.

4.1. Click Apply in the SDN panel.

In DatacenterSDN, click the Apply button at the top. Proxmox pushes the configuration to all cluster nodes simultaneously. The zone status changes from new to available.

4.2. Verify the VXLAN interface was created on each node.

SSH into any node and check:

root@pve-node1:~# ip -d link show type vxlan

You should see an interface named vxlan_vnet5000 with VNI 5000 and a destination port of 4789 (the standard VXLAN UDP port). The interface has an MTU of 1450.

Repeat on nodes 2 and 3. All three nodes must have the interface.

4.3. Verify the bridge.

root@pve-node1:~# ip link show vnet5000

The VNet appears as a Linux bridge named vnet5000. The VXLAN interface is enslaved to this bridge. When a VM is attached to vnet5000, its virtual NIC connects to this bridge, and traffic is encapsulated into VXLAN frames and sent to the peer nodes via the underlay.

5. Attach VMs to the overlay

You need two VMs to test connectivity. This exercise assumes you have a running VM or a Cloud-Init template. Adjust the VM IDs and IPs to your environment.

5.1. Add a second NIC to VM 100 on node 1.

In the web UI, select VM 100 → HardwareAddNetwork Device:

  • Bridge: vnet5000 (the SDN VNet appears in the dropdown alongside regular bridges)
  • Model: VirtIO
  • Firewall: checked

Inside the VM, configure the new interface with a static IP:

$ sudo ip addr add 10.200.0.10/24 dev eth1
$ sudo ip link set eth1 up

For a persistent configuration, add the IP to /etc/netplan/ or /etc/network/interfaces depending on your guest OS. If you use Cloud-Init, set ipconfig1 to ip=10.200.0.10/24.

5.2. Add a second NIC to VM 200 on node 2.

Repeat the same procedure: add a NIC on bridge vnet5000, then configure the IP:

$ sudo ip addr add 10.200.0.11/24 dev eth1
$ sudo ip link set eth1 up

5.3. Test L2 connectivity across nodes.

From VM 100 (node 1), ping VM 200 (node 2) via the overlay:

$ ping -c 3 10.200.0.11
PING 10.200.0.11 (10.200.0.11) 56(84) bytes of data.
64 bytes from 10.200.0.11: icmp_seq=1 ttl=64 time=1.25 ms
64 bytes from 10.200.0.11: icmp_seq=2 ttl=64 time=0.45 ms
64 bytes from 10.200.0.11: icmp_seq=3 ttl=64 time=0.48 ms

Zero packet loss confirms the VXLAN tunnel is working. The two VMs are on different physical nodes but share the same L2 broadcast domain via the overlay.

What happens under the hood: when VM 100 sends an Ethernet frame to 10.200.0.11, the frame enters the vnet5000 bridge on node 1. The bridge forwards it to the vxlan_vnet5000 interface, which encapsulates the original Ethernet frame inside a UDP packet (destination port 4789) addressed to the underlay IP of node 2 (10.20.22.22). Node 2 receives the UDP packet, decapsulates the inner Ethernet frame, and delivers it to VM 200 via its local vnet5000 bridge. The VMs never see the encapsulation — they operate as if they were on the same physical switch.

6. Validate after live migration

The real test of an overlay network is whether it survives live migration. When a VM moves to a different physical node, the VXLAN tunnel endpoints change, but the VM’s overlay address must remain reachable.

6.1. Migrate VM 100 from node 1 to node 3.

root@pve-node1:~# qm migrate 100 pve-node3 --online

Wait for the migration to complete. The output shows the transfer duration and downtime (typically under 100 ms).

6.2. Test overlay connectivity again.

From VM 100 (now on node 3), ping VM 200 (still on node 2):

$ ping -c 3 10.200.0.11

The ping must succeed with zero packet loss. The overlay network reconfigured automatically: the VXLAN tunnel now runs between nodes 3 and 2 instead of nodes 1 and 2. No manual network changes were needed. This is the core value of SDN: the logical network is decoupled from the physical topology.

Validation checklist

Criterion Verification
Zone created and available Web UI: Datacenter → SDN → Zones shows vxlanzone as available
VNet active on all nodes ip link show vnet5000 on each node
VXLAN interface present ip -d link show type vxlan shows VNI 5000
L2 connectivity Ping between VMs on overlay: 0% loss
Post-migration connectivity Ping still works after qm migrate --online

What Proxmox VE 9.2 adds to SDN

Proxmox VE 9.2 introduced two additions to the SDN stack worth noting for future use:

  • WireGuard as a fabric protocol. You can now build encrypted site-to-site overlays between clusters using WireGuard tunnels as the underlay transport, replacing unencrypted VXLAN for inter-datacenter links.
  • BGP/EVPN filtering. Route maps and prefix lists give fine-grained control over which routes are advertised between EVPN zones, enabling more complex multi-tenant and multi-site topologies.

These features build on top of the VXLAN foundation you deployed in this exercise.

What this article does not cover

This exercise creates a single VXLAN zone with one VNet. The following topics are addressed in separate articles or through our cloud and virtualization practice:

  • Simple zones and VLAN zones for traditional network segmentation.
  • EVPN zones with BGP for multi-site L3 routing over VXLAN.
  • The Proxmox integrated IPAM for automatic IP assignment in SDN subnets.
  • The Proxmox VE firewall applied at VNet level for overlay security policies.
  • WireGuard fabric configuration for encrypted inter-datacenter overlays.
  • Multiple VNets within a single zone for micro-segmentation.

Sources: Proxmox VE 9 Administration Guide, Software Defined Network chapter, pve.proxmox.com. Proxmox VE 9.2 release notes (Dynamic Load Balancer, SDN WireGuard, BGP/EVPN). EC INTELLIGENCE, Formation Administration Proxmox VE 9, Chapter 7, January 2026.

Partager cet article

Twitter LinkedIn

Vous avez un projet similaire ?

Nos experts sont là pour vous accompagner dans vos projets cloud et infrastructure.