Présentation de Proxmox

Proxmox Virtual Environment (VE) est une plateforme de virtualisation open source basée sur une distribution Debian avec un noyau modifié. Elle permet de faire fonctionner plusieurs systèmes (Linux, Windows, etc.) sur un seul serveur physique, en utilisant deux méthodes :

les machines virtuelles (VM) avec KVM : cela permet la virtualisation complète d'un ordinateur ;

les conteneurs LXC (CT) : plus légers, ils partagent le noyau Linux du système hôte.

Proxmox VE est conçu pour fonctionner sur des architectures x86_64 (AMD64/Intel 64 bits). Proxmox VE n'est pas compatible avec les processeurs ARM.

Les machines virtuelles (VM) avec KVM

Qu’est-ce que c’est ?

KVM (Kernel-based Virtual Machine) est une technologie de virtualisation intégrée directement dans le noyau Linux. Elle transforme Linux en un hyperviseur de type 1, capable d’exécuter plusieurs systèmes d’exploitation isolés.

Un hyperviseur de type 1, aussi appelé hyperviseur natif ou bare-metal, est un logiciel qui s'exécute directement sur le matériel physique d’un serveur ou d’un ordinateur, sans passer par un système d’exploitation hôte. Il permet de créer et de gérer plusieurs machines virtuelles (VM), chacune avec son propre système d’exploitation. Exemples d’hyperviseurs de type 1 : VMware ESXi, Microsoft Hyper-V (en mode natif), Xen, KVM (considéré comme de type 1 car intégré au noyau Linux), Proxmox VE Un hyperviseur de type 2, aussi appelé hyperviseur hébergé, est un logiciel de virtualisation qui s’exécute au-dessus d’un système d’exploitation hôte (comme Windows, macOS ou Linux). Il ne s’installe pas directement sur le matériel, mais fonctionne comme une application classique. Exemples d’hyperviseurs de type 2 : VMware Workstation, Oracle VirtualBox, Parallels Desktop (macOS)

Fonctionnement

Chaque VM fonctionne comme un processus Linux classique, mais avec un accès dédié à des ressources virtualisées (CPU, RAM, disque, carte réseau, etc.)

Avantages

Performances des machines virtuelles proches de celles directement installées sur un matériel physique.

Support de nombreux système d'exploitation, Linux et non Linux (Windows, FreeBSD, etc.).

Support de la virtualisation imbriquée (nested virtualization).

Intégration dans Proxmox

Proxmox utilise KVM en arrière-plan, mais fournit :

une interface web pour créer, configurer et gérer les VM ;

des outils en ligne de commande (qm) ;

des fonctionnalités avancées : sauvegardes (complète et snapshot), migration à chaud, haute disponibilité.

Les conteneurs (LXC)

Qu’est-ce que LXC ?

LXC (Linux Containers) est une technologie de virtualisation légère qui permet d’exécuter plusieurs systèmes Linux isolés sur un même noyau Linux. Contrairement aux machines virtuelles, les conteneurs ne virtualisent pas le matériel, mais utilisent les fonctionnalités du noyau pour isoler les processus.

Principes de fonctionnement

LXC repose sur plusieurs fonctionnalités du noyau Linux :

namespaces : cela permet d'isoler les processus, le réseau, etc. ;

cgroups (Control Groups) : cela permet de limiter et de surveiller l’utilisation des ressources (CPU, RAM, etc.) ;

chroot : renforce la sécurité et l’isolation des conteneurs.

Proxmox nécessite l'utilisation des cgroups v2.

Caractéristiques principales

Partage du noyau : tous les conteneurs utilisent le même noyau Linux Debian de l’hôte.

Solution légère car l'utilisation du noyau de l'ordinateur hôte entraine peu de surcharge.

Démarrage en quelque secondes des conteneurs.

Ne peut exécuter que des distributions Linux : Debian, Ubuntu, etc.

Facile à cloner : idéal pour déployer rapidement plusieurs instances de conteneurs.

Gestion dans Proxmox

Proxmox offre :

une interface web pour créer, configurer et gérer les conteneurs ;

des outils en ligne de commande (pct) ;

des fonctionnalités avancées : sauvegardes (complète et snapshot), migration à chaud, haute disponibilité.

Cas d’usage typiques

Hébergement de services Linux (web, base de données, DNS…).

Environnements de développement ou de test.

Déploiement rapide d’applications.

Infrastructure DevOps (CI/CD, microservices).

Comparatif entre KVM et les conteneurs LXC

Critère	KVM (Machines virtuelles)	LXC (Conteneurs Linux)
Type de virtualisation	Virtualisation complète (hyperviseur type 1)	Virtualisation légère (niveau système)
Isolation	Très forte (chaque VM a son propre noyau)	Moins forte (partage le noyau de l’hôte)
Systèmes d'exploitation supportés	Linux, Windows, FreeBSD, etc.	Uniquement Linux
Performances	Légèrement inférieures à un ordinateur dédié	Très proches d'un ordinateur dédié
Consommation de ressources	Plus élevée (RAM, CPU, disque)	Très faible
Démarrage	Plus lent (comme un vrai ordinateur)	Très rapide (quelques secondes)
Cas d’usage typiques	Serveurs Windows, Windows 11, OPNSense	Services Linux légers, microservices (Web, DNS, DHCP), DevOps

La gestion du réseau avec Proxmox VE

Proxmox VE permet de gérer l'accès au réseau :

en connectant les VM et les conteneurs à un bridge, avec ou sans VLAN ;

en agrégeant les interfaces réseaux physiques de l'hyperviseur Proxmox en définissant un bond.

Qu’est-ce qu’un bond dans Proxmox ?

Un bond (ou agrégation de liens) est une technique qui permet de regrouper plusieurs interfaces réseau physiques en une seule interface logique. Cela permet :

la tolérance de panne (si un câble tombe, le trafic passe par l’autre) ;

d'augmenter la bande passante (selon le mode utilisé) ;

de répartir la charge des flux réseau (load balancing).

Le bond est utilisé en dessous du bridge (vmbr0) pour offrir redondance et performance. Le switch physique doit être configuré en conséquence.

Qu’est-ce qu’un bridge dans Proxmox

Un bridge réseau (ou pont réseau) est une interface virtuelle qui agit comme un commutateur (switch) logiciel qui permet de :

relier les VM/CT au réseau local comme s’ils étaient des machines physiques ;

partager une ou plusieurs interfaces réseaux physiques, ou bien un bond, entre plusieurs VM/CT ;

gérer un bridge par VLAN (méthode classique) : les VMs et les conteneurs sont connectées à des bridges distincts selon leur VLAN ;

gérer les VLANs directement dans un même bridge puis en associant un tag (étiquelle) de VLAN dans la configuration réseau des VM et des conteneurs LXC.

Exemple d'utilisation d'un bond et d'un bridge distinct par VLAN

Voici un schéma montrant :

les interfaces réseaux physiques de l'hyperviseur appelées en01 et en02 et configurées en mode trunk pour les deux VLAN 10 et 20 nécessaires. Sur le switch où sont connectées les deux interfaces physiques de l'hyperviseur, deux VLAN 10 et 20 doivent être créés au préalable et être autorisés dans le trunk ;

un bond appelé bond0 pour agréger deux interfaces réseau physiques de l’hyperviseur en01 en02 (tolérance de panne ou répartition de charge) ;

un bridge virtuel appelé vmbr10 connecté à bond0 en précisant l'ID 10 du VLAN utilisé pour relier les VM/CT A et B au réseau ;

un deuxième bridge virtuel appelé vmbr20 connecté également à bond0 en précisant l'ID 20 du VLAN utilisé pour relier la VM/CT C au réseau.

Exemple d'utilisation d'un bond et d'un seul bridge (VLAN-aware) pour gérer 2 VLAN

Voici un schéma montrant :

les interfaces réseaux physiques de l'hyperviseur appelées en01 et en02 et configurées en mode trunk pour les deux VLAN 10 et 20 nécessaires. Sur le switch où sont connectées les deux interfaces physiques de l'hyperviseur, deux VLAN 10 et 20 doivent être créés au préalable et être autorisés dans le trunk ;

un seul bridge virtuel vmbr0 pour lequel VLAN-aware est activé.

lors de configuration d'une VM ou d'un conteneur LXC, il faut indiquer l'utilisation du bridge vmbr0 en précisant le tag du VLAN (10 ou 11).

Exemple d'utilisation d'un bond et d'un bridge distinct par VLAN avec Proxmox dans WSL

Voici un schéma montrant :

la seule interface réseau physique du PC Windows appelée eth0. Il n'y a pas de trunk configuré ;

il n'y a pas de bond car il n'y a qu'une seule interface réseau physique ;

un bridge virtuel appelé vmbr0 connecté à eth0 avec une adresse IP permettant d'avoir du NAT pour accéder à Internet. Ce bridge est utilisé pour relier VM/CT A à INternet (NAT) ;

un deuxième bridge virtuel appelé vmbr10 connecté à eth0 utilisé pour relier les VM/CT A et B en gérant un sous-réseau IP distinct. Aucune adresse IP n'est associée au bridge et ce réseau est isolé des autres sans accès à Internet, ce qui est équivalent au réseau interne de VirtualBox ;

un troisième bridge virtuel appelé vmbr20 connecté à eth0 utilisé pour relier VM/CT C en gérant un sous-réseau IP distinct. Aucune adresse IP n'est associée au bridge et ce réseau est isolé des autres sans accès à Internet, ce qui est équivalent au réseau interne de VirtualBox ;

VM / CT A est rélié aux bridges vmbr0 et vmbr10 en tant que routeur.