Automatic IPs with DHCP
By default you assign a static IP inside each VM. If you prefer VMs to receive an address automatically, you can use the Proxmox SDN (Software Defined Networking) feature. It's configured entirely in the web GUI and handles NAT for you.
This creates a second private network (10.20.20.0/24 in this example) alongside vmbr1. You can use either, or both.
One-time preparation
SDN uses dnsmasq to hand out addresses. Install it once on the host (Node → Shell):
cd /root
apt update
apt install -y dnsmasq
systemctl disable --now dnsmasq
The last command disables the global dnsmasq service. Proxmox starts its own instance per network.
Create the network in the GUI
1. Zone
Datacenter → SDN → Zones → Add → Simple
| Field | Value |
|---|---|
| ID | natzone |
| Automatic DHCP | ✅ |
2. VNet
Datacenter → SDN → VNets → Create
| Field | Value |
|---|---|
| Name | vmnet |
| Zone | natzone |
3. Subnet
Select vmnet, then Subnets → Create:
| Field | Value |
|---|---|
| Subnet | 10.20.20.0/24 |
| Gateway | 10.20.20.1 |
| SNAT | ✅ (this provides internet access) |
| DHCP Ranges tab | Start 10.20.20.100, End 10.20.20.200 |
| DHCP DNS Server | 1.1.1.1 |
4. Apply
Go to Datacenter → SDN and click Apply. A new network vmnet appears under your node.
Use it
When creating a VM, select vmnet as the Bridge on the Network tab. Configure the VM's OS to use DHCP (the default for most installers), and it receives an address automatically.
You can see which VM got which address under Datacenter → SDN → IPAM.
:::tip Fixed addresses for servers
For VMs that receive port forwards, the address must not change. In IPAM you can assign a fixed IP to a VM's MAC address, or simply configure a static IP inside the VM from outside the DHCP range (e.g. 10.20.20.10).
:::
:::note Port forwards on vmnet
Port forwards work the same way as on vmbr1. Just use the 10.20.20.x address as the target. See Port Forwarding.
:::