La configuration du réseau avec Proxmox VE : le guide pour bien débuter
Sommaire
I. Présentation
Ce tutoriel aborde la gestion du réseau avec l'hyperviseur Proxmox VE, c'est-à-dire les types d'interface, la création et la configuration d'une interface, ainsi que l'association d'un réseau virtuel à une machine virtuelle (ou un conteneur). Nous parlerons aussi de la gestion des VLANs et rapidement d'Open vSwitch. L'objectif est de vous fournir les bases pour que vous soyez à l'aise dans la configuration du réseau sur un hôte Proxmox VE.
Vous pouvez aussi lire mes précédents tutoriels dédiés à Proxmox VE :
- Bien débuter avec Proxmox VE : le guide complet
- Proxmox VE : comment créer une machine virtuelle Windows 11 ?
- Proxmox VE : la gestion des snapshots
II. Proxmox VE : les types d'interface réseau
Pour la configuration réseau, Proxmox VE tire profit des fonctionnalités de la pile réseau de Linux. Dans un premier temps, il me semble essentiel d'évoquer les types d'interface réseau que vous pouvez créer via l'interface web de Proxmox VE.
- Linux Bridge
L'interface Linux Bridge, souvent nommée vmbrX (par exemple, vmbr0), est le modèle de mise en réseau par défaut lors d'une nouvelle installation de Proxmox VE. Un pont Linux est conçu pour fonctionner comme un commutateur réseau virtuel permettant de connecter les VMs/connecteurs au réseau physique. Autrement dit, un Linux Bridge permet de faire le pont entre le réseau virtuel de Proxmox VE et le réseau physique où est connectée une interface réseau.
Concrètement, tous les invités (VMs et conteneurs) peuvent partager un seul pont, agissant comme si leurs câbles réseau virtuels étaient branchés sur le même commutateur physique. Au sein de Proxmox VE, chaque interface réseau physique ne peut être associée qu'à un seul Linux Bridge.
L'option "VLAN aware" est très pratique, car elle active la prise en charge des tags de VLAN au niveau de l'interface Linux Bridge. Ainsi, vous pouvez ajouter un tag de VLAN au niveau d'un conteneur ou d'une machine virtuelle. Sans cela, le tag de VLAN sera ignoré.

Note : chaque nœud Proxmox VE peut contenir jusqu'à 4 094 Linux Bridge. En principe, vous avez de la marge.
- Linux Bond
Le Bonding (également appelé NIC teaming ou Agrégation de liens) est une technique qui permet de lier plusieurs cartes réseau physiques (NICs) en une seule interface réseau logique (bondN). L'objectif est d'assurer la tolérance aux pannes (redondance), d'augmenter les performances via la répartition du trafic sur plusieurs liens, ou les deux.
Proxmox VE prend en charge les sept modes de bonding du noyau Linux, y compris le Round-robin (balance-rr), la tolérance aux pannes en mode actif/passif (active-backup), ou encore le protocole LACP (802.3ad) qui implique une configuration du commutateur.
Il est possible d'utiliser un bond directement comme port pour connecter les invités, et donc rendre le réseau invité tolérant aux pannes.

- Linux VLAN
Pour rappel, les VLANs (Virtual LANs) permettent de segmenter et d'isoler un domaine de diffusion au niveau de la couche 2, permettant d'avoir plusieurs réseaux sur un même réseau physique. Vous pouvez donc connecter des invités sur un VLAN spécifique par l'intermédiaire d'une interface VLAN.
Dans le contexte de Proxmox VE, une interface Linux VLAN peut s'avérer utile pour associer une adresse IP à l'hôte PVE (pour le management, par exemple), sur un VLAN spécifique. Vous pouvez aussi utiliser ce mécanisme pour créer des interfaces déjà taguées sur un VLAN spécifique. Par exemple, une interface avec le VLAN ID 10 pour que tous les invités rattachés soient directement connectés sur le VLAN 10, sans que ce soit à gérer au niveau de l'invité.
Lors de la création de l'interface VLAN, il convient de préciser le nom de l'interface liée : il y a forcément un parent sur chaque interface VLAN. L'idéal étant d'utiliser ce modèle : <nom de l'interface>.<VLAN ID>.

Le numéro de VLAN n'est pas obligatoirement précisé au niveau de l'interface réseau de PVE. En effet, cette information peut être précisée dans les paramètres de la machine virtuelle (ou du conteneur), de façon indépendante. Cette configuration implique d'activer l'option "VLAN aware" dans les paramètres du pont Linux.
III. Proxmox VE : Open vSwitch (OVS)
Jusqu'ici, nous venons d'évoquer les trois types d'interfaces prises en charge par Proxmox VE grâce au noyau Linux : Linux Bridge, Linux Bond, Linux VLAN. C'est simple à prendre en main et à configurer. Pour autant, ce n'est pas la seule option offerte par Proxmox VE en matière de gestion du réseau.
Si on cherche à créer une nouvelle interface, on peut remarquer trois autres options : OVS Bridge, OVS Bond, OVS IntPort. En effet, PVE intègre nativement la technologie Open vSwitch (OVS). Elle intègre nativement des fonctionnalités réseau plus avancées et flexibles, dans l'esprit SDN (Software Defined Network) : VXLAN, RSTP, tunnels GRE, etc.

L'intérêt étant de pouvoir créer des zones qui peuvent s'étendre sur un ou plusieurs nœuds Proxmox VE (donc la configuration s'effectue au niveau du menu Datacenter).
L'utilisation d'Open vSwitch n'est pas obligatoire, et un Linux Bridge pourra convenir dans une majorité de situations (notamment si c'est pour un Home Lab). Mais c'est une façon d'aller plus loin dans la gestion du réseau avec Proxmox VE, y compris en environnement professionnel. L'avantage d'OVS, c'est aussi qu'il est utilisé par d'autres plateformes, que ce soit des hyperviseurs ou des solutions comme OpenStack.
IV. La configuration réseau par défaut
Pour visualiser l'ensemble des interfaces d'un hôte Proxmox, cliquez sur son nom dans l'arborescence, puis sélectionnez : System > Network. Ici, vous verrez toutes les interfaces, qu'elles soient physiques ou logiques.
L'exemple ci-dessous montre que cet hôte dispose de trois interfaces :
enp2s0: c'est une interface physique, car il est précisé le type "Network Device".vmbr0: c'est une interface logique, et plus particulièrement un bridge (pont) avec l'interface physique nomméeenp2s0. Elle dispose d'une adresse IP et d'une passerelle : en réalité, par défaut, le serveur PVE est joignable via cette interface. Tous les ponts sont reconnaissables via le type "Linux Bridge".wlp3s0: c'est une interface physique, car là encore, c'est précisé le type "Network Device". Le nomwlfait référence au fait qu'il s'agit d'une interface Wi-Fi (WLAN).
À la lecture de cette configuration, très basique, on peut affirmer que les machines virtuelles (et les conteneurs) associées à l'interface vmbr0 accèdent au réseau local via l'interface physique enp2s0.

V. Ajouter une interface réseau Bridge à Proxmox
Une interface physique ne peut pas être rattachée directement à une machine virtuelle ou un conteneur. Donc, si vous souhaitez simplement connecter une machine virtuelle à un réseau en l'associant à une interface physique autre que celle du vmbr0, vous devez créer un nouveau pont.
Dans la section System > Network, vous devez cliquer sur le bouton "Create", puis sélectionner "Linux Bridge" (ou "OVS Bridge").

Ensuite, vous devez compléter le formulaire :
Name: donnez un nom, vous pouvez laisservmbr1. Utilisez le champCommentpour décrire cette interface de façon précise. Ici, le nom est généré automatiquement et incrémenté (vmbrX).Bridge ports: indiquez le nom de l'interface physique avec laquelle créer un pont. Ici, ce serawlp3s0.IPv4/CIDR: il n'est pas nécessaire d'associer une adresse IP à cette interface, sauf si vous désirez que l'hôte Proxmox soit joignable depuis le réseau sous-jacent.

Cliquez sur "Create" pour valider, puis cliquez sur le bouton "Apply Configuration" pour appliquer les changements. D'ailleurs, avant de cliquer sur ce bouton, vous pouvez visualiser les changements qui seront appliqués dans le fichier interfaces (+ pour les lignes ajoutées, - pour les lignes supprimées).

Il est vrai qu'ici nous effectuons la configuration réseau de Proxmox VE via l'interface Web. Mais nous pourrions tout à fait modifier manuellement le fichier /etc/network/interfaces pour y apporter directement nos changements. Vous pouvez aussi simplement afficher le contenu de ce fichier pour voir comment est traduite votre configuration effectuée via le web.

L'interface Bridge vmbr1 est bien visible.
VI. Connecter une VM Proxmox sur un VLAN
En s'appuyant sur les capacités Linux Bridge de Proxmox VE, il y a deux façons de connecter une machine virtuelle (ou un conteneur) à un VLAN :
- Utiliser l'option VLAN aware (méthode abordée ici)
- Utiliser une interface Linux VLAN (méthode abordée dans la prochaine partie de l'article)
Avant de vous intéresser à la configuration de la machine virtuelle, regardez celle du Linux Bridge donnant accès au VLAN souhaité. En effet, une option nommée "VLAN aware" est visible dans les options de chaque Linux Bridge. Vous devez impérativement cocher cette option si vous souhaitez ajouter des tags VLAN au niveau des invités, sinon les flux ne sortiront pas tagués.
Le lien Linux Bridge devient alors un port en mode trunk (vous devez donc adapter la configuration du switch en face). Par défaut, tous les ID de VLAN compris entre 2 et 4094 seront autorisés, donc si vous souhaitez que ce soit limité, vous pouvez ajuster l'option "VLAN IDs" avec vos numéros de VLANs.

Cette configuration aura pour effet d'ajouter 2 lignes dans la configuration du pont présente dans le fichier interfaces.
bridge-vlan-aware yes
bridge-vids 2-4094
Pour autoriser uniquement certains VLANs, nous pouvons modifier via le web ou en ligne de commande. Ici, nous autorisons les VLAN ID 10, 20 et 100.
bridge-vlan-aware yes
bridge-vids 10,20,100
Quand c'est fait, éditez les paramètres réseau d'une VM. Cliquez sur la VM, puis sur : Hardware > Network Device > Edit.

Au-delà de choisir le bon bridge, vous devez surtout ajouter un numéro de VLAN au sein du champ "VLAN Tag". L'exemple ci-dessous va permettre de taguer les trames de cette VM sur le VLAN 10 (principe du 802.1Q). Il ne reste plus qu'à valider !
Vous ne pouvez pas connecter une interface Linux Bond directement à un invité. Si c'est votre objectif, vous devez créer le bond, puis créer un bridge associé à ce bond, et ensuite connecter le bridge sur l'interface réseau de la machine virtuelle ou du conteneur.

Note : vous pouvez associer un VLAN ID à une machine virtuelle lors de la création de celle-ci, au moment de l'étape Network.
VII. Ajouter une interface VLAN à Proxmox
L'ajout d'une interface VLAN à Proxmox peut s'avérer utile si vous souhaitez :
- Définir une interface de management de PVE sur un VLAN spécifique
- Définir plusieurs adresses IP à PVE sur plusieurs VLANs
- Créer une interface prête à l'emploi déjà "connectée" à un VLAN et que vous pouvez associer à une VM (ou un conteneur). C'est une approche différente en comparaison du mode "VLAN aware" évoqué précédemment et qui peut augmenter fortement le nombre de Linux Bridge sur votre serveur. Dans ce cas, vous devez créer une interface Linux VLAN liée à l'interface physique, puis créer un Linux Bridge lié à l'interface Linux VLAN créée précédemment. Puis, c'est cette interface qui devra être associée aux machines virtuelles (VM untagged, dans ce cas).
Dans la section System > Network, vous devez cliquer sur le bouton "Create", puis sélectionner "Linux VLAN".

Le fait de préciser le nom de l'interface physique, un point, et un numéro de VLAN, va automatiquement associer l'interface à la bonne interface et ajouter le tag 10. Au-delà de faciliter la configuration, cette méthode permet de s'y retrouver facilement dans les interfaces. Pensez à utiliser la zone commentaire pour apporter des précisions sur ce VLAN.
Note : si vous désirez définir une interface de management de Proxmox VE sur un VLAN spécifique, il est judicieux de renseigner une adresse IP, un masque de sous-réseau et une passerelle dès à présent. Sinon, ce n'est pas nécessaire.
Voici un exemple :

Si l'idée est de créer une interface attribuable aux invités et directement taguée sur un VLAN (en l'occurrence ici le VLAN 10), il est nécessaire de créer une interface Linux Bridge associée à l'interface enp2s0.10 obtenue à la suite de l'étape précédente.
Et, comme toujours, pensez à appliquer la configuration.

Dans le fichier interfaces, cette opération se traduit de la façon suivante :
iface enp2s0 inet manual
auto enp2s0.10
iface enp2s0.10 inet manual
auto vmbr2
iface vmbr2 inet manual
bridge-ports enp2s0.10
bridge-stp off
bridge-fd 0
Quelques explications s'imposent...
Ces deux lignes créent une interface VLAN taguée appelée enp2s0.10, associée à l’interface physique enp2s0 et correspondant au VLAN ID 10. Le mode inet manual indique qu’aucune adresse IP n’est attribuée : l’interface sert uniquement de support réseau, par exemple pour un bridge (ce qui est notre cas). Tout le trafic sortant ou entrant sur enp2s0.10 sera tagué VLAN 10.
auto enp2s0.10
iface enp2s0.10 inet manual
Ensuite, ce bloc définit un bridge réseau nommé vmbr2, relié à l’interface VLAN enp2s0.10. Il permet de connecter des machines virtuelles au VLAN 10 via ce bridge. Les options bridge-stp off et bridge-fd 0 désactivent - respectivement - le Spanning Tree et le délai d’activation du bridge pour un fonctionnement plus direct (forwarding delay).
auto vmbr2
iface vmbr2 inet manual
bridge-ports enp2s0.10
bridge-stp off
bridge-fd 0
Attention, quand vous créez une interface VLAN, il est nécessaire de redémarrer l'hyperviseur pour que ce soit pris en compte. C'est un point important, car le redémarrage d'un hyperviseur en production n'est pas une opération que l'on apprécie particulièrement… À moins d'avoir un cluster.
VIII. Conclusion
Suite à la lecture de ce tutoriel, vous devriez être capable de créer, configurer et attribuer des interfaces réseau sur votre serveur Proxmox VE. Il est essentiel de maitriser cette partie de la configuration puisque la mise en réseau de l'hôte, des VM et des conteneurs est une étape incontournable.
Un article sur la configuration du SDN avec Proxmox VE sera publié prochainement. Ce sera l'occasion d'évoquer les notions de zones, de VNET ou encore d'IPAM.

