Apple

Comment choisir le meilleur chemin de commutation de routeur pour votre réseau

Par Maximus , le 3 juin 2019 - 2 minutes de lecture

Une multitude de chemins de commutation sont disponibles pour divers routeurs et versions de Cisco IOS®. Quel est le meilleur pour votre réseau et comment fonctionnent-ils tous? Ce livre blanc tente d'expliquer chacun des chemins de commutation suivants afin que vous puissiez prendre la meilleure décision concernant le chemin de commutation adapté à votre réseau.

Tout d'abord, examinez le processus de transfert lui-même. Il y a trois étapes pour transférer un paquet via un routeur:

  1. Déterminez si la destination du paquet est accessible.

  2. Déterminez le prochain saut vers la destination et l'interface via laquelle ce prochain saut est accessible.

  3. Réécrivez l'en-tête de contrôle d'accès au support (MAC) sur le paquet afin qu'il atteigne son saut suivant.

Chacune de ces étapes est essentielle pour que le paquet atteigne sa destination.

Remarque: Tout au long de ce document, le chemin de commutation IP est utilisé à titre d'exemple. pratiquement toutes les informations fournies ici sont applicables à des chemins de commutation équivalents pour d'autres protocoles, s'ils existent.

La commutation de processus est le plus petit dénominateur commun dans les chemins de commutation; il est disponible sur chaque version d'IOS, sur chaque plate-forme et pour chaque type de trafic faisant l'objet d'une commutation. La commutation de processus est définie par deux concepts essentiels:

  • La décision de transfert et les informations utilisées pour réécrire l'en-tête MAC sur le paquet sont extraites de la table de routage (de la base d'informations de routage ou RIB) et du cache ARP (Address Resolution Protocol), ou d'une autre table contenant l'en-tête MAC. informations mappées sur l'adresse IP de chaque hôte directement connecté au routeur.

  • Le paquet est commuté par un processus normal exécuté dans IOS. En d'autres termes, la décision de transfert est prise par un processus planifié par le planificateur IOS et exécuté en tant qu'homologue des autres processus du routeur, tels que les protocoles de routage. Les processus qui s'exécutent normalement sur le routeur ne sont pas interrompus pour traiter un paquet par commutation.

La figure ci-dessous illustre le chemin de commutation de processus.

20a.gif "border =" 0 "src =" http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20a.gif "usemap = "" /></p>
<p>Examinez ce diagramme plus en détail: </p>
<ol type=

  • Le processeur d’interface détecte d’abord la présence d’un paquet sur le support réseau et le transfère à la mémoire d’entrée / sortie du routeur.

  • Le processeur d'interface génère une interruption de réception. Au cours de cette interruption, le processeur central détermine le type de paquet (il s’agit d’un paquet IP) et le copie si nécessaire dans la mémoire du processeur (cette décision dépend de la plate-forme). Enfin, le processeur place le paquet dans la file d'attente d'entrée du processus approprié et l'interruption est libérée.

  • La prochaine fois que le planificateur s'exécutera, il notera le paquet dans la file d'attente d'entrée de ip_inputet planifie l'exécution de ce processus.

  • Quand ip_input exécute, il consulte le RIB pour déterminer le saut suivant et l’interface de sortie, puis consulte le cache ARP pour déterminer l’adresse de couche physique correcte pour ce saut suivant.

  • ip_input puis réécrit l'en-tête MAC du paquet et place le paquet dans la file d'attente de sortie de l'interface sortante correcte.

  • Le paquet est copié de la file d'attente de sortie de l'interface sortante vers la file d'attente de transmission de l'interface sortante; toute qualité de service sortante a lieu entre ces deux files d'attente.

  • Le processeur d'interface de sortie détecte le paquet dans sa file d'attente de transmission et le transfère sur le support réseau.

  • Presque toutes les fonctionnalités ayant une incidence sur la commutation de paquets, telles que la traduction d'adresses réseau (NAT) et le routage de règles, font leur entrée dans le chemin de commutation de processus. Une fois qu'elles ont été testées et optimisées, ces fonctionnalités peuvent ou non apparaître lors du changement de contexte d'interruption.

    La commutation de contexte d'interruption est la deuxième des méthodes de commutation principales utilisées par les routeurs Cisco. Les principales différences entre la commutation de contexte d'interruption et la commutation de processus sont les suivantes:

    • Le processus en cours d'exécution sur le processeur est interrompu pour permuter le paquet. Les paquets sont activés à la demande et non commutés uniquement lorsque le ip_input processus peut être programmé.

    • Le processeur utilise une forme de cache de routage pour rechercher toutes les informations nécessaires au basculement du paquet.

    Cette figure illustre la commutation de contexte d'interruption:

    20b.gif "border =" 0 "src =" http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20b.gif "usemap = "" /></p>
<p>Examinez ce diagramme plus en détail: </p>
<ol type=

  • Le processeur d’interface détecte d’abord la présence d’un paquet sur le support réseau et le transfère à la mémoire d’entrée / sortie du routeur.

  • Le processeur d'interface génère une interruption de réception. Au cours de cette interruption, le processeur central détermine le type de paquet (il s’agit d’un paquet IP), puis commence à commuter le paquet.

  • Le processeur recherche dans le cache de route pour déterminer si la destination du paquet est accessible, quelle doit être l'interface de sortie, quel est le prochain bond en direction de cette destination et, enfin, quel en-tête MAC le paquet devrait avoir pour atteindre correctement le prochain bond. Le processeur utilise ces informations pour réécrire l'en-tête MAC du paquet.

  • Le paquet est maintenant copié dans la file d'attente de transmission ou de sortie de l'interface sortante (en fonction de divers facteurs). L'interruption de réception est maintenant renvoyée et le processus en cours d'exécution sur le processeur avant l'interruption continue de s'exécuter.

  • Le processeur d'interface de sortie détecte le paquet dans sa file d'attente de transmission et le transfère sur le support réseau.

  • La première question qui me vient à l’esprit après avoir lu cette description est "Que contient la mémoire cache?" Il existe trois réponses possibles, selon le type de changement de contexte d'interruption:

    Commutation rapide

    La commutation rapide stocke les informations de transfert et la chaîne de réécriture d'en-tête MAC à l'aide d'un arbre binaire pour une recherche et une référence rapides. Cette figure illustre un arbre binaire:

    20c.gif "border =" 0 "src =" http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20c.gif "usemap = "" /></p>
<p>Dans Fast Switching, les informations sur l'accessibilité sont indiquées par l'existence d'un nœud sur l'arborescence binaire pour la destination du paquet. L'en-tête MAC et l'interface sortante pour chaque destination sont stockés en tant que partie des informations du nœud dans l'arborescence. En réalité, l’arbre binaire peut avoir 32 niveaux (l’arbre ci-dessus est extrêmement abrégé à des fins d’illustration). </p>
<p>Afin de rechercher un arbre binaire, vous commencez simplement par la gauche (avec le chiffre le plus significatif) dans le numéro (binaire) que vous recherchez et branchez à droite ou à gauche dans l'arbre en fonction de ce nombre. Par exemple, si vous recherchez les informations relatives au chiffre 4 dans cette arborescence, commencez par créer une branche droite, car le premier chiffre binaire est 1. Vous suivriez l’arbre, comparant le chiffre suivant dans la liste (binaire). nombre, jusqu’à la fin. </p>
<h4><span class= Caractéristiques de la commutation rapide

    La commutation rapide présente plusieurs caractéristiques qui résultent de la structure d'arborescence binaire et du stockage des informations de réécriture d'en-tête MAC dans les nœuds d'arborescence.

    • Comme il n'y a pas de corrélation entre la table de routage et le contenu du cache rapide (réécriture d'en-tête MAC, par exemple), la construction des entrées de cache implique tous les traitements à effectuer dans le chemin de commutation de processus. Par conséquent, les entrées de cache rapides sont générées au fur et à mesure que les paquets sont commutés.

    • Comme il n’existe aucune corrélation entre les en-têtes MAC (utilisés pour les réécritures) dans le cache ARP et la structure du cache rapide, lorsque la table ARP change, une partie du cache rapide doit être invalidée (et recréée par le processus de commutation de processus). ).

    • Le cache rapide peut uniquement créer des entrées à une profondeur (une longueur de préfixe) pour une destination particulière dans la table de routage.

    • Il n'y a aucun moyen de pointer d'une entrée à une autre dans le cache rapide (les informations d'en-tête MAC et d'interface sortante sont censées se trouver dans le nœud), de sorte que toutes les récursions de routage doivent être résolues pendant la création d'une entrée de cache rapide. En d'autres termes, les itinéraires récursifs ne peuvent pas être résolus dans le cache rapide lui-même.

    Entrées de changement rapide de vieillissement

    Afin d'éviter que les entrées à commutation rapide ne perdent leur synchronisation avec la table de routage et le cache ARP, et d'empêcher que les entrées inutilisées dans le cache rapide ne consomment indûment de la mémoire sur le routeur, 1 / 20e du cache rapide est invalidé, de manière aléatoire, chaque minute. Si la mémoire du routeur passe sous un filigrane très bas, 1 / 5ème des entrées de cache rapides sont invalidées toutes les minutes.

    Longueur de préfixe de commutation rapide

    Quelle est la longueur de préfixe pour les entrées à commutation rapide si elle ne peut générer qu'une longueur de préfixe pour chaque destination? Dans les termes de la commutation rapide, une destination est une destination accessible dans la table de routage ou un réseau majeur. Les règles permettant de décider de la longueur du préfixe pour créer une entrée de cache donnée sont les suivantes:

    • Si vous créez une entrée de stratégie rapide, mettez toujours en cache dans / 32.

    • Si vous créez une entrée sur un circuit virtuel multiprotocole sur ATM (MPOA VC), mettez-vous toujours en cache dans / 32.

    • Si le réseau n'est pas sous-réseau (il s'agit d'une entrée réseau majeure):

      • S'il est directement connecté, utilisez / 32;

      • Sinon, utilisez le masque de réseau principal.

    • S'il s'agit d'un supernet, utilisez le masque du supernet.

    • Si le réseau est sous-réseau:

      • Si vous êtes directement connecté, utilisez / 32;

      • S'il existe plusieurs chemins d'accès à ce sous-réseau, utilisez / 32;

      • Dans tous les autres cas, utilisez le préfixe le plus long dans ce réseau principal.

    Partage de charge

    La commutation rapide est entièrement basée sur la destination; le partage de charge se produit par destination. S'il existe plusieurs chemins de coûts égaux pour un réseau de destination particulier, le cache rapide comporte une entrée pour chaque hôte accessible au sein de ce réseau, mais tout le trafic destiné à un hôte particulier suit un lien.

    Commutation optimale

    La commutation optimale stocke les informations de transfert et les informations de réécriture d'en-tête MAC dans un arbre multi-voies à 256 voies (arbre à 256 voies). L'utilisation d'un mtree réduit le nombre d'étapes à effectuer lors de la recherche d'un préfixe, comme illustré dans la figure suivante.

    20d.gif "border =" 0 "src =" http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20d.gif "usemap = "" /></p>
<p>Chaque octet est utilisé pour déterminer laquelle des 256 branches à prendre à chaque niveau de l’arbre, ce qui signifie qu’il n’ya pas plus de 4 recherches impliquées dans la recherche d’une destination. Pour des longueurs de préfixe plus courtes, une recherche sur trois seulement peut être requise. Les informations de réécriture d'en-tête MAC et d'interface de sortie sont stockées en tant que partie du nœud d'arborescence. Par conséquent, l'invalidation et le vieillissement de la mémoire cache se produisent toujours comme lors de la commutation rapide. </p>
<p>La commutation optimale détermine également la longueur du préfixe pour chaque entrée de cache de la même manière que la commutation rapide. </p>
<h3><span class= Cisco Express Forwarding

    Cisco Express Forwarding utilise également une structure de données à 256 voies pour stocker les informations de réacheminement et de réécriture d'en-tête MAC, mais n'utilise pas d'arborescence. Cisco Express Forwarding utilise un tri, ce qui signifie que les informations recherchées ne figurent pas dans la structure de données; au lieu de cela, les données sont stockées dans une structure de données séparée, et le fichier le désigne simplement. En d'autres termes, plutôt que de stocker l'interface sortante et la réécriture d'en-tête MAC dans l'arborescence elle-même, Cisco Express Forwarding stocke ces informations dans une structure de données distincte appelée table de contiguïté.

    20e.gif "border =" 0 "src =" http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20e.gif "usemap = "" /></p>
<p>Cette séparation des informations d'accessibilité (dans la table Cisco Express Forwarding) et des informations de transmission (dans la table d'adjacence) offre un certain nombre d'avantages:</p>
<ul>
<li>
<p>La table de contiguïté peut être construite séparément de la table de Cisco Express Forwarding, ce qui permet aux deux de construire sans passer par le processus aucun paquet.</p>
</li>
<li>
<p>La réécriture d'en-tête MAC utilisée pour transférer un paquet n'est pas stockée dans les entrées de cache. Par conséquent, les modifications apportées à une chaîne de réécriture d'en-tête MAC ne nécessitent pas l'invalidation des entrées de cache.</p>
</li>
<li>
<p>Vous pouvez pointer directement sur les informations de transfert, plutôt que sur le prochain saut récursif, afin de résoudre les itinéraires récursifs.</p>
</li>
</ul>
<p>Essentiellement, tout le vieillissement du cache est éliminé et le cache est pré-construit en fonction des informations contenues dans la table de routage et le cache ARP. Il n'est pas nécessaire de traiter un paquet pour créer une entrée de cache.</p>
<h4><span class= Autres entrées dans la table de voisinage

    La table de contiguïté peut contenir des entrées autres que des chaînes de réécriture d'en-tête MAC et des informations sur l'interface sortante. Parmi les différents types d'entrées pouvant être placées dans la table de contiguïté, citons:

    • cache– Une chaîne de réécriture d'en-tête MAC et une interface sortante utilisées pour atteindre un hôte ou un routeur adjacent particulier.

    • recevoir—Les paquets destinés à cette adresse IP doivent être reçus par le routeur. Cela inclut les adresses de diffusion et les adresses configurées sur le routeur lui-même.

    • laissez tomber—Les paquets destinés à cette adresse IP doivent être supprimés. Cela pourrait être utilisé pour le trafic refusé par une liste d'accès ou routé vers une interface NULL.

    • coup de volée—Cisco Express Forwarding ne peut pas basculer ce paquet. passez-le à la méthode de commutation suivante (en général rapide) pour le traitement.

    • glaner—Le saut suivant est directement associé, mais aucune chaîne de réécriture d'en-tête MAC n'est actuellement disponible.

    Glean Adjacencies

    Une entrée de contiguïté glean indique qu'un saut suivant doit être directement connecté, mais aucune information de réécriture d'en-tête MAC n'est disponible. Comment sont-ils construits et utilisés? Un routeur exécutant Cisco Express Forwarding et connecté à un réseau de diffusion, comme indiqué dans la figure ci-dessous, crée un certain nombre d'entrées dans la table de contiguïté par défaut.

    20f.gif "border =" 0 "src =" http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20f.gif "usemap = "" /></p>
<p>Les quatre entrées de la table d’adjacence construites par défaut sont les suivantes: </p>
<blockquote>
<pre>10.1.1.0/24, version 17, jointe, connectée
0 paquets, 0 octet
  via Ethernet2 / 0, 0 dépendances
    adjacence valide de glan
10.1.1.0/32, version 4, recevez
10.1.1.1/32, version 3, recevez
10.1.1.255/32, version 5, recevez</pre>
</blockquote>
<p>Notez qu'il y a quatre entrées: trois reçues et une glanée. Chaque entrée de réception représente une adresse de diffusion ou une adresse configurée sur le routeur, tandis que l'entrée glean représente le reste de l'espace d'adressage sur le réseau connecté. Si un paquet est reçu pour l'hôte 10.1.1.50, le routeur tente de le changer et le trouve résolu à cette adjacence glean. Cisco Express Forwarding signale ensuite qu'une entrée de cache ARP est nécessaire pour 10.1.1.50, le processus ARP envoie un paquet ARP et l'entrée de table de adjacence appropriée est construite à partir des nouvelles informations de cache ARP. Une fois cette étape terminée, la table de contiguïté contient une entrée pour 10.1.1.50.</p>
<blockquote>
<pre>10.1.1.0/24, version 17, jointe, connectée
0 paquets, 0 octet
  via Ethernet2 / 0, 0 dépendances
    adjacence valide de glan
10.1.1.0/32, version 4, recevez
10.1.1.1/32, version 3, recevez
10.1.1.50/32, version 12, adjacence mise en cache 208.0.3.2
0 paquets, 0 octet
  via 208.0.3.2, Ethernet2 / 0, 1 dépendance
    saut suivant 208.0.3.2, Ethernet2 / 0
    adjacence en cache valide
10.1.1.255/32, version 5, recevez</pre>
</blockquote>
<p>Le prochain paquet que le routeur reçoit et destiné au 10.1.1.50 est commuté via cette nouvelle adjacence.</p>
<h4><span class= Partage de charge

    Cisco Express Forwarding tire également parti de la séparation entre la table Cisco Express Forwarding et la table de contiguïté pour offrir une meilleure forme de partage de la charge que tout autre mode de commutation de contexte d'interruption. Une table loadShare est insérée entre la table Cisco Express Forwarding et la table d'adjacence, comme illustré dans cette figure:

    20g.gif "border =" 0 "src =" http://www.cisco.com/c/dam/en/us/support/docs/ip/express-forwarding-cef/13706-20g.gif "usemap = "" /></p>
<p>La table Cisco Express Forwarding pointe vers cette table chargeshare, qui contient des pointeurs vers les différentes entrées de la table de contiguïté pour les chemins parallèles disponibles. Les adresses source et de destination sont transmises via un algorithme de hachage afin de déterminer quelle entrée de table de partage de charge utiliser pour chaque paquet. Le partage de charge par paquet peut être configuré, auquel cas chaque paquet utilise une entrée de table loadShare différente. </p>
<p>Chaque table de partage de charge a 16 entrées parmi lesquelles les chemins disponibles sont divisés en fonction du compteur de partage de trafic dans la table de routage. Si les compteurs de partage de trafic dans la table de routage sont tous égaux à 1 (comme dans le cas de plusieurs chemins de coûts égaux), chaque saut suivant possible reçoit un nombre égal de pointeurs de la table loadShare. Si le nombre de chemins disponibles n'est pas divisible de manière égale en 16 (puisqu'il y a 16 entrées dans la table loadShare), certains chemins contiendront plus d'entrées que d'autres. </p>
<p>À compter de la version 12.0 du logiciel Cisco IOS, le nombre d'entrées dans la table loadShare est réduit afin de s'assurer que chaque chemin contient un nombre proportionnel d'entrées dans la table loadShare. Par exemple, s'il existe trois chemins de coûts égaux dans la table de routage, seules 15 entrées de table de charges partagées sont utilisées. </p>
<p>Dans la mesure du possible, vous souhaitez que vos routeurs commutent dans le contexte d'interruption, car il est au moins d'un ordre de grandeur plus rapide que la commutation au niveau du processus. La commutation de Cisco Express Forwarding est nettement plus rapide et meilleure que tout autre mode de commutation. Nous vous recommandons d'utiliser Cisco Express Forwarding si le protocole et l'IOS que vous exécutez le prennent en charge. Cela est particulièrement vrai si vous avez un certain nombre de liens parallèles sur lesquels le trafic doit être partagé. Accédez à la page Cisco Feature Navigator (clients enregistrés uniquement) pour déterminer l'IOS dont vous avez besoin pour la prise en charge de CEF.</p>
<p>   <span> </span>
  </div>
<div style='text-align:center' class='yasr-auto-insert-visitor'><!--Yasr Visitor Votes Shortcode--><div id='yasr_visitor_votes_c8e8fb2861366' class='yasr-visitor-votes'><div class=Click to rate this post!

    [Total: 0 Average: 0]

    Commentaires

    Laisser un commentaire

    Votre commentaire sera révisé par les administrateurs si besoin.