Créer des interfaces VLAN sous Linux avec la commande ip

CompTIABeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à configurer des interfaces de réseau local virtuel (VLAN) sur un système Linux en utilisant la commande ip de la suite iproute2. Vous acquerrez une expérience pratique de la création de réseaux logiquement séparés sur une seule interface physique, une compétence fondamentale pour l'administration et la segmentation réseau. Ce processus vous permet d'isoler le trafic réseau et d'améliorer la sécurité et les performances sans matériel physique supplémentaire.

Vous commencerez par préparer le système, ce qui implique l'installation des utilitaires user-space vlan nécessaires et le chargement du module noyau 802.1q pour activer le marquage VLAN. Après la configuration initiale, vous identifierez l'interface réseau principale, créerez deux nouvelles interfaces virtuelles pour les VLAN 10 et 20, et attribuerez une adresse IP statique à chacune. Enfin, vous utiliserez la commande ip a pour vérifier que les interfaces VLAN ont été créées avec succès et sont actives sur le système.

Installer les utilitaires VLAN et charger le module noyau 802.1q

Dans cette étape, vous préparerez votre environnement Linux à la configuration des VLAN. Cela implique deux actions clés : l'installation des outils user-space nécessaires et le chargement du module noyau requis.

Un réseau local virtuel (VLAN) vous permet de créer des réseaux logiquement séparés sur la même infrastructure réseau physique. Pour gérer les VLAN sous Linux, vous avez besoin du paquet vlan, qui fournit des outils en ligne de commande. De plus, le noyau doit comprendre le trafic marqué par VLAN, ce qui est activé par le module noyau 8021q, nommé d'après la norme de réseau IEEE 802.1Q pour les VLAN.

Tout d'abord, assurons-nous que votre liste de paquets est à jour, puis installons le paquet vlan. Toutes les commandes seront exécutées dans le terminal.

  1. Mettez à jour l'index des paquets sur votre système :

    sudo apt update
    
  2. Installez le paquet vlan. L'option -y confirme automatiquement l'installation.

    sudo apt install -y vlan
    

    Vous devriez voir une sortie indiquant que le paquet est en cours d'installation.

    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    The following NEW packages will be installed:
      vlan
    0 upgraded, 1 newly installed, 0 to remove and XX not upgraded.
    Need to get XX.X kB of archives.
    After this operation, XXX kB of additional disk space will be used.
    Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 vlan X.X-X [XX.X kB]
    Fetched XX.X kB in Xs (XX.X kB/s)
    Selecting previously unselected package vlan.
    (Reading database ... XXXXXX files and directories currently installed.)
    Preparing to unpack .../vlan_X.X-X_amd64.deb ...
    Unpacking vlan (X.X-X) ...
    Setting up vlan (X.X-X) ...
    

Maintenant que les outils sont installés, vous devez charger le module noyau 8021q. Ce module permet au noyau Linux de traiter les paquets réseau avec des étiquettes VLAN.

  1. Chargez le module 8021q en utilisant la commande modprobe :

    sudo modprobe 8021q
    

    Cette commande ne produit généralement aucune sortie en cas de succès.

  2. Pour confirmer que le module a été chargé correctement, vous pouvez lister tous les modules chargés avec lsmod et filtrer la sortie pour 8021q en utilisant grep.

    lsmod | grep 8021q
    

    La sortie devrait afficher le module 8021q, confirmant qu'il est actif dans le noyau.

    8021q                  36864  0
    garp                   20480  1 8021q
    mrp                    20480  1 8021q
    

Votre système est maintenant prêt pour la configuration des VLAN. Dans l'étape suivante, vous identifierez votre interface réseau et commencerez à créer des VLAN.

Identifier l'interface réseau principale

Dans cette étape, vous identifierez le nom de l'interface réseau principale de votre système. Les interfaces VLAN sont des interfaces virtuelles qui sont logiquement attachées à une interface réseau physique. Par conséquent, vous devez d'abord connaître le nom de cette interface physique "parente" avant de pouvoir y créer des VLAN.

Nous utiliserons la commande ip, qui est la norme moderne pour la configuration réseau sous Linux. Plus précisément, la commande ip a (ou ip addr) affiche des informations sur toutes les interfaces réseau.

  1. Ouvrez un terminal. Votre répertoire de travail actuel est ~/project.

  2. Pour lister toutes les interfaces réseau et leurs configurations, tapez la commande suivante et appuyez sur Entrée :

    ip a
    

Vous verrez une liste de toutes les interfaces réseau de votre système. Recherchez une interface qui est active et à laquelle une adresse IP est attribuée. Vous pouvez ignorer l'interface lo, qui est le périphérique de bouclage local (loopback). Le nom de l'interface principale commence généralement par en (pour Ethernet) ou eth.

Voici un exemple de ce à quoi la sortie pourrait ressembler. Dans cet exemple, eth0 est l'interface physique principale.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:16:3e:00:04:06 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname ens5
    inet 172.16.50.186/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
       valid_lft 1892159924sec preferred_lft 1892159924sec
    inet6 fe80::216:3eff:fe00:406/64 scope link
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:f2:70:14:b5 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

À partir de la sortie ci-dessus, observez ce qui suit :

  • eth0 : C'est le nom de l'interface. Notez ce nom, car vous en aurez besoin dans les étapes suivantes. Le nom de votre interface peut être différent (par exemple, ens33).
  • state UP : Ceci indique que l'interface est active.
  • inet 172.16.50.186/24 : C'est l'adresse IPv4 attribuée à l'interface.

Maintenant que vous avez identifié votre interface réseau principale, vous êtes prêt à créer des interfaces VLAN sur celle-ci.

Créer des interfaces virtuelles pour VLAN 10 et VLAN 20

Dans cette étape, vous utiliserez la commande ip pour créer deux nouvelles interfaces réseau virtuelles. Chaque interface sera associée à un identifiant VLAN spécifique, connectant ainsi efficacement votre hôte à deux réseaux logiques distincts, le VLAN 10 et le VLAN 20. Ces nouvelles interfaces seront liées à l'interface physique principale que vous avez identifiée à l'étape précédente.

La commande pour créer une interface VLAN est ip link add. Décomposons sa structure :

  • sudo ip link add : La commande de base pour ajouter une nouvelle liaison (interface) réseau.
  • link <physical_interface> : Spécifie l'interface physique parente. Vous remplacerez <physical_interface> par le nom que vous avez trouvé à l'étape 2 (par exemple, eth0).
  • name <vlan_interface_name> : Définit le nom de la nouvelle interface virtuelle. Une convention courante est <physical_interface>.<vlan_id>, comme eth0.10.
  • type vlan : Spécifie que la nouvelle interface est de type VLAN.
  • id <vlan_id> : Attribue l'identifiant (ou tag) numérique du VLAN.

Maintenant, créons les interfaces. N'oubliez pas de remplacer eth0 par le nom réel de votre interface physique si celui-ci est différent.

  1. Tout d'abord, créez l'interface virtuelle pour le VLAN 10. Cette interface sera nommée eth0.10.

    sudo ip link add link eth0 name eth0.10 type vlan id 10
    
  2. Ensuite, créez l'interface virtuelle pour le VLAN 20, en la nommant eth0.20.

    sudo ip link add link eth0 name eth0.20 type vlan id 20
    

Si ces commandes réussissent, elles ne produiront aucune sortie. Vous avez maintenant créé les interfaces logiques, mais elles ne sont pas encore actives ni configurées avec des adresses IP. Vous vous en chargerez à l'étape suivante.

Attribuer des adresses IP et activer les interfaces VLAN

Dans cette étape, vous allez activer les interfaces VLAN nouvellement créées et leur attribuer des adresses IP. Après leur création, les interfaces réseau sont par défaut dans un état DOWN, ce qui signifie qu'elles sont désactivées et ne peuvent ni envoyer ni recevoir de trafic. Vous devez les activer et leur fournir des adresses de couche réseau pour les rendre fonctionnelles.

Nous utiliserons la commande ip link set up pour activer les interfaces et ip addr add pour attribuer les adresses IP.

  1. Tout d'abord, vous devez activer, ou "mettre en ligne", les interfaces VLAN. Cela leur permet de participer à la communication réseau. Exécutez les commandes suivantes dans votre terminal. N'oubliez pas d'utiliser le nom de votre interface si ce n'est pas eth0.

    Activez l'interface eth0.10 :

    sudo ip link set dev eth0.10 up
    

    Activez l'interface eth0.20 :

    sudo ip link set dev eth0.20 up
    

    Ces commandes ne produiront aucune sortie si elles réussissent.

  2. Maintenant que les interfaces sont actives, vous pouvez attribuer une adresse IP à chacune d'elles. Nous attribuerons une adresse du réseau 192.168.10.0/24 au VLAN 10 et une adresse du réseau 192.168.20.0/24 au VLAN 20. Le /24 est une notation CIDR pour un masque de sous-réseau de 255.255.255.0.

    Attribuez 192.168.10.10/24 à l'interface eth0.10 :

    sudo ip addr add 192.168.10.10/24 dev eth0.10
    

    Attribuez 192.168.20.10/24 à l'interface eth0.20 :

    sudo ip addr add 192.168.20.10/24 dev eth0.20
    

Vos interfaces VLAN sont maintenant entièrement configurées et actives pour la session en cours. Dans la dernière étape, vous vérifierez la configuration complète.

Vérifier la configuration de l'interface VLAN avec ip a

Dans cette dernière étape, vous allez vérifier que vos interfaces VLAN ont été créées, activées et configurées avec les bonnes adresses IP avec succès. En exécutant à nouveau la commande ip a, vous verrez la configuration réseau complète de votre hôte, y compris les nouvelles interfaces virtuelles.

  1. Dans votre terminal, exécutez la commande ip a pour afficher toutes les informations sur les interfaces réseau.

    ip a
    
  2. Examinez attentivement la sortie. Vous devriez maintenant voir vos nouvelles interfaces VLAN, eth0.10 et eth0.20, listées aux côtés de vos interfaces physiques et de bouclage (loopback).

    La sortie devrait ressembler à ceci :

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:00:04:06 brd ff:ff:ff:ff:ff:ff
        inet 172.16.50.186/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159924sec preferred_lft 1892159924sec
    3: eth0.10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:16:3e:00:04:06 brd ff:ff:ff:ff:ff:ff
        inet 192.168.10.10/24 brd 192.168.10.255 scope global eth0.10
           valid_lft forever preferred_lft forever
    4: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:16:3e:00:04:06 brd ff:ff:ff:ff:ff:ff
        inet 192.168.20.10/24 brd 192.168.20.255 scope global eth0.20
           valid_lft forever preferred_lft forever
    

Observez les détails clés suivants pour vos nouvelles interfaces :

  • eth0.10@eth0 et eth0.20@eth0 : Les noms des interfaces VLAN. La partie @eth0 indique explicitement qu'elles sont liées au périphérique physique eth0.
  • state UP : Confirme que les deux interfaces sont actives et prêtes à transmettre des données.
  • inet 192.168.10.10/24 et inet 192.168.20.10/24 : Les adresses IP que vous avez attribuées à l'étape précédente sont correctement configurées.

Félicitations ! Vous avez configuré avec succès un seul hôte Linux pour participer à deux VLAN différents. Cela démontre comment un serveur peut communiquer sur plusieurs segments de réseau logiques en utilisant une seule connexion physique.

Note sur la persistance : Les commandes ip que vous avez utilisées créent une configuration temporaire qui sera perdue au redémarrage. Dans un environnement de production, vous rendriez ces modifications permanentes en modifiant les fichiers de configuration réseau, tels que ceux utilisés par Netplan (/etc/netplan/*.yaml) ou l'ancien système ifupdown (/etc/network/interfaces).

Résumé

Dans ce laboratoire, vous avez appris le processus complet de création et de configuration des interfaces VLAN sur un système Linux à l'aide de la commande ip. Vous avez commencé par préparer l'environnement, ce qui a impliqué l'installation du paquet vlan pour les utilitaires en espace utilisateur et le chargement du module noyau 8021q pour activer le traitement des balises VLAN. Cette étape fondamentale garantit que le système peut comprendre et gérer le trafic VLAN.

Suite à la configuration initiale, vous avez identifié l'interface réseau physique principale qui servirait de parent aux VLAN. Vous avez ensuite utilisé la commande ip link pour créer deux interfaces virtuelles distinctes, une pour le VLAN 10 et une autre pour le VLAN 20, en les reliant à l'interface parente. Pour rendre ces interfaces fonctionnelles, vous leur avez attribué une adresse IP unique et les avez activées. Le processus s'est terminé par l'utilisation de la commande ip a pour vérifier que les nouvelles interfaces VLAN avaient été créées avec succès, configurées avec les bonnes adresses IP et étaient actives sur le réseau.