Comprendre les composants CoS de Junos
Cette rubrique décrit les composants de classe de service (CoS) de Junos OS :
Alias de points de code
Un alias de point de code attribue un nom à un modèle de bits de point de code. Vous pouvez utiliser ce nom à la place du modèle de bits lorsque vous configurez d’autres composants CoS tels que des classificateurs et des règles de réécriture.
Policers
Les mécanismes de contrôle limitent le trafic d’une certaine classe à une bande passante et à une taille de rafale spécifiées. Les paquets dépassant les limites du mécanisme de contrôle peuvent être ignorés ou affectés à une autre classe de transfert, à une autre priorité de perte, ou aux deux. Vous définissez des mécanismes de contrôle avec des filtres que vous pouvez associer à des interfaces d’entrée.
Classificateurs
La classification des paquets associe les paquets entrants à un niveau de service CoS particulier. Dans Junos OS, les classificateurs associent les paquets à une classe de transfert et à une priorité de perte et affectent les paquets à des files d’attente de sortie en fonction de la classe de transfert associée. Junos OS prend en charge deux types généraux de classificateurs :
-
Classificateurs de trafic d’agrégation de comportement (BA) ou de valeur CoS : examinez la valeur CoS dans l’en-tête du paquet. La valeur de ce champ unique détermine les paramètres CoS appliqués au paquet. Les classificateurs BA vous permettent de définir la classe de transfert et la priorité de perte d’un paquet en fonction de la valeur DSCP (Differentiated Services Code Point), de la valeur IEEE 802.1p ou de la valeur MPLS EXP.
Classificateurs de trafic multichamps : examinez plusieurs champs du paquet, tels que les adresses source et de destination et les numéros de port source et de destination du paquet. Avec les classificateurs à champs multiples, vous définissez la classe de transfert et la priorité de perte d’un paquet en fonction des règles de filtre de pare-feu .
Sur les commutateurs qui nécessitent la séparation du trafic unicast et multidestination (échec de la recherche multicast, diffusion et de destination), vous créez des classificateurs unicast et des classificateurs multidestinations distincts. Vous ne pouvez pas affecter le trafic unicast et le trafic multidestination au même classificateur. Vous pouvez appliquer des classificateurs unicast à une ou plusieurs interfaces. Les classificateurs multidestinations s’appliquent à toutes les interfaces de commutation et ne peuvent pas être appliqués à des interfaces individuelles. Les commutateurs qui nécessitent la séparation du trafic unicast et multidestination disposent de 12 files d’attente de sortie pour fournir 4 files d’attente de sortie réservées au trafic multidestination.
Sur les commutateurs qui ne séparent pas le trafic unicast et multidestination, le trafic unicast et multidestination utilisent les mêmes classificateurs et vous ne créez pas de classificateur spécial distinct pour le trafic multidestination. Les commutateurs qui ne séparent pas le trafic unicast et multidestination ont huit files d’attente de sortie, car aucune file d’attente supplémentaire n’est nécessaire pour séparer le trafic.
Classes de transfert
Les classes de transfert regroupent les paquets pour la transmission et le CoS. Vous affectez chaque paquet à une file d’attente de sortie en fonction de la classe de transfert du paquet. Les classes de transfert affectent les politiques de transfert, de planification et de marquage de réécriture appliquées aux paquets lorsqu’ils transitent par le commutateur.
Les commutateurs offrent jusqu’à cinq classes de transfert par défaut :
-
best-effort : trafic best-effort
-
FCoE : trafic Fibre Channel over Ethernet
-
no-loss : trafic sans perte
-
network-control : trafic de contrôle du réseau
-
mcast : trafic multicast
La classe de transfert par défaut mcast s’applique uniquement aux commutateurs qui nécessitent la séparation du trafic unicast et multidestination (échec du trafic multicast, de la diffusion et de la recherche de destination). Sur ces commutateurs, vous créez des classes de transfert distinctes pour les deux types de trafic. La classe de transfert mcast par défaut transporte uniquement le trafic multidestination, et les classes de transfert par défaut best-effort, fcoeno-loss, et network-control ne transportent que le trafic unicast. Les classes de transfert unicast sont mappées aux files d’attente de sortie unicast, et les classes de transfert multidestination sont mappées aux files d’attente de sortie multidestinations. Vous ne pouvez pas affecter le trafic unicast et le trafic multidestination à la même classe de transfert ou à la même file d’attente de sortie. Les commutateurs qui nécessitent la séparation du trafic unicast et multidestination ont 12 files d’attente de sortie, 8 pour le trafic unicast et 4 pour le trafic multidestination.
Sur les commutateurs qui ne séparent pas le trafic unicast et multidestination, le trafic unicast et multidestination utilisent les mêmes classes de transfert et files d’attente de sortie, de sorte que la classe de transfert mcast n’est pas valide. Vous ne créez pas de classes de transfert distinctes pour le trafic multidestination. Les commutateurs qui ne séparent pas le trafic unicast et multidestination ont huit files d’attente de sortie, car aucune file d’attente supplémentaire n’est nécessaire pour séparer le trafic.
Les commutateurs prennent en charge un total de 12 classes de transfert (8 classes de transfert unicast et 4 classes de transfert multicast), ou 8 classes de transfert (le trafic unicast et multidestination utilisent les mêmes classes de transfert), ce qui offre une grande flexibilité dans la classification du trafic.
Ensembles de classes de transfert
Vous pouvez regrouper des classes de transfert (files d’attente de sortie) en ensembles de classes de transfert pour appliquer des CoS à des groupes de trafic qui nécessitent un traitement similaire. Les ensembles de classes de transfert mappent le trafic en groupes prioritaires pour prendre en charge la sélection améliorée de transmission (ETS), qui est décrite dans IEEE 802.1Qaz.
Vous pouvez configurer jusqu’à trois ensembles de classes de transfert unicast et un ensemble de classes de transfert multicast. Par exemple, vous pouvez configurer différents ensembles de classes de transfert pour appliquer des CoS à unicast groupes de trafic de réseau local (LAN), de trafic de réseau de stockage (SAN) et de trafic de calcul haute performance (HPC), et configurer un autre groupe pour le trafic multicast.
Dans chaque ensemble de classes de transfert, vous pouvez configurer un traitement CoS spécial pour le trafic mappé à chaque file d’attente individuelle. Il est ainsi possible de configurer les CoS selon une hiérarchie à deux niveaux. Au niveau de l’ensemble de classes de transfert, vous configurez CoS pour les groupes de trafic à l’aide d’un profil de contrôle du trafic. Au niveau des files d’attente, vous configurez CoS pour des files d’attente de sortie individuelles au sein d’un ensemble de classes de transfert à l’aide d’un planificateur que vous mappez à une file d’attente (classe de transfert) à l’aide d’un mappage de planificateur.
Contrôle de flux (Ethernet PAUSE, PFC et ECN)
Ethernet PAUSE (décrit dans IEEE 802.3X) est un mécanisme de contrôle de flux au niveau de la liaison. Pendant les périodes de congestion du réseau, Ethernet PAUSE arrête tout le trafic sur une liaison Ethernet full-duplex pendant une période spécifiée dans le message PAUSE.
Les commutateurs QFX10000 ne prennent pas en charge la pause Ethernet.
Le contrôle de flux basé sur les priorités (PFC) est décrit dans la norme IEEE 802.1Qbb dans le cadre des spécifications DCB (Data Center Bridging) de l’IEEE pour la création d’un environnement Ethernet sans perte afin de transporter des flux sensibles aux pertes tels que le trafic Fibre Channel over Ethernet (FCoE).
Le PFC est un mécanisme de contrôle de flux au niveau de la liaison similaire à Ethernet PAUSE. Toutefois, Ethernet PAUSE arrête tout le trafic sur une liaison pendant un certain temps. Le PFC dissocie la fonction pause de la liaison physique et divise le trafic sur la liaison en huit priorités (points de code IEEE 802.1p 3 bits). Vous pouvez considérer les huit priorités comme huit « voies » de circulation. Vous pouvez appliquer une pause sélective au trafic sur n’importe quelle priorité sans mettre en pause le trafic sur d’autres priorités sur la même liaison.
La granularité fournie par PFC vous permet de configurer différents niveaux de CoS pour différents types de trafic sur la liaison. Vous pouvez créer des voies sans perte pour le trafic, telles que le trafic FCoE, la sauvegarde ou la gestion du réseau LAN, tout en utilisant les méthodes standard de gestion de la congestion avec dépôt de trame pour le trafic IP sur la même liaison.
Si vous transportez du trafic FCoE, vous devez activer PFC sur la priorité affectée au trafic FCoE (généralement un point 011 de code IEEE 802.1p sur les interfaces qui transportent du trafic FCoE).
La notification explicite de congestion (ECN) permet une notification de congestion de bout en bout entre deux points de terminaison sur des réseaux TCP/IP. Pour que l’ECN fonctionne correctement, l’ECN doit être activé sur les deux terminaux et sur tous les appareils intermédiaires entre les terminaux. Tout équipement sur le chemin de transmission qui ne prend pas en charge l’ECN interrompt la fonctionnalité ECN de bout en bout. L’ECN avertit les réseaux de la congestion dans le but de réduire la perte de paquets et le retard en faisant en sorte que l’appareil émetteur diminue le taux de transmission jusqu’à ce que la congestion se résorbe, sans perdre de paquets. La RFC 3168, Ajout d’ECN (Explicit Congestion Notification) à l’IP, définit l’ECN.
Profils WRED et tail drop
Un profil de détection précoce aléatoire pondérée (profil de perte) (profil de perte) définit les paramètres qui permettent au réseau de perdre des paquets pendant les périodes de congestion. Un profil de perte définit les conditions dans lesquelles des paquets de différentes priorités de perte sont abandonnés, en déterminant la probabilité de perte d’un paquet pour chaque priorité de perte lorsque les files d’attente de sortie sont encombrées. Les profils de dépôt définissent essentiellement une valeur pour un niveau de remplissage de la file d’attente : lorsque la file d’attente se remplit au niveau de la valeur de remplissage de la file d’attente, les paquets sont perdus. La combinaison du niveau de remplissage de la file d’attente, de la probabilité de perte d’un paquet à ce niveau de remplissage et de la priorité de perte du paquet détermine si un paquet est abandonné ou transféré. Chaque association d’un niveau de remplissage avec une probabilité de chute crée un point sur une courbe de profil de chute.
Vous pouvez associer différents profils de perte à différentes priorités de perte pour définir la probabilité de perte de paquets. Vous pouvez appliquer un profil de dépôt pour chaque priorité de perte à une classe de transfert (file d’attente de sortie) en appliquant un profil de dépôt à un planificateur, puis en mappant le planificateur à une classe de transfert à l’aide d’un mappage de planificateur. Lorsque la file d’attente mappée à la classe de transfert subit une congestion, le profil d’abandon détermine le niveau d’abandon de paquets pour le trafic de chaque priorité de perte dans cette file d’attente.
La priorité des pertes affecte la planification d’un paquet sans affecter l’ordre relatif du paquet. En général, vous marquez les paquets dépassant un niveau de service donné avec une priorité de perte élevée.
Le tail drop est un mécanisme simple qui abandonne tous les paquets sans discrimination pendant les périodes de congestion, sans différencier les priorités de perte de paquets des flux de trafic. La chute de queue ne nécessite qu’un seul point de courbe correspondant à la profondeur maximale de la file d’attente de sortie, et la probabilité d’abandon lorsque le trafic dépasse la profondeur de mémoire tampon est de 100 % (tous les paquets qui ne peuvent pas être stockés dans la file d’attente sont abandonnés). WRED est supérieur au tail-drop car il vous permet de traiter le trafic de différentes priorités de manière différenciée, de sorte que le trafic de priorité supérieure reçoit la préférence, et en raison de la possibilité de définir plusieurs points sur la courbe de chute.
Planificateurs
Chaque interface de commutation comporte plusieurs files d’attente attribuées aux paquets de stockage. Le commutateur détermine la file d’attente à traiter en fonction d’une méthode de planification particulière. Ce processus implique souvent de déterminer l’ordre dans lequel les différents types de paquets doivent être transmis.
Vous pouvez définir la priorité de planification (priority), la bande passante minimale garantie (transmit-rate), la bande passante maximale (shaping-rate) et les profils WRED à appliquer à une file d’attente particulière (classe de transfert) pour la transmission de paquets. Par défaut, la bande passante supplémentaire est partagée entre les files d’attente proportionnellement à la bande passante minimale garantie de chaque file d’attente. Sur les commutateurs qui prennent en charge l’instruction excess-rate , vous pouvez configurer le pourcentage de bande passante supplémentaire partagée qu’une file d’attente de sortie reçoit indépendamment du débit de transmission de bande passante minimum garanti, ou vous pouvez utiliser le partage de bande passante par défaut en fonction du débit de transmission.
Un mappage de planificateur associe une classe de transfert spécifiée à une configuration de planificateur. Vous pouvez associer jusqu’à quatre cartes de planificateur définies par l’utilisateur aux interfaces.
Règles de réécriture
A rewrite rule définit les bits CoS appropriés dans le paquet sortant. Cela permet à l’équipement en aval suivant de classer le paquet dans le groupe de services approprié. La réécriture (marquage) des paquets sortants est utile lorsque le commutateur se trouve à la frontière d’un réseau et doit modifier les valeurs CoS pour répondre aux politiques de l’homologue ciblé.
Les filtres de pare-feu entrants peuvent également réécrire la classe de transfert et perdre les valeurs de priorité.