Connecter des serveurs à un VLAN
Ce guide explique comment configurer des VLAN sur des serveurs Linux afin d’isoler et de contrôler le trafic réseau. Les étapes ci-dessous couvrent Ubuntu 22.04, Debian 11 ainsi qu’AlmaLinux 9 / Rocky Linux 9.
Avant de configurer les VLAN sur le serveur, assurez-vous que le port du commutateur est correctement configuré. Pour les VLAN avec balises, le port du commutateur doit autoriser les ID VLAN requis. Pour le trafic non balisé, le port doit être en mode access et avoir le VLAN approprié attribué.
Vérifier le module du noyau 8021q
Sur toutes les distributions, vérifiez que le module du noyau 8021q est chargé avant de configurer les VLAN :
lsmod | grep 8021q
Si le module n’est pas chargé, exécutez :
sudo modprobe 8021q
Pour charger le module automatiquement, ajoutez-le à /etc/modules :
echo "8021q" | sudo tee -a /etc/modules
Ubuntu 22.04
Ubuntu 22.04 utilise netplan pour la configuration réseau.
Identifier l’interface réseau
Exécutez la commande suivante pour déterminer le nom de l’interface :
ip link show
Dans les exemples ci-dessous, l’interface est enp0s8.
Configurer le réseau pour un port access non balisé
Cette section décrit l’attribution d’une adresse IP statique directement à l’interface physique, sans créer de sous-interface VLAN.
Ouvrez le fichier de configuration netplan :
sudo nano /etc/netplan/*.yaml
Ajoutez la configuration suivante. Utilisez des adresses IP différentes sur chaque serveur :
Serveur 1 :
network: version: 2 ethernets: enp0s8: dhcp4: no addresses: - 192.168.1.1/24 routes: - to: default via: 192.168.1.254
Serveur 2 :
network: version: 2 ethernets: enp0s8: dhcp4: no addresses: - 192.168.1.2/24 routes: - to: default via: 192.168.1.254
Le paramètre gateway4 est obsolète depuis netplan 0.100 et génère un avertissement. Utilisez routes: comme indiqué ci-dessus.
Testez la configuration avant de l’appliquer. La commande attend une confirmation pendant 120 secondes maximum, puis restaure automatiquement la configuration précédente si elle n’est pas confirmée. Cela est particulièrement utile sur les serveurs distants :
sudo netplan try
Si la configuration est valide, appliquez-la :
sudo netplan apply
Vérifiez que l’adresse a été attribuée :
ip addr show enp0s8
Configurer les VLAN avec balises
Ouvrez le fichier de configuration netplan et ajoutez les interfaces VLAN. Utilisez des adresses IP différentes pour chaque serveur sur chaque VLAN :
Serveur 1 :
network: version: 2 ethernets: enp0s8: dhcp4: no vlans: vlan10: id: 10 link: enp0s8 addresses: - 192.168.10.1/24 vlan20: id: 20 link: enp0s8 addresses: - 192.168.20.1/24
Serveur 2 :
network: version: 2 ethernets: enp0s8: dhcp4: no vlans: vlan10: id: 10 link: enp0s8 addresses: - 192.168.10.2/24 vlan20: id: 20 link: enp0s8 addresses: - 192.168.20.2/24
L’utilisation d’adresses IP en double provoquera un conflit. Chaque serveur doit avoir une adresse IP unique sur chaque VLAN.
Normalement, une seule interface VLAN doit avoir une passerelle par défaut. L’attribution d’une passerelle à plusieurs interfaces VLAN peut entraîner des problèmes de routage, sauf si un routage avancé est configuré.
Testez et appliquez la configuration :
sudo netplan try sudo netplan apply
Vérifiez le résultat :
ip addr
Pour vérifier que le balisage VLAN fonctionne correctement :
ip -d link show vlan10 ip -d link show vlan20
Vérifiez la connectivité :
ping 192.168.10.2 ping 192.168.20.2
Debian 11
Debian 11 utilise le fichier /etc/network/interfaces pour la configuration réseau.
Installer le paquet vlan
Sur une installation Debian propre, installez le paquet vlan avant de configurer les interfaces VLAN :
sudo apt update sudo apt install vlan
Identifier l’interface réseau
ip link show
Dans les exemples ci-dessous, l’interface est enp0s8.
Configurer le réseau pour un port access non balisé
Cette section décrit l’attribution d’une adresse IP statique directement à l’interface physique, sans créer de sous-interface VLAN.
Ajoutez la configuration suivante dans /etc/network/interfaces sur chaque serveur.
La commande ip addr add attribue une adresse temporairement et cette configuration ne survivra pas à un redémarrage. Utilisez la configuration persistante ci-dessous pour la rendre permanente.
Serveur 1 :
auto enp0s8 iface enp0s8 inet static address 192.168.1.1/24 gateway 192.168.1.254
Serveur 2 :
auto enp0s8 iface enp0s8 inet static address 192.168.1.2/24 gateway 192.168.1.254
Appliquez la configuration sans redémarrer :
sudo systemctl restart networking
Vérifiez que l’adresse est active :
ip addr
Vérifiez que les serveurs peuvent communiquer entre eux :
ping 192.168.1.2
Configurer les VLAN avec balises
Ajoutez les interfaces VLAN à /etc/network/interfaces sur chaque serveur. Utilisez des adresses IP différentes pour chaque serveur sur chaque VLAN.
Serveur 1 :
auto enp0s8.10 iface enp0s8.10 inet static address 192.168.10.1/24 gateway 192.168.10.254 auto enp0s8.20 iface enp0s8.20 inet static address 192.168.20.1/24
Serveur 2 :
auto enp0s8.10 iface enp0s8.10 inet static address 192.168.10.2/24 gateway 192.168.10.254 auto enp0s8.20 iface enp0s8.20 inet static address 192.168.20.2/24
Appliquez la configuration :
Le redémarrage du service réseau sur un serveur distant peut interrompre la session SSH actuelle.
sudo systemctl restart networking
Vérifiez le résultat :
ip addr
Pour vérifier que le balisage VLAN fonctionne correctement :
ip -d link show enp0s8.10 ip -d link show enp0s8.20
Vérifiez la connectivité :
ping 192.168.10.2 ping 192.168.20.2
AlmaLinux 9 / Rocky Linux 9
AlmaLinux 9 et Rocky Linux 9 utilisent NetworkManager pour la configuration réseau. L’outil recommandé pour gérer les connexions est nmcli. L’ancienne méthode utilisant /etc/sysconfig/network-scripts/ n’est pas prise en charge dans les distributions basées sur RHEL 9.
Identifier l’interface réseau
nmcli device status
Dans les exemples ci-dessous, l’interface est enp0s8.
Vérifier les connexions existantes
Avant d’ajouter une nouvelle connexion, vérifiez si un profil de connexion existe déjà pour l’interface :
nmcli connection show
Si un profil existant est actif sur enp0s8, supprimez-le afin d’éviter les conflits. Utilisez le nom du profil exactement comme indiqué dans la sortie ci-dessus. Ignorez cette étape si le profil existant a été créé par votre hébergeur ou par cloud-init :
nmcli connection delete "Wired connection 1"
Configurer le réseau pour un port access non balisé
Attribuez une adresse IP statique à l’interface physique.
Serveur 1 :
nmcli connection add type ethernet con-name "enp0s8-primary" ifname enp0s8 \ ipv4.method manual ipv4.addresses 192.168.1.1/24 \ ipv4.gateway 192.168.1.254 \ connection.autoconnect yes nmcli connection up enp0s8-primary
Serveur 2 :
nmcli connection add type ethernet con-name "enp0s8-primary" ifname enp0s8 \ ipv4.method manual ipv4.addresses 192.168.1.2/24 \ ipv4.gateway 192.168.1.254 \ connection.autoconnect yes nmcli connection up enp0s8-primary
Vérifiez que l’adresse a été attribuée :
ip addr show enp0s8
Vérifiez la connectivité entre les serveurs :
ping 192.168.1.2
Configurer les VLAN avec balises
Créez une interface VLAN au-dessus de l’interface physique. Utilisez des adresses IP différentes sur chaque serveur pour chaque VLAN.
Serveur 1 :
nmcli connection add type vlan con-name vlan10 ifname enp0s8.10 \ vlan.parent enp0s8 vlan.id 10 \ ipv4.method manual ipv4.addresses 192.168.10.1/24 \ connection.autoconnect yes nmcli connection add type vlan con-name vlan20 ifname enp0s8.20 vlan.parent enp0s8 vlan.id 20 ipv4.method manual ipv4.addresses 192.168.20.1/24 connection.autoconnect yes nmcli connection up vlan10 nmcli connection up vlan20
Serveur 2 :
nmcli connection add type vlan con-name vlan10 ifname enp0s8.10 \ vlan.parent enp0s8 vlan.id 10 \ ipv4.method manual ipv4.addresses 192.168.10.2/24 \ connection.autoconnect yes nmcli connection add type vlan con-name vlan20 ifname enp0s8.20 vlan.parent enp0s8 vlan.id 20 ipv4.method manual ipv4.addresses 192.168.20.2/24 connection.autoconnect yes nmcli connection up vlan10 nmcli connection up vlan20
L’utilisation d’adresses IP en double provoquera un conflit. Chaque serveur doit avoir une adresse IP unique sur chaque VLAN.
Vérifiez le résultat :
ip addr
Pour vérifier que le balisage VLAN fonctionne correctement :
ip -d link show enp0s8.10 ip -d link show enp0s8.20
Vérifiez la connectivité :
ping 192.168.10.2 ping 192.168.20.2
Dépannage
Si les interfaces VLAN n’apparaissent pas ou ne reçoivent pas de trafic :
- vérifiez que le port du commutateur autorise les ID VLAN requis ;
- assurez-vous que le vSwitch ou le groupe de ports de l’hyperviseur est configuré pour laisser passer les balises VLAN ;
- assurez-vous que la bonne interface parente est spécifiée dans la configuration ;
- vérifiez que le module du noyau 8021q est chargé : lsmod | grep 8021q.