Proxmox VE : découvrez comment créer un réseau privé avec NAT

Virtualisation

Proxmox VE : découvrez comment créer un réseau privé avec NAT

I. Présentation

Ce tutoriel aborde la création d’un réseau NAT sur un serveur Proxmox VE, avec également la création d’une règle de port forwarding (redirection de port) pour rendre accessible de l’extérieur du réseau NAT un service hébergé sur une VM ou un conteneur.

Il est à noter que Proxmox VE ne propose plus, nativement, la création d’un réseau NAT. Cette possibilité était disponible il y a quelques années, mais elle a été supprimée par une mise à jour de Proxmox VE 5.1. Désormais, il convient de faire quelques manipulations manuelles pour créer un réseau NAT avec le mécanisme de Linux Bridge de Proxmox VE. C’est ce que nous allons voir.

L’avantage du réseau NAT, c’est qu’il vous permet de créer un réseau virtuel isolé, qui dispose tout de même d’un accès à Internet. C’est une configuration avantageuse dans le cadre d’un Lab.

Note : vous pouvez créer un réseau NAT à partir des fonctions de SDN de Proxmox VE, en créant un Subnet avec l’option SNAT activée. Cette méthode sera évoquée en fin d’article.

Si vous souhaitez en savoir plus sur la gestion du réseau avec Proxmox VE, consultez cet article :

II. Création d’un réseau NAT sur Proxmox

Dans la suite de ce tutoriel, nous verrons comment créer un réseau NAT à partir d’une interface Linux Bridge et quelques règles iptables. On parlera aussi de port forwarding, afin de rendre accessible un service hébergé sur le réseau NAT (et donc, isolé).

A. Étape n°1 : créer une interface Linux Bridge

Pour commencer, accédez à l’interface Web de Proxmox. Puis, sélectionnez votre hyperviseur afin d’accéder au menu suivant : System > Network. Quand c’est fait, cliquez sur le bouton “Create” et choisissez “Linux Bridge“. Ici, nous allons créer l’interface via le web et finaliser la configuration en ligne de commande. Vous pourriez tout à fait réaliser l’intégralité de la configuration directement dans le fichier .

Nommez cette interface : vous pouvez indiquer ou simplement laisser le nom . Puis, indiquez un commentaire pour préciser l’objet de ce réseau. Vous devez aussi indiquer une adresse IP associée à cette interface, comme ici . Elle sera utilisée comme passerelle par défaut par les clients connectés à ce réseau, cela veut donc dire que le sous-réseau est adressé en .

Pour valider, cliquez sur “Create” pour créer le nouveau pont réseau sur votre hyperviseur. Cliquez sur “Apply Configuration” dès maintenant, c’est important !

Note : vous remarquerez que ce Linux Bridge n’est pas associé à une interface physique, c’est tout à fait normal.

B. Étape n°2 : configurer le NAT sur le réseau

Désormais, nous allons devoir modifier la configuration réseau de Proxmox VE de façon un peu plus approfondie. En effet, nous devons activer l’IP forwarding et utiliser des règles iptables pour mettre en place le NAT via l’IP masquerade.

Connectez-vous à votre Proxmox via SSH ou via le “Shell” en ligne. Puis, modifiez le fichier de configuration du réseau :


Au sein de la section correspondante à l’interface NAT créée précédemment, ajoutez ces trois lignes :

post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE

Voici à quoi servent ces trois lignes, dans l’ordre :

  • Active le routage IPv4 sur l’hôte Proxmox pour permettre le transfert de paquets entre interfaces réseau (IP forwarding).
  • Ajoute une règle NAT qui remplace l’adresse source des paquets provenant du réseau par celle de l’interface (NAT vers l’extérieur).
  • Supprime cette même règle NAT lorsque l’interface est arrêtée, pour garder une configuration propre.

Vous devez donc adapter le réseau IP et le nom de l’interface , en fonction de votre configuration. Ici, j’utilise , car elle me donne accès à Internet au niveau de mon hôte Proxmox VE.

Une fois les modifications effectuées, enregistrez et fermez le fichier.

C. Étape n°3 : redémarrer le réseau

Pour appliquer la nouvelle configuration, redémarrez le service réseau (ce qui implique une interruption du réseau sur tout l’hôte Proxmox) :

systemctl restart networking.service

La configuration est terminée. Désormais, testons.

D. Étape n°4 : connecter une VM au réseau NAT

Pour tester, c’est simple. Vous n’avez qu’à modifier la configuration d’une VM ou d’un conteneur pour que sa carte réseau soit liée à l’interface Linux Bridge créée précédemment, à savoir pour ma part. Ensuite, vous devez configurer une adresse IP statique sur le réseau , car il n’y a pas de serveur DHCP. Libre à vous de monter un serveur DHCP sur une VM connectée à ce réseau, voire même via un conteneur LXC.

La connectivité réseau est opérationnelle :

Si le pare-feu est actif sur votre VM / conteneur, il est fort probable que les flux ne soient pas autorisés. Dans ce cas, vous devez appliquer l’astuce fournie dans la documentation de Proxmox VE, à savoir ajouter ces deux lignes dans le fichier interfaces (à la suite de la configuration précédente) :


Enregistrez, fermez le fichier et redémarrez le service réseau.


Testez de nouveau.

Si cela ne fonctionne pas, c’est probablement parce que l’option “MAC filter” est activée dans les options du pare-feu de l’invité. Elle sert notamment à empêcher l’usurpation d’adresses MAC (MAC spoofing), ce qui est gênant dans le cadre du NAT. Désactivez l’option et ça devrait aller mieux.

E. Facultatif – Créer une règle de redirection de port

Dans le cas où vous souhaitez accéder au service hébergé sur une VM depuis l’extérieur du réseau NAT, vous devez créer une règle de port forwarding. Là encore, vous devez éditer le fichier pour déclarer la règle.

Voici un exemple :


Ici, la règle redirige tout le trafic TCP entrant sur le port de l’interface (via laquelle est exposée le nœud) vers la machine interne (soit la VM Windows configurée dans le réseau NAT) sur le port , permettant ainsi d’accéder au service Bureau à distance (RDP) de la VM depuis l’extérieur.

Ce qui donne :

Une connexion est alors possible depuis une machine distante :

III. Réseau NAT avec le SDN de Proxmox

La création d’un réseau NAT en s’appuyant sur les capacités de SDN de Proxmox VE, et donc d’Open vSwitch, est tout à fait possible. De façon à pouvoir distribuer des adresses IP aux clients (DHCP) et résoudre les noms (DNS), vous devez installer et configurer le paquet sur votre hyperviseur. Ces deux commandes sont donc la première étape à accomplir.


La suite de la configuration s’effectue à partir de l’interface web de Proxmox VE.

Commencez par créer une nouvelle zone simple : SDN > Zones > Add > Simple. Nommez cette zone , par exemple, et liez la zone à votre noeud.

Basculez sur la partie réseau virtuel : SDN > VNets. Ici, créez un nouveau Vnet que vous pouvez appeler et qui est rattaché à la zone .

Sur la droite, vous pouvez ajouter un nouveau sous-réseau à ce Vnet. Après l’avoir sélectionné, cliquez sur “Create“. Définissez alors l’adresse réseau et la passerelle (ce sera l’adresse IP de sortie pour les clients du réseau NAT). Ici, je suis partie sur un sous-réseau en . Et, surtout, cochez l’option “SNAT” pour faire du Source NAT.

Basculez sur l’onglet “DHCP Ranges” de façon à définir la plage d’adresses IP à distribuer. Le DHCP intégré est appréciable, en comparaison de la méthode basée sur les Linux Bridge.

Quand la configuration est terminée, validez : SDN > Apply.

Si vous connectez l’interface réseau d’une VM au réseau , celle-ci devrait récupérer une adresse IP via le DHCP. Voici un exemple :

Dans le cas où le firewall est actif sur votre environnement Proxmox VE (ce qui est préférable), vous devez créer 2 règles pour autoriser les flux DHCP et DNS. Sinon, les services seront bloqués. Pour créer une règle au niveau du Datacenter (recommandé pour le SDN) : Datacenter > Firewall > Add.

La première règle à créer pour le DHCP :

La seconde règle à créer pour le DNS :

Je vous proposerai prochainement un article complet sur la configuration du firewall Proxmox VE.

IV. Conclusion

En suivant ce tutoriel, vous devriez être en mesure de créer un réseau NAT avec un Linux Bridge ou avec Open vSwitch (SDN), en fonction de vos préférences et de vos habitudes. Si vous n’avez jamais utilisé le module SDN, il peut s’avérer judicieux de commencer par un réseau NAT avec Linux Bridge.

Si vous avez des difficultés à faire fonctionner une configuration, n’hésitez pas à redémarrer le nœud Proxmox. Parfois, c’est nécessaire pour bien appliquer les changements et faire en sorte que la configuration soit effective.

SOURCE