1. SDN : pourquoi, et comment il s'organise
Au chapitre 3, le réseau se construisait pont par pont : un vmbr sur chaque nœud, écrit à la main dans /etc/network/interfaces. Cela suffit sur un serveur seul. Mais maintenant que les trois nœuds forment un cluster, une nouvelle contrainte apparaît.
Un réseau virtuel utile doit exister à l'identique sur les trois nœuds. Sinon, une VM qui migre perd sa connectivité en changeant d'hôte.
C'est exactement ce que résout le SDN (Software-Defined Networking) de Proxmox VE. On déclare zones, VNets et subnets une seule fois, au niveau du Datacenter ; pmxcfs réplique la configuration sur tous les nœuds, et chaque Apply la transcrit en interfaces réseau réelles. C'est la raison pour laquelle le SDN est traité ici, une fois le cluster monté : c'est à plusieurs nœuds qu'il prend tout son sens.
Ce chapitre présente le SDN : à quoi il sert, comment il s'organise. Il détaille les deux zones les plus utiles, Simple et VXLAN (Virtual Extensible LAN, réseau de niveau 2 transporté sur IP). VXLAN est normalisé par une RFC (Request for Comments, document de norme de l'Internet), la 7348.
1.1 Pourquoi le SDN existe dans Proxmox
Les ponts classiques suffisent pour un seul hyperviseur. Mais une VM du nœud 1 doit parfois parler à une VM du nœud 3 comme sur un même commutateur, sans VLAN configuré à la main sur chaque nœud.
Le SDN déclare ce réseau une seule fois, au niveau du Datacenter, et Proxmox le reproduit sur tous les nœuds. Même sur un seul nœud, il crée simplement des réseaux isolés.
Dans la pile réseau de Proxmox, le pont vmbr0 reste le socle. La segmentation VLAN (chapitre 3) et le pare-feu (section 4) s'y ajoutent selon le besoin, et le SDN les orchestre.
Le SDN est inclus dans Proxmox VE depuis la version 8 : rien à installer. Sa configuration est rangée dans /etc/pve/sdn/ (zones.cfg, vnets.cfg, subnets.cfg), répliquée sur tous les nœuds par pmxcfs. Ces fichiers se lisent, ils ne s'éditent pas : on passe par l'interface ou par pvesh, sinon le prochain Apply écrase la modification.
1.2 Les trois objets fondamentaux du SDN
Le SDN Proxmox s'organise en trois niveaux hiérarchiques, du plus général au plus précis :
| Composant | Rôle |
|---|---|
| Zone | Technologie de transport réseau utilisée (Simple, VLAN, VXLAN, EVPN — Ethernet Virtual Private Network) |
| VNet | Réseau virtuel rattaché à une zone — équivalent d'un bridge classique |
| Subnet | Plage d'adresses IP associée à un VNet (facultatif) |
Les trois niveaux sont imbriqués : la zone contient le VNet, le VNet contient le subnet. Les invités se branchent sur un VNet comme sur un pont classique.
Les noms (zonedemo, vnetdemo) font huit caractères au maximum, sans tiret. Les objets, du contenant au contenu :
| Terme | Ce que c'est | Exemple |
|---|---|---|
| Zone | La technologie de transport : Simple (un nœud), VLAN, VXLAN (entre nœuds), EVPN | zonetp, de type Simple |
| VNet | Le réseau que voient les invités ; sur chaque nœud, un pont Linux à son nom | vnettp |
| Subnet | La plage d'adresses du VNet | 10.10.100.0/24 |
| Passerelle | L'adresse du nœud dans le subnet, qui mène dehors | 10.10.100.1 |
| SNAT | La traduction d'adresse qui fait sortir le subnet sous l'adresse du nœud | Case SNAT du subnet |
| Invité | Une VM ou un CT dont la carte est branchée sur le VNet | CT 201 ct-sdn-test, en 10.10.100.50 |
| Apply | La commande qui transforme la configuration en ponts et en règles sur chaque nœud | Datacenter → SDN → Apply ; pvesh set /cluster/sdn |
Un VNet n'existe que dans une zone, un subnet que dans un VNet. D'où l'ordre zone, VNet, subnet à la création, et l'ordre inverse à la suppression. Tant que la configuration n'est pas appliquée, rien n'est créé sur les nœuds : c'est l'état pending.
Où voir le SDN sur votre cluster :
| Notion | Où la voir |
|---|---|
| Zones, VNets, subnets | Datacenter → SDN : Zones, VNets (et leurs subnets) ; colonne State (pending avant l'Apply) |
| La configuration partagée | /etc/pve/sdn/ : zones.cfg, vnets.cfg, subnets.cfg (se lisent, ne s'éditent pas) |
| Ce que l'Apply a construit | /etc/network/interfaces.d/sdn ; le pont vnettp dans ip link |
| Le VNet d'un invité | Sa carte réseau : Bridge = vnettp |
1.3 Types de zones SDN : panorama
Le type d'une zone dit comment ses réseaux virtuels sont séparés les uns des autres, et comment ils passent d'un nœud à l'autre. Quatre types sont présentés ici.
Trois notions servent à les lire :
- Niveau 2 (L2 : Layer 2) : le réseau Ethernet. Les machines s'y trouvent par leur adresse MAC, comme branchées sur un même commutateur. Niveau 3 (L3 : Layer 3) : le réseau IP, où des routeurs relient des réseaux différents.
- Étiquette VLAN (tag) : le numéro ajouté à chaque trame Ethernet pour dire à quel réseau virtuel elle appartient. C'est la norme 802.1Q, vue au chapitre 3 (§2.1) : de 1 à 4094.
- Encapsuler : emballer une trame dans un autre paquet pour la transporter, puis la déballer à l'arrivée.
| Type | Ce que c'est | Ce qu'il exige du réseau physique | Nœuds |
|---|---|---|---|
| Simple | Un pont isolé, propre à chaque nœud. Les invités d'un même nœud se parlent ; rien ne sort du nœud. | Rien | 1 |
| VLAN | Chaque réseau virtuel reçoit son étiquette VLAN, posée sur un pont existant du nœud. | Des commutateurs qui laissent passer ces VLAN | 1 à N |
| VXLAN | La trame Ethernet de l'invité est encapsulée dans un paquet IP (UDP) entre les nœuds : un réseau de niveau 2 tendu au-dessus d'un réseau de niveau 3. On parle de réseau superposé (overlay). | Seulement que les nœuds se joignent en IP | 2 et plus |
| EVPN | Du VXLAN, dont les nœuds s'échangent automatiquement les adresses des invités par BGP, le protocole de routage qu'utilisent les opérateurs d'Internet, au lieu d'une liste de pairs écrite à la main. | Un contrôleur BGP déclaré dans le SDN | 2 et plus |
Le type de zone selon le besoin. Un lab ou un réseau de développement isolé : Simple. La segmentation d'un réseau d'entreprise : VLAN.
Un réseau étendu entre des nœuds reliés en IP : VXLAN. Et quand il faut router entre plusieurs datacenters (DC : datacenter, centre de données), avec BGP (Border Gateway Protocol, protocole de routage entre réseaux) : EVPN, l'étape suivante après VXLAN.
La zone Simple est la seule qui ne demande ni pair ni réglage du réseau physique : c'est par elle que commence la pratique.
- 📖 RFC 7348 — la norme VXLAN, pour qui veut lire le format de l'encapsulation avant la partie VXLAN
1.4 En pratique : créer, appliquer, étendre
Tout se fait dans Datacenter → SDN. On crée d'abord la zone (Zones → Add, type Simple), puis un VNet dans cette zone (VNets → Create), puis éventuellement un subnet avec sa passerelle et la case SNAT.
Rien n'existe sur les nœuds tant qu'on n'a pas cliqué sur Apply : les objets restent à l'état pending. Une fois appliqué, le VNet apparaît sur chaque nœud comme un pont, et une VM s'y branche en choisissant ce VNet comme Bridge de sa carte réseau.
À faire sur votre cluster : une zone Simple, puis sa suppression.
Dans l'interface web, menu Datacenter → SDN :
- Zones → Add → Simple : ID
zonetp, IPAMpve, puis Add. L'IPAM (IP Address Management, gestion des adresses IP)pveest celle de Proxmox : elle tient la liste des adresses attribuées dans les subnets. - VNets → Create : Name
vnettp, Zonezonetp. Le champ Tag est grisé : une zone Simple n'a ni VLAN ni VXLAN. - Sélectionnez
vnettp, puis Subnets → Create : Subnet10.10.200.0/24, Gateway10.10.200.1, case SNAT cochée. - Datacenter → SDN → Apply. Le tableau Status montre
zonetpsur chacun des trois nœuds.
Dans le Shell du nœud 1 (interface web → votre nœud 1 → Shell) :
ip -br link show vnettp # le pont du VNet, créé sur le nœud par l'Apply
Résultat attendu : vnettp UNKNOWN …. Le pont existe ; il est UNKNOWN tant qu'aucun invité n'y est branché. Avant l'Apply, la même commande répond Device "vnettp" does not exist.
On supprime ensuite dans l'ordre inverse de la création, car un subnet vit dans un VNet et un VNet dans une zone :
- sélectionnez
vnettp→ panneau Subnets → le subnet → Remove ; - VNets →
vnettp→ Remove ; - Zones →
zonetp→ Remove ; - Datacenter → SDN → Apply.
Dans le Shell du nœud 1 :
ip -br link show vnettp # le pont a-t-il disparu ?
Résultat attendu : Device "vnettp" does not exist. Le pont a disparu des nœuds.
Une zone VXLAN se crée de la même façon, avec la liste des adresses des nœuds (Peers). Un même réseau de niveau 2 est alors tendu entre les trois nœuds, et une VM qui migre garde sa connectivité. Les noms des zones et des VNets font huit caractères au plus, sans tiret.
À retenir : le SDN déclare les réseaux une seule fois, au niveau du Datacenter, et Proxmox les déploie sur tous les nœuds. Trois objets imbriqués : la zone (la technologie de transport), le VNet (le réseau des invités), le subnet (sa plage d'adresses) ; rien n'est créé avant l'Apply. Simple pour un réseau isolé par nœud, VXLAN pour un réseau tendu entre les nœuds.
Proxmox VE — TSSR