Proxmox Bootstrap, VLANs, and OpenWrt
Start here when a Proxmox host must move from temporary untagged access to the VLAN trunk used by the managed configuration.
Source Paths
docs/infrastructure/ansible/inventory.mddocs/infrastructure/ansible/playbooks.mdinfrastructure/ansible/inventories/group_vars/proxmox.ymlinfrastructure/ansible/inventories/host_vars/pve1.ymlinfrastructure/ansible/inventories/host_vars/pve2.ymlinfrastructure/ansible/inventories/host_vars/pve3.ymlinfrastructure/ansible/playbooks/bootstrap.ymlinfrastructure/ansible/playbooks/networking.ymlinfrastructure/ansible/roles/networking/templates/interfaces.j2infrastructure/ansible/roles/firewall/tasks/main.yml
Current State
- Management VLAN is
20. - Allowed VLANs are
20,40, and60. - The managed bridge is VLAN-aware
vmbr0withvmbr0.20as the management interface. - The host NIC variable is
nic0on all documented hosts. pve1is active at10.20.0.11/24;pve2andpve3are planned.
Switch Port Stance
- Before bootstrap or the first networking migration, set the OpenWrt or switch port connected to the host to untagged/access on VLAN
20. - After
networking.ymlcompletes and the host is reachable again, switch the port back to trunk/tagged mode for VLANs20,40, and60. - Do not leave the port as access-only once the bridge is VLAN-aware, or tagged traffic for the other VLANs will not pass.
Bootstrap Sequence
- Confirm the host is reachable on the current management address.
- Set the connected switch port to untagged VLAN
20. - Run
task ansible:bootstrap -- --limit pve1. - Confirm SSH key access works after bootstrap.
- Run
task ansible:networking -- --limit pve1. - Wait for the host to reload networking.
- Verify
/etc/network/interfacesnow contains VLAN-awarevmbr0andvmbr0.20. - Return the switch port to trunk/tagged VLANs
20,40, and60. - Verify management access on
10.20.0.11or the matching host IP.
Validation
bash
ping 10.20.0.11bash
ip addrbash
bridge vlan showbash
cat /etc/network/interfacesRollback
- If the host drops off the network after trunking, restore the switch port to untagged VLAN
20. - Re-run
task ansible:networking -- --limit <host>after access is restored.
