Retour : Proxmox VE
Proxmox utilise des bridges Linux (vmbr0, vmbr1…) comme commutateurs virtuels. Les cartes réseau des VM et des conteneurs se branchent sur un bridge, lui-même relié — ou non — à une carte physique de l'hôte.
Hôte Proxmox
┌──────────────────────────────────────────┐
│ VM 100 (tap100i0) ─┐ │
│ VM 101 (tap101i0) ─┼── vmbr0 ── eno1 ───┼── Switch physique
│ CT 200 (veth200i0)─┘ │
└──────────────────────────────────────────┘
| Élément | Exemple | Rôle |
|---|---|---|
| Carte physique | eno1, enp1s0 |
Lien vers le réseau physique |
| Bond | bond0 |
Agrégation de plusieurs cartes physiques |
| Bridge | vmbr0 |
Commutateur virtuel |
| Interface VLAN | vmbr0.10 |
Adresse de l'hôte dans un VLAN donné |
La configuration est stockée dans /etc/network/interfaces et appliquée par ifupdown2. Les modifications faites dans l'interface web sont d'abord préparées dans /etc/network/interfaces.new, puis appliquées avec Apply Configuration.
Après l'installation, l'adresse d'administration est portée par le bridge vmbr0 :
auto lo
iface lo inet loopback
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.4.10/24
gateway 192.168.4.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
Toutes les VM branchées sur vmbr0 sont alors sur le même réseau que l'hôte, sans VLAN.
Un VLAN (802.1Q) découpe un même réseau physique en réseaux logiques isolés, numérotés de 1 à 4094.
| Mode du port de switch | Trafic | Usage |
|---|---|---|
| Accès | Un seul VLAN, trames non étiquetées | Poste, imprimante |
| Trunk | Plusieurs VLAN, trames étiquetées | Lien vers un hyperviseur, un autre switch |
| VLAN natif | VLAN passant sans étiquette sur un trunk | À choisir explicitement |
Le port du switch relié à l'hôte Proxmox doit être en trunk et autoriser les VLAN des VM. Exemple Cisco :
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# description Uplink pve1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan 10,20,30
Switch(config-if)# switchport trunk native vlan 999
Un seul bridge transporte tous les VLAN ; le VLAN de chaque VM est indiqué sur sa carte réseau (VLAN Tag). La VM ne voit aucune étiquette, comme sur un port d'accès.
vmbr0 → Edit → cocher VLAN aware → OK.20.Hôte administré dans le VLAN 10, bridge transportant les VLAN 2 à 4094 :
auto lo
iface lo inet loopback
iface eno1 inet manual
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.10
iface vmbr0.10 inet static
address 192.168.10.5/24
gateway 192.168.10.1
# Appliquer sans redémarrer
ifreload -a
# Carte actuelle (noter l'adresse MAC)
qm config 100 | grep net0
# VLAN 20, en conservant l'adresse MAC
qm set 100 --net0 virtio=BC:24:11:12:34:56,bridge=vmbr0,tag=20
# Conteneur LXC
pct set 200 --net0 name=eth0,bridge=vmbr0,tag=20,ip=dhcp
⚠️ Sans l'adresse MAC dans la commande, Proxmox en génère une nouvelle : le bail DHCP réservé de la VM ne correspond plus.
⚠️ Passer l'adresse d'administration dans un VLAN étiqueté coupe l'accès si le switch n'est pas prêt : préparer le trunk d'abord et garder un accès console (écran / clavier, IPMI).
Plusieurs cartes physiques réunies pour la redondance et/ou le débit.
| Mode | Switch | Effet |
|---|---|---|
active-backup |
Aucune configuration | Une carte active, l'autre en secours |
802.3ad (LACP) |
Port-channel LACP obligatoire | Charge répartie sur les liens + redondance |
balance-alb |
Aucune configuration | Répartition adaptative, sans LACP |
auto bond0
iface bond0 inet manual
bond-slaves eno1 eno2
bond-miimon 100
bond-mode 802.3ad
bond-xmit-hash-policy layer3+4
auto vmbr0
iface vmbr0 inet manual
bridge-ports bond0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
Vérifier l'état du bond :
cat /proc/net/bonding/bond0
Un bridge sans carte physique relie les VM entre elles, sans accès au réseau physique (laboratoire, réseau de test) :
auto vmbr1
iface vmbr1 inet manual
bridge-ports none
bridge-stp off
bridge-fd 0
💡 Pour donner un accès Internet à ce réseau, une VM pare-feu (OPNsense, pfSense) avec une carte sur
vmbr0et une survmbr1sert de routeur.
Datacenter → SDN permet de définir les réseaux une seule fois pour tout le cluster :
| Élément | Rôle |
|---|---|
| Zone | Type de réseau : Simple, VLAN, QinQ, VXLAN, EVPN |
| VNet | Réseau virtuel, qui apparaît comme un bridge sur chaque nœud |
| Subnet | Plage IP d'un VNet, avec passerelle et DHCP optionnels |
Exemple : une zone VLAN sur vmbr0 et un VNet vm20 (tag 20) : les VM se branchent sur vm20 sans renseigner de tag elles-mêmes. Toujours terminer par Apply dans Datacenter → SDN.
| Modèle | Usage |
|---|---|
| VirtIO (paravirtualized) | Par défaut : le plus performant (pilote inclus dans Linux, ISO virtio-win pour Windows) |
| Intel E1000 / E1000E | Compatibilité pour un système sans pilote VirtIO |
| Realtek RTL8139 | Très anciens systèmes |
Le pare-feu peut être activé carte par carte (case Firewall de la carte réseau), avec des règles propres à la VM : VM → Firewall.
| Symptôme | Pistes |
|---|---|
| VM sans réseau | Bon bridge ? Pilote réseau présent dans l'invité ? Pare-feu de la VM ? |
| VM sans réseau dans un VLAN | Bridge VLAN aware ? VLAN autorisé sur le trunk (show interfaces trunk côté Cisco) ? |
| Hôte injoignable après modification | Accès console, vérifier /etc/network/interfaces, ifreload -a |
| Débit faible | Carte E1000 ou Realtek au lieu de VirtIO |
# Interfaces et état
ip -br link
ip -br addr
# VLAN autorisés sur chaque port du bridge
bridge vlan show
# Trafic d'une VM (VM 100, carte net0)
tcpdump -i tap100i0 -e -n
# Trames étiquetées sur la carte physique
tcpdump -i eno1 -e -n vlan