Aller au contenu
Virtualisation medium

Réseau Proxmox VE : comprendre et configurer bridges, VLAN et NAT

20 min de lecture

Logo Proxmox

Vos VM n’ont pas de réseau ? Vous avez peur de vous couper l’accès en modifiant la config ? Ce guide vous donne les bases pour comprendre ce qui se passe, puis configurer en toute sécurité.

Trois situations, trois solutions :

  • Homelab / plusieurs IP disponibles → Bridge simple (le défaut)
  • Isoler prod/dev/DMZ → Bridge VLAN-aware
  • VPS avec une seule IP publique → NAT

Avant de toucher à quoi que ce soit, vous devez comprendre comment les paquets circulent. Sans ça, vous allez copier-coller des configs sans savoir ce que vous faites — et vous couper l’accès au premier problème.

Le réseau fonctionne en couches. Deux nous concernent ici :

CoucheCe qu’elle gèreIdentifiantÉquipement typique
L2 (liaison)Transmission de trames entre machines du même réseauAdresse MACSwitch
L3 (réseau)Routage de paquets entre réseaux différentsAdresse IPRouteur

Pourquoi c’est important ?

  • Un bridge = switch logiciel = travaille en L2 (il regarde les MAC)
  • Le NAT/routage = travaille en L3 (il regarde les IP)
  • Un VLAN = étiquetage L2 (tag 802.1Q sur les trames)

Quand vous comprenez ça, le reste devient logique.

Proxmox crée et manipule plusieurs types d’objets. Voici ce que vous verrez :

ObjetCe que c’estExemple
Interface physiqueVotre carte réseau réelleeno1, enp3s0, eth0
BridgeSwitch virtuel (créé par Proxmox)vmbr0, vmbr1
vNICCarte réseau virtuelle d’une VMnet0 dans les paramètres VM
tapInterface côté hôte connectée à une vNICtap100i0 (VM 100, interface 0)
bridge-portsL’uplink du bridge vers le physiquebridge-ports eno1

Dans l’interface web : Nœud → System → Network pour voir tout ça.

Quand une VM envoie un paquet vers Internet :

VM (eth0) → tap100i0 → vmbr0 → eno1 → switch physique → Internet

Le bridge vmbr0 fonctionne comme un switch : il reçoit le paquet de la VM via tap100i0, regarde l’adresse MAC de destination, et le transmet vers eno1 (qui est connecté au réseau physique).

Le bridge Linux fonctionne comme un switch virtuel : il connecte les VM entre elles et au réseau physique

En NAT, c’est différent — le paquet passe par le routage de l’hôte :

VM (eth0) → tap100i0 → vmbr0 → ip_forward → NAT (iptables) → eno1 → Internet

L’hôte Proxmox remplace l’IP source de la VM par son IP publique avant d’envoyer. Quand la réponse arrive, il fait l’inverse.

NAT : les VM sortent sur Internet avec l'IP publique de l'hôte

Pourquoi l’IP est sur le bridge, pas sur l’interface physique

Section intitulée « Pourquoi l’IP est sur le bridge, pas sur l’interface physique »

C’est le point de confusion chez les débutants.

Dans Proxmox, l’adresse IP du serveur est configurée sur le bridge (vmbr0), pas sur l’interface physique (eno1). Pourquoi ?

Parce que le bridge est le point central de communication. C’est lui qui “parle” au réseau. L’interface physique (eno1) sert juste de câble entre le bridge et le monde extérieur — elle n’a pas d’IP, elle est en mode manual.

Configuration typique
# L'interface physique : pas d'IP, juste un câble
iface eno1 inet manual
# Le bridge : c'est lui qui a l'IP
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1

Proxmox utilise ifupdown2 pour gérer le réseau. C’est une version améliorée d’ifupdown qui permet d’appliquer les changements à chaud, sans reboot.

Le mécanisme de staging :

  1. Vous modifiez le réseau via l’interface web
  2. Proxmox écrit vos changements dans /etc/network/interfaces.new (fichier temporaire)
  3. Rien n’est appliqué tant que vous ne cliquez pas sur Apply Configuration
  4. Proxmox sauvegarde l’ancien fichier, puis exécute ifreload -a

Pourquoi ifreload -a est important : c’est la commande clé d’ifupdown2. Elle applique les changements sans couper les connexions existantes (dans la plupart des cas). C’est ce qui permet de modifier le réseau sans reboot.

Fenêtre de terminal
# Ce que fait "Apply Configuration" en coulisses
ifreload -a

Avant de configurer, choisissez la bonne approche selon votre situation.

Arbre de décision : quelle configuration réseau choisir selon votre situation

SituationConfigurationPourquoi
Homelab, plusieurs IP dispoBridge simpleC’est le défaut, ça marche tout seul
Entreprise, 1 IP par VMBridge simpleChaque VM est directement joignable
Isoler prod/dev/DMZVLAN-awareUn bridge, plusieurs réseaux isolés
VPS, 1 seule IP publiqueNATLes VM sortent via l’IP de l’hôte
Lab sans switch managéBridge simple ou NATVLAN-aware inutile sans trunk

C’est la configuration par défaut après installation. Vos VM sont sur le même réseau que l’hôte Proxmox.

Si vous avez installé Proxmox normalement, c’est déjà en place. Vérifiez :

/etc/network/interfaces
auto lo
iface lo inet loopback
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0

Points clés :

  • L’IP est sur vmbr0, pas sur eno1
  • eno1 est en manual (pas d’IP)
  • bridge-ports eno1 connecte le bridge au physique

Si vous avez une seconde carte réseau et voulez un bridge dédié :

  1. Allez dans Nœud → System → Network

  2. Cliquez Create → Linux Bridge

  3. Renseignez :

    • Name : vmbr1
    • Bridge ports : eno2
    • IPv4/CIDR : laissez vide si pas besoin d’IP
  4. Cliquez Apply Configuration

Fenêtre de terminal
# L'hôte a une IP sur vmbr0
ip -br addr | grep vmbr0
# Le bridge est connecté à eno1
bridge link show
# Une VM obtient une IP (DHCP ou statique)
# Depuis la VM :
ping 192.168.1.1 # passerelle
ping 8.8.8.8 # internet
ProblèmeCauseSolution
VM pas d’IP DHCPbridge-ports manquantVérifier la config du bridge
Perte d’accès après ApplyMauvaise gateway ou IPConsole + restaurer backup

Un seul bridge gère plusieurs réseaux isolés via des tags VLAN (802.1Q).

Votre switch physique doit être configuré en trunk (tagged) sur le port connecté à Proxmox :

Exemple Cisco
interface GigabitEthernet0/1
switchport mode trunk
switchport trunk allowed vlan 10,20,30

Sans cette config côté switch, les tags seront ignorés.

Pour activer le support VLAN sur un bridge existant :

  1. Allez dans Nœud → System → Network

  2. Sélectionnez vmbr0 et cliquez Edit

  3. Cochez VLAN aware

  4. Dans Bridge VLAN IDs, listez les VLAN autorisés : 10 20 30

  5. Cliquez OK puis Apply Configuration

Ou manuellement :

/etc/network/interfaces
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 10 20 30
  1. Éditez la VM → HardwareNetwork Device
  2. Dans VLAN Tag, entrez le numéro (ex: 10)
  3. La VM est maintenant sur le VLAN 10

Bridge VLAN-aware : un seul bridge, plusieurs réseaux isolés via les tags VLAN

Fenêtre de terminal
# Voir les VLAN configurés sur le bridge
bridge vlan show
# Depuis une VM sur VLAN 10
ping <autre-machine-vlan-10> # doit marcher
ping <machine-vlan-20> # ne doit PAS marcher (isolation)
ProblèmeCauseSolution
VLAN tag ignoréSwitch pas en trunkConfigurer le port switch
VM isolée du réseauMauvais VLAN IDVérifier le tag dans la VM

Les VM ont des IP privées et sortent sur Internet via l’IP publique de l’hôte.

/etc/network/interfaces
auto lo
iface lo inet loopback
# Interface publique
auto eno1
iface eno1 inet static
address 198.51.100.5/24
gateway 198.51.100.1
# Bridge privé pour les VM
auto vmbr0
iface vmbr0 inet static
address 10.10.10.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE

Points clés :

  • bridge-ports none : le bridge n’est pas connecté au physique
  • MASQUERADE : remplace l’IP source des paquets sortants

Le routage IP doit être activé pour que le NAT fonctionne. Ne pas utiliser echo 1 > /proc/... (perdu au reboot).

Fenêtre de terminal
# Créer le fichier de config sysctl
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-ip-forward.conf
# Appliquer immédiatement
sysctl -p /etc/sysctl.d/99-ip-forward.conf
# Vérifier
cat /proc/sys/net/ipv4/ip_forward # doit afficher 1
  1. Associez la VM à vmbr0
  2. Dans la VM, configurez :
    • IP : 10.10.10.10/24
    • Passerelle : 10.10.10.1
    • DNS : 8.8.8.8

Pour rendre un service accessible depuis l’extérieur :

Fenêtre de terminal
# Rediriger le port 80 public vers la VM 10.10.10.10
iptables -t nat -A PREROUTING -i eno1 -p tcp --dport 80 -j DNAT --to 10.10.10.10:80
iptables -A FORWARD -p tcp -d 10.10.10.10 --dport 80 -j ACCEPT

Pour persister les règles iptables, utilisez iptables-persistent ou ajoutez-les dans /etc/network/interfaces avec post-up.

Fenêtre de terminal
# Sur l'hôte : vérifier le routage
cat /proc/sys/net/ipv4/ip_forward # 1
# Sur l'hôte : vérifier les règles NAT
iptables -t nat -L -n -v | grep MASQUERADE
# Depuis la VM
ping 8.8.8.8 # internet
curl -s ifconfig.me # doit afficher l'IP publique de l'hôte
ProblèmeCauseSolution
NAT cassé après rebootip_forward non persistantUtiliser sysctl.d
VM ping OK, HTTP KOFirewall bloqueVérifier iptables -L
DNS ne marche pasPas de résolveurConfigurer DNS dans la VM

Modifier le réseau peut vous couper l’accès. Suivez cette procédure systématiquement.

  1. Vérifiez que vous avez un accès console

    • IPMI/iLO/iDRAC (serveur physique)
    • Console VNC (hébergeur)
    • Accès physique clavier/écran
  2. Sauvegardez la config actuelle

    Fenêtre de terminal
    cp /etc/network/interfaces /etc/network/interfaces.backup-$(date +%Y%m%d-%H%M)
  3. Notez l’IP et la gateway actuelles

    Fenêtre de terminal
    ip -br addr
    ip route | grep default
  1. Faites vos modifications via l’interface web

  2. Cliquez Apply Configuration

  3. Regardez le Task log (en bas) — il doit se terminer par TASK OK

  4. Immédiatement après, vérifiez :

    Fenêtre de terminal
    # L'hôte répond
    ping -c 2 <IP_PROXMOX>
    # L'interface web est accessible
    curl -k https://<IP_PROXMOX>:8006
  1. Accédez via la console (IPMI, VNC, physique)

  2. Listez les backups disponibles :

    Fenêtre de terminal
    ls -la /etc/network/interfaces*

    Proxmox crée des backups avec timestamp lors de l’apply.

  3. Restaurez le dernier backup fonctionnel :

    Fenêtre de terminal
    cp /etc/network/interfaces.backup-YYYYMMDD-HHMM /etc/network/interfaces
  4. Réappliquez :

    Fenêtre de terminal
    ifreload -a
  5. Vérifiez que l’accès est rétabli

SymptômeCause probableSolution
VM pas d’IP DHCPbridge-ports manquant ou mauvaisVérifier la config du bridge
Perte d’accès après ApplyErreur gateway/IPConsole → restaurer backup
VLAN tag ignoréSwitch pas en trunkConfigurer le port switch
NAT ne marche pasip_forward désactivésysctl -p ou vérifier /proc/sys/net/ipv4/ip_forward
Ping OK mais HTTP KOFirewall actifiptables -L ou désactiver temporairement
Performance faibleMTU mismatchVérifier MTU de bout en bout
Fenêtre de terminal
# État des interfaces
ip -br link
ip -br addr
# Bridges et leurs ports
bridge link show
# Table de routage
ip route
# Règles NAT
iptables -t nat -L -n -v
# Logs réseau récents
journalctl -u networking --no-pager -n 30

Gardez un schéma réseau à jour :

  • Quels bridges existent
  • Quelles interfaces physiques ils utilisent
  • Quels VLAN sont configurés
  • Quelles plages IP sont utilisées
/etc/network/interfaces
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
# LAN principal - VMs de production
auto vmbr1
iface vmbr1 inet static
address 10.0.0.1/24
bridge-ports eno2
# Réseau stockage - Ceph/NFS - MTU 9000
mtu 9000
  1. Faites vos modifications sur un environnement de test
  2. Testez pendant quelques jours
  3. Puis déployez en production

Ces sections couvrent des cas avancés, pas nécessaires pour débuter.

Pour du stockage réseau (Ceph, NFS, iSCSI), augmenter le MTU à 9000 améliore le débit.

Prérequis : tous les équipements du chemin doivent supporter le même MTU.

/etc/network/interfaces
auto vmbr1
iface vmbr1 inet static
address 10.0.0.1/24
bridge-ports eno2
mtu 9000

Test :

Fenêtre de terminal
ping -M do -s 8972 10.0.0.2 # 8972 + 28 headers = 9000

Combiner plusieurs NIC pour le débit et/ou la redondance.

ModeUsage
active-backupHaute dispo, 1 lien actif
802.3ad (LACP)Débit + HA, config switch requise
balance-albÉquilibrage sans config switch
Exemple 802.3ad
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 static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports bond0

Si vous préférez un bridge par VLAN :

/etc/network/interfaces
auto eno1.10
iface eno1.10 inet manual
auto vmbr10
iface vmbr10 inet static
address 10.10.10.1/24
bridge-ports eno1.10

Préférez VLAN-aware pour les nouvelles installations.

  1. Bridge = switch virtuel L2 — il regarde les MAC, pas les IP

  2. L’IP est sur le bridge (vmbr0), pas sur l’interface physique

  3. Trois patterns :

    • Bridge simple : VM sur le même LAN que l’hôte
    • VLAN-aware : un bridge, plusieurs réseaux isolés
    • NAT : une IP publique, masquerading
  4. Proxmox utilise ifupdown2ifreload -a applique à chaud

  5. Toujours avoir un accès console avant de modifier le réseau

  6. NAT : utilisez sysctl.d pour persister ip_forward

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.