Comprendre le DCBX
Le protocole DCBX (Data Center Bridging Capability Exchange protocol) est une extension du protocole LLDP (Link Layer Data Protocol). Si vous désactivez LLDP sur une interface, celle-ci ne peut pas exécuter DCBX. Si vous tentez d’activer DCBX sur une interface sur laquelle LLDP est désactivé, l’opération de validation de la configuration échoue. Les appareils DCB (Data Center Bridging) utilisent DCBX pour échanger des informations de configuration avec des homologues directement connectés.
Principes de base du DCBX
DCBX peut :
-
Découvrez les capacités DCB de vos pairs.
-
Détectez les erreurs de configuration des fonctionnalités DCB ou les incompatibilités entre pairs.
-
Configurez les fonctionnalités DCB sur les homologues.
Vous pouvez configurer le fonctionnement DCBX pour le contrôle de flux basé sur la priorité (PFC), les applications de couche 2 et 4 telles que FCoE, iSCSI et ETS. DCBX est activé ou désactivé pour chaque interface.
Par défaut, pour PFC et ETS, DCBX négocie automatiquement l’état et la configuration administratifs avec l’homologue connecté de chaque interface. Pour activer la négociation DCBX pour les applications, vous devez configurer les applications, les mapper aux points de code IEEE 802.1p dans un mappage d’application et appliquer le mappage d’application aux interfaces.
Junos DCBX ne prend pas en charge la configuration PFC basée sur DSCP. Junos DCBX prend uniquement en charge le PFC basé sur l’IEEE.
L’application FCoE ne doit être incluse dans un mappage d’application que lorsque vous souhaitez qu’une interface échange de type, de longueur et de valeurs (TLV) pour d’autres applications en plus de FCoE. Si vous souhaitez qu’une interface publie FCoE est la seule application, vous n’avez pas besoin d’utiliser un mappage d’application. Pour ETS, DCBX envoie la configuration du commutateur aux homologues s’ils sont configurés pour apprendre la configuration à partir du commutateur (sauf si vous désactivez l’envoi du TLV de recommandation ETS sur les interfaces en mode DCBX IEEE).
Vous pouvez remplacer le comportement par défaut pour PFC, pour ETS ou pour toutes les applications mappées à une interface en désactivant la négociation automatique pour forcer une interface à activer ou à désactiver cette fonctionnalité. Vous pouvez également désactiver la négociation automatique DCBX pour les applications sur une interface en excluant ces applications du mappage d’application que vous appliquez à cette interface ou en supprimant le mappage d’application de l’interface.
Le comportement de négociation automatique par défaut pour les applications mappées à une interface est le suivant :
-
DCBX est activé sur l’interface si l’appareil homologue connecté prend également en charge DCBX.
-
DCBX est désactivé sur l’interface si le périphérique homologue connecté ne prend pas en charge DCBX.
Lors de la négociation des fonctionnalités, le commutateur peut envoyer la configuration PFC à un homologue attaché si celui-ci est configuré comme « disposé » à apprendre la configuration PFC d’autres pairs. Le commutateur Juniper Networks ne prend pas en charge le provisionnement automatique et ne modifie pas sa configuration pendant la négociation automatique pour correspondre à la configuration des pairs. (Le commutateur Juniper n’est pas « disposé » à apprendre la configuration PFC de ses pairs.)
Lorsqu’un port sur lequel DCBX est activé commence à échanger des entrées de type, de longueur et de valeur (TLV), les TLV LLDP facultatifs sur ce port ne sont pas annoncés aux voisins, de sorte que le commutateur peut interagir avec une plus grande variété de cartes réseau convergentes (CNA) et de commutateurs de couche 2 prenant en charge DCBX.
Modes DCBX et prise en charge
Cette section décrit la prise en charge DCBX :
- Modes DCBX (versions)
- Négociation automatique
- Prise en charge des modes DCBX par CNA
- Prise en charge des interfaces pour DCBX
Modes DCBX (versions)
Les deux modes DCBX les plus courants sont pris en charge :
-
IEEE DCBX : les différents TLV ont des sous-types différents (par exemple, le sous-type du TLV de configuration ETS est 9) ; l’identifiant unique de l’organisation (OUI) du DCBX IEEE est 0x0080c2.
-
DCBX version 1.01 : version CEEB (Converged Enhanced Ethernet) de DCBX. Il a un sous-type de 2 et un OUI de 0x001b21.
IEEE DCBX et DCBX version 1.01 diffèrent principalement par leur format d’image. DCBX version 1.01 utilise un TLV qui inclut toutes les informations d’attribut DCBX, qui sont envoyées sous forme de sous-TLV. Le DCBX IEEE utilise un TLV unique pour chaque attribut DCB.
Junos ne prend pas en charge les versions DCBX antérieures à CEE (pré-DCB). Les anciennes versions de DCBX non prises en charge ont un sous-type de 1 et un OUI de 0x001b21. Le commutateur abandonne les trames LLDP qui contiennent des TLV DCBX antérieurs à CEE.
Le Tableau 1 résume les différences entre IEEE DCBX et DCBX version 1.01, y compris la sortie de commande show :
|
Caractéristique |
IEEE DCBX |
DCBX version 1.01 |
|---|---|---|
|
OUI |
0x0080c2 |
0x001b21 |
|
Format de trame |
Envoie un TLV distinct et unique pour chaque attribut DCBX. Par exemple, l’IEEE DCBX utilise des TLV distincts pour ETS, PFC et chaque application. Les informations de configuration et de recommandation sont envoyées dans différents TLV |
Envoie un TLV qui inclut toutes les informations d’attribut DCBX organisées en sous-TLV. Le bit « volontaire » détermine si une interface peut ou non modifier sa configuration pour correspondre à l’homologue connecté. |
|
Configuration symétrique/asymétrique avec pair |
Asymétrique ou symétrique |
Symétrique uniquement |
|
Différences dans le |
|
|
Vous pouvez configurer les interfaces pour utiliser les modes DCBX suivants :
-
IEEE DCBX : l’interface utilise IEEE DCBX, quelle que soit la configuration de l’homologue connecté.
-
DCBX version 1.01 : l’interface utilise DCBX version 1.01, quelle que soit la configuration de l’homologue connecté.
-
Autonégociation : l’interface négocie automatiquement avec l’homologue connecté pour déterminer la version DCBX qu’il utilise. La négociation automatique est le mode DCBX par défaut.
Si vous configurez un mode DCBX sur une interface, celle-ci ignore les unités de données de protocole (PDU) DCBX qu’elle reçoit de l’homologue connecté si les PDU ne correspondent pas à la version DCBX configurée sur l’interface. Par exemple, si vous configurez une interface pour utiliser des PDU LLDP IEEE et que l’homologue connecté envoie des PDU LLDP DCBX version 1.01, l’interface ignore les PDU de version 1.01. Si vous configurez une interface pour utiliser DCBX version 1.01 et que l’homologue envoie IEEE PDU DLDP DCBX DCBX, l’interface ignore les PDU DCBX IEEE.
Sur les interfaces qui utilisent le mode DCBX IEEE, la commande opérationnelle n’inclut pas l’état show dcbx neighbors interface interface-name opérationnel de l’application, du PFC ou de l’ETS dans la sortie.
Négociation automatique
La négociation automatique est le mode DCBX par défaut. Chaque interface négocie automatiquement avec son homologue connecté pour déterminer la version DCBX que les deux interfaces utilisent pour échanger des informations DCBX.
Lorsqu’une interface se connecte à son homologue, l’interface annonce les TLV IEEE DCBX à l’homologue. Si l’interface reçoit une PDU IEEE DCBX de l’homologue, l’interface définit le mode DCBX comme IEEE DCBX. Si l’interface reçoit trois TLV DCBX version 1.01 de l’homologue, l’interface définit DCBX version 1.01 comme mode DCBX.
Si la liaison vacille ou si le processus LLDP redémarre, l’interface redémarre le processus d’autonégociation. L’interface n’utilise pas le dernier mode de communication DCBX reçu.
Prise en charge des modes DCBX par CNA
Différents fournisseurs de CNA prennent en charge différentes versions et capacités de DCBX. La configuration DCBX que vous utilisez sur les interfaces de commutation dépend des fonctionnalités DCBX prises en charge par les CNA de votre réseau.
Prise en charge des interfaces pour DCBX
Vous pouvez configurer DCBX sur les interfaces xe-/ae-/et- avec des vitesses de 10G/40G/100G et sur les interfaces LAG (Link Aggregation Group) dont les interfaces membres sont toutes des interfaces Ethernet 10G/40G/100G.
Types d’attributs DCBX
Le DCBX possède trois types d’attributs :
-
Information : ces attributs sont échangés à l’aide de LLDP, mais n’affectent pas l’état ou le fonctionnement DCBX ; ils ne communiquent des informations qu’au pair. Par exemple, les TLV de priorité des applications sont des TLV informatifs.
-
Asymétrique : les valeurs de ces types d’attributs ne doivent pas nécessairement être les mêmes sur les interfaces homologues connectées. Les pairs échangent des attributs asymétriques lorsque les valeurs d’attribut peuvent différer sur chaque interface homologue. Les configurations de l’interface homologue peuvent correspondre ou différer. Par exemple, les TLV de configuration et de recommandation ETS sont des TLV asymétriques.
-
Symétrique : l’intention est que les valeurs de ces types d’attributs soient les mêmes sur les deux interfaces homologues connectées. Les interfaces homologues échangent des attributs symétriques pour garantir une configuration DCBX symétrique pour ces attributs. Par exemple, les TLV de configuration PFC sont des TLV symétriques.
Les sections suivantes décrivent les attributs DCBX asymétriques et symétriques :
Attributs asymétriques
DCBX transmet des attributs asymétriques entre des interfaces homologues connectées pour communiquer des informations sur les paramètres de ces attributs (fonctionnalités). La configuration résultante d’un attribut peut être différente sur chaque pair, de sorte que les paramètres configurés sur une interface peuvent ne pas correspondre aux paramètres de l’interface homologue connectée.
Il existe deux types de TLV d’attributs asymétriques :
-
TLV de configuration : les TLV de configuration communiquent l’état opérationnel actuel et l’état du bit « volontaire ». Le bit « willing » indique si l’interface accepte et utilise ou non la configuration de l’interface homologue. Si une interface est « volontaire », elle utilise la configuration qu’elle reçoit de l’interface homologue. (La configuration de l’interface homologue peut remplacer la configuration de l’interface « volontaire ».) Si une interface n’est « pas disposée », la configuration de l’interface ne peut pas être remplacée par la configuration de l’interface homologue.
-
Recommandation TLV : les TLV de recommandation communiquent les paramètres que l’interface recommande à l’interface homologue connectée d’utiliser. Lorsqu’une interface envoie un TLV de recommandation, si l’homologue connecté est « d’accord », il modifie sa configuration pour qu’elle corresponde aux paramètres du TLV de recommandation.
Attributs symétriques
DCBX transmet des attributs symétriques entre des interfaces homologues connectées pour communiquer des informations de paramètre sur ces attributs (fonctionnalités), dans le but que les deux interfaces utilisent la même configuration. L’objectif est que les paramètres configurés sur une interface correspondent aux paramètres de l’interface homologue connectée.
Il existe un type d’attribut symétrique TLV, le TLV de configuration. Comme pour les attributs asymétriques, les TLV de configuration d’attribut symétriques communiquent l’état opérationnel actuel et l’état du bit « volontaire ». Les interfaces « volontaires » utilisent les valeurs du paramètre d’interface homologue pour l’attribut. (La configuration d’attribut de l’homologue remplace la configuration de l’interface « volontaire ».)
DCBX Application Protocol TLV Exchange
DCBX annonce les capacités du commutateur pour les applications de couche 2 telles que FCoE et les applications de couche 4 telles que iSCSI :
- Protocole d’application : échange de TLV
- Protocole d’application FCoE échange de TLV
- Désactivation du protocole d’application TLV Exchange
Protocole d’application : échange de TLV
Pour toutes les applications, DCBX annonce l’état de l’application et les points de code IEEE 802.1p sur les interfaces auxquelles l’application est mappée. Si une application n’est pas mappée à une interface, celle-ci n’annonce pas les TLV de l’application. Il existe une exception pour l’échange TLV du protocole d’application FCoE lorsque FCoE est la seule application que vous souhaitez que DCBX annonce sur une interface.
Protocole d’application FCoE échange de TLV
L’échange de TLV de protocole pour l’application FCoE dépend du fait que FCoE est la seule application que vous souhaitez que l’interface annonce ou que vous souhaitez que l’interface échange d’autres TLV d’application en plus des TLV FCoE.
Si vous souhaitez que DCBX annonce la seule application FCoE sur une interface, DCBX échange par défaut les TLV du protocole d’application FCoE si l’interface :
-
Transporte le trafic FCoE (trafic mappé par la configuration CoS à la classe de transfert FCoE)
-
Dispose d’un profil de notification de congestion avec PFC activé sur la priorité FCoE (point de code IEEE 802.1p)
-
N’a pas de carte d’application
Si aucune configuration CoS pour FCoE n’est mappée à une interface, celle-ci n’échange pas de TLV de protocole d’application FCoE.
Si vous souhaitez que DCBX annonce FCoE et d’autres applications sur une interface, vous devez spécifier toutes les applications, y compris FCoE, dans un mappage d’application et appliquer le mappage d’application aux interfaces souhaitées.
Si un mappage d’application est appliqué à une interface, l’application FCoE doit être explicitement configurée dans le mappage d’application, sinon l’interface n’échange pas de TLV FCoE.
Lorsque DCBX annonce l’application FCoE, il annonce l’état FCoE et les points de code IEEE 802.1p. Si un équipement homologue connecté à une interface de commutation ne prend pas en charge le protocole FCoE, le DCBX utilise la négociation automatique pour marquer l’interface comme « FCoE down », et le protocole FCoE est désactivé sur cette interface.
Désactivation du protocole d’application TLV Exchange
Pour désactiver l’échange de protocoles d’application DCBX pour toutes les applications d’une interface, exécutez la set protocols dcbx interface interface-name applications no-auto-negotiation commande.
Vous pouvez également désactiver l’échange de protocoles d’application DCBX pour les applications sur une interface en supprimant le mappage d’application de l’interface ou en supprimant une application particulière du mappage d’application. Toutefois, lorsque vous supprimez une application d’un mappage d’application, le protocole d’application n’est plus échangé sur aucune interface qui utilise ce mappage d’application.
DCBX et PFC
Une fois que vous avez activé PFC sur une interface de commutateur, DCBX utilise la négociation automatique pour contrôler l’état opérationnel de la fonctionnalité PFC.
Si l’équipement homologue connecté à l’interface prend en charge PFC et est provisionné de manière compatible avec le commutateur, DCBX définit l’état opérationnel PFC sur activé. Si l’équipement homologue connecté à l’interface ne prend pas en charge PFC ou n’est pas provisionné de manière compatible avec le commutateur, DCBX définit l’état opérationnel sur désactivé. (PFC doit être symétrique.)
Si l’homologue annonce qu’il est « prêt » à apprendre sa configuration PFC à partir du commutateur, DCBX envoie la configuration PFC du commutateur à l’homologue et ne vérifie pas l’état administratif de l’homologue.
Vous pouvez remplacer manuellement le contrôle DCBX de l’état opérationnel PFC par interface en désactivant la négociation automatique. Si vous désactivez la négociation automatique sur une interface sur laquelle vous avez configuré PFC, PFC est activé sur cette interface, quelle que soit la configuration homologue. Pour désactiver PFC sur une interface, ne configurez pas PFC sur cette interface. Pour désactiver la négociation automatique sur une interface, définissez priority-flow-controlpriority-flow-control no-auto-negotiation au niveau de la [protocols dcbx interface interface-name] hiérarchie. Par exemple :
protocols {
dcbx {
interface {
xe-0/0/1 {
priority-flow-control no-auto-negotiation;
}
}
}
}
DCBX et ETS
Cette section décrit :
Publication DCBX ETS par défaut
Si vous ne configurez pas ETS sur une interface, le commutateur crée automatiquement un groupe de priorités par défaut qui contient toutes les priorités (classes de transfert, qui représentent les files d’attente de sortie) et attribue 100 % de la bande passante de sortie des ports à ce groupe de priorité. Le groupe de priorité par défaut est transparent. Il n’apparaît pas dans la configuration et est utilisé pour la publication DCBX. DCBX annonce le groupe de priorité par défaut, ses priorités et la bande passante attribuée.
Si vous configurez ETS sur une interface, DCBX annonce :
-
Chaque groupe de priorité de l’interface
-
Les priorités de chaque groupe prioritaire
-
Les propriétés de bande passante de chaque groupe de priorité et priorité
Toute priorité sur cette interface qui ne fait pas partie d’un groupe de priorité explicitement configuré (ensemble de classes de transfert) est affectée au groupe de priorité par défaut généré automatiquement et ne reçoit pas de bande passante. Si vous configurez ETS sur une interface, chaque classe de transfert (priorité) de cette interface pour laquelle vous souhaitez transférer le trafic doit appartenir à un ensemble de classes de transfert (groupe de priorité).
Publication ETS et configuration des pairs
DCBX ne contrôle pas l’état opérationnel ETS (planification hiérarchique) du commutateur. Si l’homologue connecté est configuré comme « volontaire », DCBX envoie la configuration ETS du commutateur aux homologues du commutateur si le TLV de recommandation ETS est activé (il est activé par défaut). Si l’homologue ne prend pas en charge ETS ou n’est pas provisionné de manière cohérente avec le commutateur, DCBX ne modifie pas l’état opérationnel ETS du commutateur. L’état opérationnel ETS reste activé ou désactivé en fonction de la configuration de planification hiérarchique du commutateur uniquement et est activé par défaut.
Lorsque ETS est configuré, DCBX annonce les groupes prioritaires, les priorités des groupes prioritaires et la configuration de la bande passante pour les groupes prioritaires et les priorités. Toute priorité (essentiellement une classe de transfert ou une file d’attente) qui ne fait pas partie d’un groupe prioritaire n’a pas de propriétés de planification et ne reçoit pas de bande passante.
Vous pouvez remplacer manuellement si DCBX annonce l’état ETS à l’homologue par interface en désactivant l’autonégociation. Cela n’affecte pas l’état ETS sur le commutateur ou sur l’homologue, mais cela empêche le commutateur d’envoyer le TLV de recommandation ou le TLV de configuration à l’homologue connecté. Pour désactiver ETS sur une interface, ne configurez pas de groupes de priorité (ensembles de classes de transfert) sur l’interface.
Recommandation ETS TLV
Le TLV de recommandation ETS communique les paramètres ETS que le commutateur souhaite que l’interface homologue connectée utilise. Si l’interface homologue est « disposée », sa configuration est modifiée pour correspondre à celle de la recommandation TLV ETS. Par défaut, les interfaces de commutation envoient le TLV de recommandation ETS à l’homologue. Les paramètres communiqués sont les paramètres ETS de sortie définis en configurant la planification hiérarchique sur l’interface.
Nous vous recommandons d’utiliser les mêmes paramètres ETS sur l’homologue connecté que ceux que vous utilisez sur l’interface du commutateur et de laisser le TLV de recommandation ETS activé. Toutefois, sur les interfaces qui utilisent IEEE DCBX comme mode DCBX, si vous souhaitez une configuration asymétrique entre l’interface du commutateur et l’homologue connecté, vous pouvez désactiver le TLV de recommandation ETS en incluant l’instruction no-recommendation-tlv au niveau de la [edit protocols dcbx interface interface-name enhanced-transmission-selection] hiérarchie.
Vous pouvez désactiver le TLV de recommandation ETS uniquement lorsque le mode DCBX de l’interface est IEEE DCBX. La désactivation du TLV de recommandation ETS n’a aucun effet si le mode DCBX de l’interface est DCBX version 1.01. (IEEE DCBX utilise des TLV d’attribut d’application distincts, mais DCBX version 1.01 envoie tous les attributs d’application dans le même TLV et utilise des sous-TLV pour séparer les informations.)
Si vous désactivez le TLV de recommandation ETS, le commutateur envoie toujours le TLV de configuration ETS à l’homologue connecté. Ainsi, l’homologue connecté est informé de la configuration de l’ETS DCBX du commutateur. Mais même s’il le « veut », il ne modifie pas sa configuration pour qu’elle corresponde à celle du commutateur. Il s’agit d’une configuration asymétrique : les deux interfaces peuvent avoir des valeurs de paramètre différentes pour l’attribut ETS.
Par exemple, si vous souhaitez qu’un CNA connecté à une interface de commutateur ait des allocations de bande passante différentes de celles de la configuration ETS du commutateur, vous pouvez désactiver le TLV de recommandation ETS et configurer le CNA pour la bande passante souhaitée. L’interface de commutation et le CNA échangent les paramètres de configuration, mais le CNA ne modifie pas sa configuration pour correspondre à la configuration de l’interface du commutateur.