Aller au contenu principal
Xsec

COUCHE 2 Vlan, Spanning-tree, Trunk, EtherChannel et encapsulation Dot1Q

Publié le 13 min de lecture

Mis à jour le

Partie 1 sur 6
Dans cette série41 min de lecture au total
  1. COUCHE 2 Vlan, Spanning-tree, Trunk, EtherChannel et encapsulation Dot1Q
  2. COUCHE 3 Routage statique, RIPv2, OSPF, NAT
  3. La hiérarchie du CLI Cisco
  4. Aide, autocomplétion, supervision, raccourcis
  5. Configuration des switchs Alcatel
  6. Accès distants

Un switch sorti du carton est un seul et vaste domaine de diffusion : tout ce qui est branché dessus se voit, s’entend et reçoit les diffusions de tout le monde. Les cinq fonctionnalités de cet article corrigent ce comportement, et chacune répond au problème créé par la précédente.

FonctionnalitéLe problème qu’elle résout
VLANun switch unique mélange tout le monde dans le même domaine de diffusion
Trunkun VLAN découpé ne franchit pas la frontière entre deux switches
Spanning-treerelier des switches entre eux crée des boucles qui saturent le réseau
EtherChannelun lien unique entre switches est à la fois un goulot et un point de panne
Encapsulation Dot1Qdes VLANs bien séparés ne peuvent plus se parler du tout

Nous suivrons cet enchaînement dans l’ordre.

Les VLANs : découper le switch

Un VLAN divise un switch physique en plusieurs switches logiques. Les ports d’un VLAN ne voient que les autres ports du même VLAN, ce qui apporte trois bénéfices immédiats.

  • Sécurité : les postes d’un service ne peuvent plus écouter le trafic d’un autre.
  • Performance : les diffusions restent confinées, le domaine de diffusion est réduit d’autant.
  • Coût et souplesse : un seul switch remplace plusieurs équipements séparés, et changer un poste de service se fait en une commande, sans toucher au câblage.
DéfinitionDomaine de diffusion

C’est l’ensemble des machines qui reçoivent une trame de diffusion émise par l’une d’entre elles. Une requête ARP, un DHCP Discover ou une annonce NetBIOS partent vers tous les ports du domaine. Plus il est large, plus chaque machine passe de temps à traiter du trafic qui ne la concerne pas. Découper en VLANs, c’est découper ce domaine.

  1. Créer le VLAN

    Switch(config)#
    vlan 10
    name COMPTABILITE

    Le nom est facultatif mais fortement recommandé : dans six mois, VLAN0010 ne dira rien à personne.

  2. Affecter un port au VLAN

    Switch(config)#
    interface FastEthernet0/1
    Switch(config-if)#
    switchport mode access
    switchport access vlan 10

    L’interface Fa0/1 appartient désormais au VLAN 10.

    AstuceCréer le VLAN à la volée

    Affecter un port à un VLAN inexistant le crée automatiquement, avec un avertissement explicite :

    Switch(config-if)#
    switchport access vlan 10
    % Access VLAN does not exist. Creating vlan 10

    Pratique en lab, à éviter en production : un VLAN créé par une faute de frappe reste dans la configuration et n’a pas de nom.

  3. Vérifier

    Switch#
    show vlan brief

    Cette commande liste les VLANs existants et les ports affectés à chacun. C’est la vérification à faire avant de chercher plus loin quand deux machines ne se voient pas.

Le préfixe no supprime un VLAN :

Switch(config)#
no vlan 10
AvertissementSupprimer un VLAN n'en déplace pas les ports

Les interfaces qui lui étaient affectées ne reviennent pas au VLAN 1 : elles restent rattachées à un VLAN qui n’existe plus et cessent de transmettre. Réaffectez explicitement les ports avant la suppression, ou vous découvrirez la panne quand un utilisateur appellera.

NoteDeux rôles pour un port

Un port est soit access, rattaché à un seul VLAN et destiné à une machine terminale, soit trunk, capable d’en transporter plusieurs. Toute la suite repose sur cette distinction.

Le découpage fonctionne, tant que tout tient sur un seul switch. Dès qu’il y en a deux, le VLAN 10 s’arrête à la frontière.

Le trunk : faire franchir la frontière aux VLANs

Un lien trunk transporte plusieurs VLANs sur un même câble entre deux équipements. Vu autrement, il prolonge chaque VLAN d’un switch à l’autre, comme si les deux n’en formaient qu’un.

Vue physiqueVue logique
Deux switches reliés par un unique câbleLes VLANs traversant le lien comme s'il s'agissait d'un seul switch

Pour distinguer les VLANs sur un câble unique, le switch ajoute une étiquette de 4 octets dans chaque trame, contenant le numéro du VLAN. C’est la norme IEEE 802.1Q, aussi appelée dot1Q. Le switch d’en face lit l’étiquette, la retire, et remet la trame dans le bon VLAN.

  1. Passer le port en mode trunk

    Switch(config)#
    interface FastEthernet0/1
    Switch(config-if)#
    switchport mode trunk
  2. Limiter les VLANs transportés

    Switch(config-if)#
    switchport trunk allowed vlan 10,20,30

    Par défaut, un trunk transporte tous les VLANs. Restreindre la liste évite qu’un VLAN sensible se promène sur des liaisons qui n’en ont pas l’usage, et réduit le trafic de diffusion à travers le réseau.

  3. Vérifier

    Switch#
    show interfaces trunk

    La sortie confirme le mode, l’encapsulation, le VLAN natif et la liste des VLANs réellement autorisés et actifs sur le lien.

ExplicationLe VLAN natif, la trame sans étiquette

Sur un trunk, un VLAN échappe à l’étiquetage : le VLAN natif, qui vaut 1 par défaut. Ses trames circulent nues, ce qui assure la compatibilité avec des équipements ne comprenant pas dot1Q. Deux conséquences pratiques. D’abord, le VLAN natif doit être identique aux deux extrémités du trunk, sinon le trafic bascule silencieusement d’un VLAN à l’autre. Ensuite, c’est un point d’attaque connu : changer le VLAN natif pour un VLAN inutilisé, avec switchport trunk native vlan 999, est une pratique de durcissement courante.

AvertissementLa négociation automatique est confortable et risquée

Les équipements Cisco récents négocient le mode du lien entre eux avec DTP, ce qui permet à un trunk de s’établir tout seul. C’est pratique en lab. En production, un poste attaquant peut se faire passer pour un switch et obtenir un trunk, donc l’accès à tous les VLANs. Sur tout port destiné à une machine terminale, figez le comportement avec switchport mode access puis switchport nonegotiate.

Les VLANs traversent maintenant plusieurs switches. Mais si l’on ajoute un second câble entre eux pour la redondance, le réseau s’effondre.

Le spanning-tree : survivre aux boucles

Une trame Ethernet ne possède pas de compteur de durée de vie, contrairement à un paquet IP. Une trame de diffusion prise dans une boucle physique tourne donc indéfiniment, se duplique à chaque switch traversé, et sature l’ensemble du réseau en quelques secondes. C’est la tempête de diffusion, et elle rend le réseau totalement inutilisable, pas seulement lent.

Le protocole Spanning Tree (STP) résout ce problème sans supprimer les câbles : il calcule une topologie sans boucle et bloque logiquement les liens en trop, prêts à reprendre du service si le lien principal tombe.

DéfinitionL'élection du root bridge

Tous les switches élisent un point de référence unique, le root bridge, et chacun calcule ensuite son meilleur chemin vers lui. Les ports qui ne sont sur aucun meilleur chemin sont bloqués.

L’élection se joue sur le BID (Bridge ID), composé de deux parties : une priorité configurable, puis l’adresse MAC de l’équipement. Le BID le plus bas gagne. Comme la priorité vaut 32768 partout par défaut, c’est la plus petite adresse MAC qui l’emporte, et donc souvent le switch le plus ancien du parc, ce qui est rarement le choix souhaitable.

C’est pour cette raison que la priorité se configure explicitement.

Switch(config)#
spanning-tree vlan 10 priority 8000
% Bridge Priority must be in increments of 4096.
% Allowed values are:
0 4096 8192 12288 16384 20480 24576 28672
32768 36864 40960 45056 49152 53248 57344 61440
NotePourquoi des multiples de 4096

Le champ de priorité fait 16 bits, mais seuls les 4 bits de poids fort sont configurables. Les 12 bits restants servent à l’identifiant de VLAN étendu, ce qui permet à chaque VLAN d’avoir sa propre topologie. Il ne reste donc que 16 valeurs possibles, espacées de 4096. La valeur 8000 est refusée parce qu’elle n’en fait pas partie, et non parce qu’elle serait trop grande.

Deux commandes évitent d’avoir à calculer soi-même :

Switch(config)#
spanning-tree vlan 10 root primary
Switch(config)#
spanning-tree vlan 10 root secondary

La première abaisse la priorité juste assez pour remporter l’élection, la seconde positionne un remplaçant qui prendra le relais si le premier tombe.

AstuceChoisir le root bridge, ce n'est pas un détail

Tout le trafic inter-VLAN et sortant transite par le root bridge. Le laisser être élu au hasard, c’est laisser le hasard décider par où passe le trafic de l’entreprise. Le root doit être le switch le plus central et le plus fiable, typiquement celui du coeur de réseau, jamais un switch d’étage.

Chaque port se voit ensuite attribuer un rôle, visible avec show spanning-tree :

RôleSignification
Rootle port qui mène au root bridge par le meilleur chemin
Designatedle port qui dessert un segment, en aval du root
Blocking ou Alternatele port mis en attente pour casser la boucle
AvertissementPortFast sur les ports terminaux uniquement

Un port qui monte passe par plusieurs états avant de transmettre, ce qui prend jusqu’à 30 secondes en STP classique. Un poste en DHCP peut abandonner avant la fin. La commande spanning-tree portfast supprime ce délai. Elle ne doit être posée que sur un port relié à une machine terminale : sur un port relié à un switch, elle rétablit exactement la boucle que STP était censé prévenir.

Le réseau supporte maintenant la redondance. Reste que le lien de secours ne sert à rien tant que le principal fonctionne.

EtherChannel : agréger les liens plutôt que les bloquer

Spanning-tree résout les boucles en gaspillant de la bande passante : sur deux câbles entre deux switches, un seul travaille. EtherChannel change la donne en présentant plusieurs liens physiques comme un seul lien logique, que STP voit comme unique et ne bloque donc pas.

Deux liens physiques agrégés en un lien logique unique

Jusqu’à 8 liens actifs peuvent être agrégés. La bande passante s’additionne, et la perte d’un câble réduit le débit sans jamais couper la liaison ni déclencher de reconvergence STP.

  1. Sélectionner la plage d'interfaces

    Switch(config)#
    interface range FastEthernet0/1-2
  2. Créer le groupe

    Switch(config-if-range)#
    channel-group 1 mode active

    LACP est la norme ouverte (IEEE 802.3ad), à privilégier. Le mode active négocie activement, passive attend que l’autre côté propose. Un côté au moins doit être active.

    Switch(config-if-range)#
    channel-group 1 mode desirable

    PAgP est le protocole propriétaire Cisco, équivalent à LACP mais limité aux équipements du constructeur. desirable négocie activement, auto attend.

    Switch(config-if-range)#
    channel-group 1 mode on

    Aucune négociation : le groupe est forcé des deux côtés. Cela fonctionne, mais si la configuration d’en face est incomplète ou différente, rien ne le signale et une boucle peut s’établir. À réserver aux cas où l’équipement distant ne parle ni LACP ni PAgP.

    Les commandes doivent être répétées à l’identique sur le second switch.

  3. Vérifier

    Switch#
    show etherchannel summary

    Le drapeau SU sur le Port-channel indique un groupe de couche 2 opérationnel, et P sur chaque interface confirme qu’elle participe bien au groupe.

ImportantToutes les interfaces du groupe doivent être identiques

Vitesse, duplex, mode access ou trunk, liste des VLANs autorisés : la moindre différence entre deux membres empêche le groupe de se former, ou en exclut silencieusement une interface. C’est de très loin la première cause de panne d’un EtherChannel, et show etherchannel summary le révèle immédiatement.

ExplicationDeux liens de 1 Gb/s ne font pas un lien de 2 Gb/s

La répartition se fait par flux et non par paquet, à partir d’un calcul sur les adresses source et destination. Toutes les trames d’une même conversation empruntent donc toujours le même lien physique, ce qui évite de les faire arriver dans le désordre. Un unique transfert de fichier entre deux machines reste plafonné à 1 Gb/s : c’est le cumul de nombreux flux simultanés qui exploite l’agrégation. Un EtherChannel augmente le débit total, jamais le débit d’une conversation isolée.

Le réseau est maintenant segmenté, étendu, redondant et rapide. Il lui manque une chose : les VLANs ne peuvent absolument pas se parler.

L’encapsulation Dot1Q : faire dialoguer les VLANs

C’est la conséquence directe et voulue du premier chapitre : deux VLANs sont deux réseaux distincts, et passer d’un réseau à un autre relève du routage, donc de la couche 3. Il faut un routeur.

Plutôt que de consacrer un port de routeur à chaque VLAN, on utilise un seul lien physique en trunk, découpé en sous-interfaces logiques, une par VLAN. Cette configuration porte le nom de router-on-a-stick.

  1. Créer la sous-interface

    Router(config)#
    interface GigabitEthernet0/0/0.10

    Le suffixe après le point est un simple numéro de sous-interface. Reprendre le numéro du VLAN n’est pas obligatoire, mais c’est une convention universelle qui rend la configuration lisible.

  2. Déclarer l'encapsulation

    Router(config-subif)#
    encapsulation dot1Q 10

    C’est ici, et uniquement ici, que le lien est fait avec le VLAN 10. Le routeur saura lire les trames étiquetées 10 et étiquetera ses propres réponses de la même façon.

  3. Adresser la sous-interface

    Router(config-subif)#
    ip address 192.168.10.1 255.255.255.0

    192.168.10.1 devient la passerelle par défaut à configurer sur toutes les machines du VLAN 10.

  4. Activer l'interface physique

    Router(config)#
    interface GigabitEthernet0/0/0
    no shutdown
    DangerL'oubli classique

    Les sous-interfaces montent automatiquement, mais elles restent inertes tant que l’interface physique qui les porte est administrativement éteinte. Sur un routeur, les interfaces sont désactivées par défaut. C’est de très loin l’erreur la plus fréquente sur cette configuration.

  5. Répéter pour chaque VLAN

    Terminal
    conf t
    int g0/0/0.20
    encapsulation dot1Q 20
    ip address 192.168.20.1 255.255.255.0
    exit
    int g0/0/0
    no shut
    end
    write memory
AvertissementLe port du switch doit être un trunk

Côté switch, l’interface reliée au routeur transporte plusieurs VLANs : elle doit donc être configurée en switchport mode trunk. Un port laissé en mode access ne fera passer qu’un seul VLAN, et un seul VLAN sera routé. Symétriquement, le VLAN natif doit concorder des deux côtés.

AstuceLa limite du router-on-a-stick

Tout le trafic entre VLANs remonte au routeur puis redescend, sur le même câble. Ce lien devient un goulot d’étranglement dès que le trafic inter-VLAN est important. Au-delà de quelques VLANs, un switch de niveau 3 fait le même travail à la vitesse de commutation, avec des interfaces virtuelles (interface vlan 10) plutôt que des sous-interfaces.

Ces cinq mécanismes forment la base de tout réseau commuté d’entreprise. L’article suivant de la série passe à la couche 3 et au routage entre ces réseaux désormais bien séparés.

Utiliser avec une IA

Actions