Commutation multiprotocole par étiquette (MPLS) : MPLS

Commande Traceroute dans MPLS

17 décembre 2015 - Traduction automatique
Autres versions: PDFpdf | Anglais (22 août 2015) | Commentaires


Contenu


Introduction

Ce document explique la manière dont la commande « traceroute » fonctionne dans un environnement de commutation multiprotocole par étiquette (MPLS).

Conditions préalables

Conditions requises

Cisco vous recommande de prendre connaissance des rubriques suivantes :

  • La connaissance de base MPLS

Référez-vous à la Foire aux questions MPLS pour le pour en savoir plus de débutants.

Composants utilisés

Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.

Conventions

Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.

Commande traceroute normale

Cette section décrit comment une commande traceroute traditionnelle fonctionne. Ce diagramme affiche un fournisseur de services installé où le routeur 1 (R1) et le routeur 4 (R4) sont des Routeurs de Provider Edge (PE) et le Router2 (R2) et Routeur3 (R3) sont les Routeurs du fournisseur (p).

/image/gif/paws/26585/mpls_traceroute1.gif

Cet exemple conduit une traceroute R4 au bouclage 14 de R1. R1 utilise un datagramme de Protocole UDP (User Datagram Protocol) avec une valeur de destination port arbitraire plus grande que 32000. Si vous sélectionnez une telle valeur élevée pour le numéro de port, il s'assure qu'un tel port n'existe pas sur le destinataire destiné. Il met ce datagramme dans un paquet IP.

Remarque: Dans tout ce document, toutes les fois qu'un paquet IP est mentionné, c'est un paquet IP qui contient le datagramme UDP.

C'est une séquence d'opérations pour une commande traceroute normale :

  1. R1 envoie le paquet IP avec une adresse de destination de 14 et un Time to Live (TTL) de 1 par son interface eth1.

  2. R2 reçoit le paquet et note que ce n'est pas le destinataire destiné et le TTL du paquet est 1. Il relâche le paquet et envoie un message TTL-expiré de Protocole ICMP (Internet Control Message Protocol) à R1. L'adresse source de ce message ICMP est l'adresse IP du R2 eth0 (l'adresse de l'interface qui a reçu le paquet d'origine).

  3. À la réception du message ICMP, R1 envoie un autre paquet IP destiné pour 14 avec un TTL de 2 par son interface eth1.

  4. R2 reçoit le paquet et note que ce n'est pas le destinataire destiné et le destinataire destiné peut être accédé par R3. Il décrémente le TTL (de 2 à 1) et en avant le paquet à R3. R3 reçoit le paquet et voit que ce n'est pas le destinataire destiné. Le TTL est 1. Il relâche le paquet et envoie un message ICMP TTL-expiré à R1 avec son adresse eth0 comme adresse source.

  5. R1 reçoit le message ICMP et envoie un autre paquet IP à 14 par son interface eth1 avec une valeur de TTL de 3. Sur le chemin, R2 et R3 décrémentent le TTL et le passent en fonction à R4. R4 obtient le paquet, voit que c'est le destinataire destiné, et des essais pour se connecter à la valeur de port dans le datagramme UDP. R4 trouve ce port n'existe pas et envoie à un port d'ICMP le message d'erreur inaccessible à R1.

    Comme avant, l'adresse source de ce message ICMP est eth0 de R4. Le programme traceroute maintenant a tous les messages d'erreur ICMP avec les adresses sources correspondantes et a l'artère complète à la destination.

Commande traceroute MPLS

Considérez ceci le même scénario détaillé dans la section de commande traceroute normale, à moins que tous les Routeurs, R1 par R4, fassent maintenant la commutation par étiquette au lieu de l'expédition IP. L'installation de banc d'essai est affichée est ce diagramme. Toutes les interfaces affichées dans le banc d'essai sont dans le réseau de 10.13.0.0.

mpls_traceroute2.gif

Afin de ce document, assumez cela :

  • R1 emploie une étiquette de 47 pour atteindre R4 et en avant paquets à R2.

  • R2 emploie une étiquette de 45 pour atteindre R4 et en avant paquets à R3.

  • R3 saute l'étiquette et en avant le paquet à R4.

  • R4 emploie une étiquette de 28 pour atteindre R1 et en avant paquets à R3.

  • R3 emploie une étiquette de 26 pour atteindre R1 et en avant paquets à R2.

  • R2 saute l'étiquette et en avant le paquet à R1.

Ces étapes affichent que la séquence d'opérations conduisait une traceroute de R1 R4 au bouclage 10.13.1.51.

  1. R1 envoie un paquet étiquette-commuté avec une étiquette de 47 et un TTL de 1 à R2. Le champ TTL du paquet IP est copié sur le champ TTL de l'en-tête d'étiquette.

  2. R2 voit que ce n'est pas le destinataire destiné et le TTL est 1. Il relâche le paquet et crée un message ICMP TTL-expiré, comme il pour un paquet IP régulier. Dans ce cas, le paquet de message ICMP est généré par extensions d'ICMP pour le MPLS.

  3. R2 ajoute l'étiquette 47 (l'étiquette entrant qui a expiré) au message ICMP. Il n'envoie pas le paquet à R1 directement. Au lieu de cela, il consulte son Forwarding Information Base d'étiquette (LFIB) et le trouve devrait utiliser une étiquette de 45 pour des paquets reçus avec une étiquette de 47. Il met une étiquette de 45 sur le paquet et envoie le message ICMP TTL-expiré à R3.

  4. R3 saute l'étiquette et l'envoie à R4. R4 voit que la destination est R1, donne une étiquette de 28 au message, et l'envoie par R3 et R2 à R1.

  5. Le message d'erreur ICMP voyage complètement à l'autre extrémité avant qu'il soit renvoyé à R1. Cet exemple fournit une illustration :

    /image/gif/paws/26585/mpls_traceroute3.gif

    Les paquets reniflés sur l'interface Ethernet à R4 confirment les étapes 1 ? 5. Dans la sortie de renifleur, la vue 1 est le paquet entrant et la vue 2 est le paquet sortant de R4. La sortie est formatée pour refléter cette discussion, et les points à noter sont en caractères gras.

    Frame 1 (182 on wire, 182 captured)
    Ethernet II 
    Destination: 00:04:4e:7a:74:00 (Cisco_7a:74:00)
    Source: 00:03:fd:1c:86:84 (Cisco_1c:86:84)
    Type: IP (0x0800)
    Internet Protocol 
    Version: 4 
    Header length: 20 bytes 
    Time to live: 254 
    Protocol: ICMP (0x01) 
    Header checksum: 0x1b8e (correct)
    Source: 10.13.2.33 (10.13.2.33)
    Destination: 10.13.2.34 (10.13.2.34) 
    Internet Control Message Protocol
    Type: 11 (Time-to-live exceeded) 
    Code: 0 (TTL equals 0 during transit)
    Checksum: 0x0c88 (correct) 
    Data (140 bytes) 
    04500 001c 9e19 0000 0111 044a 0a0d 0222E..........J..."
    100a0d 0133 989d 829a 0008 cd37 0000 0000...3.......7....  
    200000 0000 0000 0000 0000 0000 0000 0000................  
    300000 0000 0000 0000 0000 0000 0000 0000................ 
    400000 0000 0000 0000 0000 0000 0000 0000................ 
    500000 0000 0000 0000 0000 0000 0000 0000................
    600000 0000 0000 0000 0000 0000 0000 0000................ 
    700000 0000 0000 0000 0000 0000 0000 0000................ 
    802000 edf2 0008 0101 0002 f101........... 
    
    Frame 2 (186 on wire, 186 captured) 
    Ethernet II 
    Destination: 00:03:fd:1c:86:84 (Cisco_1c:86:84)
    Source: 00:04:4e:7a:74:00 (Cisco_7a:74:00) 
    Type: MPLS label switched packet (0x8847)
    MultiProtocol Label Switching Header 
    MPLS Label: Unknown (28) 
    MPLS Experimental Bits: 6 
    MPLS Bottom Of Label Stack: 1 
    MPLS TTL: 253 
    Internet Protocol 
    Version: 4 
    Header length: 20 bytes 
    Time to live: 253 
    Protocol: ICMP (0x01)
    Header checksum: 0x1c8e (correct)
    Source: 10.13.2.33 (10.13.2.33) 
    Destination: 10.13.2.34 (10.13.2.34) 
    Internet Control Message Protocol 
    Type: 11 (Time-to-live exceeded) 
    Code: 0 (TTL equals 0 during transit)
    Checksum: 0x0c88 (correct) 
    Data (140 bytes) 
    04500 001c 9e19 0000 0111 044a 0a0d 0222E..........J..." 
    100a0d 0133 989d 829a 0008 cd37 0000 0000...3.......7.... 
    200000 0000 0000 0000 0000 0000 0000 0000................ 
    300000 0000 0000 0000 0000 0000 0000 0000................ 
    400000 0000 0000 0000 0000 0000 0000 0000................ 
    500000 0000 0000 0000 0000 0000 0000 0000................ 
    600000 0000 0000 0000 0000 0000 0000 0000................ 
    700000 0000 0000 0000 0000 0000 0000 0000................ 
    802000 edf2 0008 0101 0002 f101........... 
    

    Dans la vue 1 de la sortie, le premier paquet reçu par R4 est le message ICMP TTL-expiré de R2 (10.13.2.33, l'interface sur laquelle le paquet d'origine a été reçu) à R1 (10.13.2.34). Dans la partie données du message ICMP, aux octets 0x89 et au premier quartet de 0x8A, les mpls label (20 octets) sont expirés et sa valeur sont 0x02F, ou 47. C'est l'étiquette entrant du paquet avec un TTL de 1. R2 ajoute cette étiquette dans le message d'erreur ICMP.

    Dans la vue 2 de la sortie, le type est affiché en tant que paquet commuté par mpls label, ainsi il signifie que c'est un paquet MPLS. R4 met une étiquette de 28 pour vue 1 et en avant lui à R1 par le chemin de commutation par étiquette. L'en-tête MPLS dans la trame est en gras. Également, si vous vous référez à la partie TTL du paquet, dans la vue 1 sa valeur est 254, et dans la vue 2 elle est 253. R4 l'a décrémenté par 1.

  6. R1 reçoit le message ICMP et envoie un autre paquet avec une étiquette de 47 et un TTL de 2 à R2. Les échanges R2 étiquette, décrémente le TTL (de 2 à 1) et en avant à R3. Comme dans l'étape 2, R3 envoie un message ICMP TTL-expiré ajouté avec l'étiquette entrant qui a expiré à R4, et R4 puis l'envoie de nouveau à R1.

    Le renifleur sorti à R4, affiché ici, confirme l'étape 6 :

    Frame 3 (182 on wire, 182 captured)
    Ethernet II 
    Destination: 00:04:4e:7a:74:00 (Cisco_7a:74:00) 
    Source: 00:03:fd:1c:86:84 (Cisco_1c:86:84) 
    Type: IP (0x0800) 
    Internet Protocol 
    Version: 4 
    Header length: 20 bytes 
    Time to live: 255 
    Protocol: ICMP (0x01) 
    Header checksum: 0x146f (correct) 
    Source: 10.13.3.134 (10.13.3.134) 
    Destination: 10.13.2.34 (10.13.2.34) 
    Internet Control Message Protocol 
    Type: 11 (Time-to-live exceeded) 
    Code: 0 (TTL equals 0 during transit)
    Checksum: 0x0c88 (correct) 
    Data (140 bytes) 
    04500 001c 9e1b 0000 0211 0348 0a0d 0222E..........H..."  
    100a0d 0133 9292 829b 0008 d341 0000 0000...3.......A.... 
    200000 0000 0000 0000 0000 0000 0000 0000................ 
    300000 0000 0000 0000 0000 0000 0000 0000................ 
    400000 0000 0000 0000 0000 0000 0000 0000................ 
    500000 0000 0000 0000 0000 0000 0000 0000................ 
    600000 0000 0000 0000 0000 0000 0000 0000................ 
    700000 0000 0000 0000 0000 0000 0000 0000................
    802000 0df3 0008 0101 0002 d101........... 
    
    Frame 4 (186 on wire, 186 captured) 
    Ethernet II 
    Destination: 00:03:fd:1c:86:84 (Cisco_1c:86:84) 
    Source: 00:04:4e:7a:74:00 (Cisco_7a:74:00) 
    Type: MPLS label switched packet (0x8847) 
    MultiProtocol Label Switching Header 
    MPLS Label: Unknown (28) 
    MPLS Experimental Bits: 6 
    MPLS Bottom Of Label Stack: 1 
    MPLS TTL: 254 
    Internet Protocol 
    Version: 4 
    Header length: 20 bytes 
    Time to live: 254 
    Protocol: ICMP (0x01) 
    Header checksum: 0x156f (correct) 
    Source: 10.13.3.134 (10.13.3.134) 
    Destination: 10.13.2.34 (10.13.2.34) 
    Internet Control Message Protocol 
    Type: 11 (Time-to-live exceeded) 
    Code: 0 (TTL equals 0 during transit) 
    Checksum: 0x0c88 (correct) 
    Data (140 bytes) 
    04500 001c 9e1b 0000 0211 0348 0a0d 0222E..........H..."
    100a0d 0133 9292 829b 0008 d341 0000 0000...3.......A....  
    200000 0000 0000 0000 0000 0000 0000 0000................ 
    300000 0000 0000 0000 0000 0000 0000 0000................ 
    400000 0000 0000 0000 0000 0000 0000 0000................  
    500000 0000 0000 0000 0000 0000 0000 0000................ 
    600000 0000 0000 0000 0000 0000 0000 0000................ 
    700000 0000 0000 0000 0000 0000 0000 0000................ 
    802000 0df3 0008 0101 0002 d101........... 
    

    De la vue 3 sortie, vous pouvez déterminer que la vue 3 est le paquet d'ICMP de R3 à R1. L'adresse source (10.13.3.134) est l'adresse sur laquelle le paquet d'origine est reçu. Le message d'erreur ICMP contient les informations expirées d'étiquette à la fin de la partie données. Sa valeur est 0x02d, qui est 45. La vue 4 est le paquet MPLS qui est envoyé de R4 à R1.

  7. Dès réception du message ICMP, R1 envoie un autre paquet avec une étiquette de 47 et un TTL de 3. Sur son chemin, R2 et R3 décrémentent le TTL et expédient le paquet à R4. R4 note que c'est le destinataire destiné et trouve le port de datagramme UDP inaccessible. Il envoie un message d'inaccessibilité de port d'ICMP à R1 par R3 et R2.

    Dans cette sortie de renifleur, les points importants à noter sont en caractères gras :

    Frame 5 (60 on wire, 60 captured)
    Ethernet II 
    Destination: 00:04:4e:7a:74:00 (Cisco_7a:74:00)
    Source: 00:03:fd:1c:86:84 (Cisco_1c:86:84) 
    Type: IP (0x0800) 
    Trailer: 00000000000000000000000000000000... 
    Internet Protocol 
    Version: 4 
    Header length: 20 bytes 
    Time to live: 1 
    Protocol: UDP (0x11) 
    Header checksum: 0x0446 (correct) 
    Source: 10.13.2.34 (10.13.2.34)
    Destination: 10.13.1.51 (10.13.1.51) 
    User Datagram Protocol 
    Source port: 37647 (37647) 
    Destination port: 33436 (33436) 
    Length: 8 
    Checksum: 0xd2c3 (correct) 
    
    Frame 6 (74 on wire, 74 captured) 
    Ethernet II 
    Destination: 00:03:fd:1c:86:84 (Cisco_1c:86:84) 
    Source: 00:04:4e:7a:74:00 (Cisco_7a:74:00)
    Type: MPLS label switched packet (0x8847) 
    MultiProtocol Label Switching Header 
    MPLS Label: Unknown (28) 
    MPLS Experimental Bits: 6 
    MPLS Bottom Of Label Stack: 1 
    MPLS TTL: 255 
    Internet Protocol 
    Version: 4 
    Header length: 20 bytes 
    Time to live: 255 
    Protocol: ICMP (0x01) 
    Header checksum: 0x5694 (correct) 
    Source: 10.13.5.10 (10.13.5.10) 
    Destination: 10.13.2.34 (10.13.2.34) 
    Internet Control Message Protocol 
    Type: 3 (Destination unreachable) 
    Code: 3 (Port unreachable) 
    Checksum: 0x1485 (correct)
    Data (28 bytes) 
    04500 001c 9e1d 0000 0111 0446 0a0d 0222E..........F..." 
    100a0d 0133 930f 829c 0008 d2c3...3........ 
    

    La vue 5 prouve que le datagramme UDP est envoyé par R1 à R4. La valeur de destination port dans le datagramme UDP est 33436 (plus considérablement que 32000), comme évoqué dans la section de commande traceroute normale.

    Dans la vue 6, R4 envoie à une destination le type ICMP inaccessible et un port code inaccessible à R1. Tout les messages ICMP plus tôt de R2 et de R3 ont eu le champ de type réglé comme Time to Live dépassé. La sortie de la commande traceroute étendue est affichée ici :

    R1#traceroute 
    Protocol [ip]:  
    Target IP address: 10.13.1.51 
    Source address: 10.13.2.34 
    Numeric display [n]:  
    Timeout in seconds [3]:
    Probe count [3]: 1 
    Minimum Time to Live [1]:
    Maximum Time to Live [30]:
    Port Number [33434]:  
    Loose, Strict, Record, Timestamp, Verbose[none]:
    Type escape sequence to abort. 
    Tracing the route to 10.13.1.51
    1 10.13.2.33 [MPLS: Label 47 Exp 0] 0 msec 
    2 10.13.3.134 [MPLS: Label 45 Exp 0] 0 msec
    3 10.13.5.10 4 msec 
    R1# 
    

    Par défaut, la commande traceroute utilise trois sondes pour chaque valeur de TTL. Il envoie trois paquets avec un TTL de 1, trois paquets avec un TTL de 2, et ainsi de suite. Cette commande traceroute est émise avec une sonde simple, ainsi il est facile de tracer et mettre au point. Comme vu dans la sortie, la commande traceroute affiche la valeur expirée d'étiquette, aussi.

aucune commande de mpls ip propagate-ttl

Quand vous configurez le MPLS, une étiquette est imposée par le routeur de commutateur d'étiquette (LSR) quand un paquet IP est expédié dans le domaine MPLS. Cette étiquette doit avoir une valeur dans le champ TTL. Par défaut, LSR lit le champ TTL dans l'en-tête IP du paquet entrant, le décrémente par 1, et copie ce qui est laissé dans le champ TTL de l'en-tête MPLS. Le noyau LSRs regardent seulement l'étiquette la plus élevée. Si la valeur de TTL n'atteint pas 0, le paquet est expédié. La périphérie LSR de sortie qui saute l'étiquette copie ce qui est laissé dans le champ TTL d'étiquette dans le champ TTL de l'en-tête IP et puis en avant le paquet IP en dehors du domaine MPLS.

Ce comportement peut être changé avec l'aucune commande de configuration de mpls ip propagate-ttl. La périphérie LSR d'entrée utilise la valeur de 255 comme valeur de TTL dans l'étiquette en l'imposant. La périphérie LSR de sortie ne copie pas la valeur de TTL d'étiquette dans l'en-tête IP en sautant l'étiquette. Le résultat net est que l'en-tête IP TTL ne reflète pas les sauts pris à travers le noyau MPLS ; ainsi quand les clients exécutent une traceroute d'un côté de leur réseau à un autre côté, les Routeurs dans le réseau de noyau MPLS n'apparaissent pas dans les informations de traceroute. Il est important de désactiver la propagation TTL en d'entrée et périphérie LSRs de sortie. Autrement, l'en-tête IP peut avoir une valeur supérieure quand elle part du domaine MPLS qu'elle a eu quand elle l'est entrée dans.

Ceci fournit un exemple :

mpls_traceroute4.gif

C1 exécute une traceroute au C2. Avec l'exécution de propagation de l'IP par défaut TTL, la traceroute dans C1 ressemble à ceci :

C1#traceroute C2.cust.com

Tracing the route to C2.cust.com
  1 A.provider.net       44 msec  36 msec  32 msec
  2 B provider.net      164 msec  132 msec  128 msec
  3 C.provider.net	148 msec  156 msec  152 msec
  4 C2.cust.com         180 msec  *  181 msec

Cette sortie illustre le comportement typique de traceroute dans un réseau MPLS. Car l'en-tête d'étiquette d'un paquet étiqueté porte la valeur de TTL du paquet IP d'origine, les artères dans le chemin relâchent les paquets pour lesquels le TTL est dépassé. Par conséquent, la traceroute affiche tous les Routeurs dans le chemin. Le comportement est ceci :

  1. Le premier paquet est un paquet IP avec le TTL égal à 1. routeur qu'A décrémente le TTL et relâche le paquet parce qu'il atteint 0. Un message TTL-dépassé par ICMP est envoyé à la source.

  2. Le deuxième paquet envoyé est un paquet IP avec le TTL égal au routeur 2. qu'A décrémente le TTL, étiquette le paquet, et en avant le paquet au routeur B.

  3. Le routeur B décrémente la valeur de TTL dans l'en-tête MPLS, relâche le paquet, et envoie un message TTL-dépassé par ICMP à la source. Puisque c'était un paquet MPLS qui a été lâché, l'adresse de retour pour le message ICMP doit être dérivée de l'adresse source dans l'en-tête IP à l'intérieur du paquet MPLS. Mais cette adresse IP ne peut être connue réellement au routeur B, ainsi le routeur B en avant les messages ICMP le long de la même étiquette a commuté le chemin (LSP) que le paquet lâché voyageait (dans la direction vers routeur C). À la fin du LSP, l'étiquette est retirée et les messages ICMP sont expédiés selon l'adresse de destination dans l'en-tête IP (vers routeur C1).

  4. Le troisième paquet (le TTL est 3) traitement semblable d'expériences comme paquets précédents, sauf que le routeur C est maintenant celui goutte le paquet, basé sur le TTL dans l'en-tête IP. Le routeur B, en raison du saut pénultième sautant, a précédemment retiré l'étiquette, et le TTL a été copié dans l'en-tête IP.

  5. Le quatrième paquet (le TTL est 4) atteint la destination définitive où le TTL de l'en-tête IP est examiné.

Si la propagation d'IP TTL est désactivée avec l'aucune commande de mpls ip propagate-ttl en mode de configuration globale, la valeur de TTL n'est pas copiée dans l'en-tête IP et la traceroute dans C1 au C2 ressemble à ceci :

C1#traceroute C2.cust.com

Tracing the route to C2.cust.com
  1 A.provider.net   44 msec  36 msec  32 msec
  2 C2.cust.com     180 msec  *  181 msec

Quand la commande traceroute est utilisée dans cette situation, les réponses d'ICMP sont seulement reçues de ces Routeurs qui voient le vrai TTL enregistré dans l'en-tête IP. Dans cette situation, le routeur C1 exécute une commande traceroute (comme affiché), mais les principaux Routeurs ne copient pas le TTL à et de l'étiquette. Il a comme conséquence ce comportement :

  1. Le premier paquet est un paquet IP avec le TTL égal à 1. routeur qu'A décrémente le TTL, relâche le paquet, et envoie un message TTL-dépassé par ICMP à la source.

  2. Le deuxième paquet est un paquet IP avec le TTL égal au routeur 2. qu'A décrémente le TTL, étiquette le paquet, et place le TTL dans l'en-tête MPLS à 255.

  3. Le theTTL de decremetns du routeur B dans l'en-tête MPLS à 254, retire les mpls label, et copie la valeur de TTL dans l'en-tête MPLS dans le champ TTL de l'en-tête IP.

  4. Le routeur C décrémente l'IP TTL et envoie le paquet au routeur du prochain saut C2. Le paquet a atteint la destination définitive.

Conversations connexes de la communauté de soutien de Cisco

Le site Cisco Support Community est un forum où vous pouvez poser des questions, répondre à des questions, faire part de suggestions et collaborer avec vos pairs.


Informations connexes


Document ID: 26585