Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Messages d’erreur BGP

Comprendre la gestion des erreurs pour les messages de mise à jour BGP

Un message BGP est considéré comme mal formé lorsque l’un des attributs de message est mal formé. Lorsqu’un routeur participant à une session BGP reçoit un message de mise à jour mal formé, l’intégralité de la session est réinitialisée par défaut. Cela n’est pas souhaitable, car les messages de mise à jour avec des itinéraires valides sont également affectés. Pour éviter ce comportement indésirable, la gestion des erreurs pour les messages de mise à jour BGP doit être modifiée.

Pour configurer la gestion des erreurs pour les messages de mise à jour BGP, configurez l’instruction bgp-error-tolerance au niveau , ou [edit protocols bgp group group-name neighbor address] de la [edit protocols bgp][edit protocols bgp group group-name]hiérarchie.

Si un attribut contient des indicateurs d’attribut qui entrent en conflit avec la valeur du champ Type d’attribut, les indicateurs d’attribut sont réinitialisés à la valeur correcte et le message de mise à jour est traité. La valeur du bit Extended Length dans les indicateurs d’attribut reste inchangée, car elle définit si la longueur de l’attribut est d’un ou deux octets. Par conséquent, la valeur de l’indicateur d’attribut affecte la façon dont le paquet de mise à jour BGP est analysé.

REMARQUE :

Il n’y a pas de spécification explicite de la valeur de l’indicateur d’attribut pour les attributs path.

À partir de Junos OS version 24.2R1, la gestion des erreurs BGP est activée par défaut. Vous pouvez toujours configurer des sous-options telles que , malformed-route-limit, malformed-update-log-intervalet no-malformed-route-limit sous cette instruction de configuration. Notez que si vous supprimez l’instruction bgp-error-tolerance , la fonctionnalité reste activée et les sous-options sont réinitialisées à leurs valeurs par défaut.

Les messages de mise à jour mal formés sont traités au cas par cas, en fonction des valeurs des attributs contenus dans les messages. Il existe trois façons de gérer les messages de mise à jour BGP mal formés, répertoriées par ordre décroissant de gravité.

  1. Notification message approach: l’erreur de message mal formé est consignée localement, un message de mise à jour du code d’erreur est envoyé à l’administration de l’homologue et l’intégralité de la session BGP est réinitialisée.

    Cette approche est choisie dans les cas suivants :

    • Le message de mise à jour BGP contient l’attribut MP reach ou l’attribut MP unreache.

    • Le champ NLRI ou le message de mise à jour BGP ne peut pas être analysé correctement en raison d’une incompatibilité entre la longueur de l’attribut et la valeur du champ de longueur de l’attribut.

  2. Treat-as-withdraw approach—Toutes les routes comprises dans le message de mise à jour mal formé sont traitées comme des routes masquées, sauf si l’instruction keep none est configurée, auquel cas les routes sont ignorées. En l’absence de l’instruction keep none , le nombre de routes masquées mal formées est configuré avec une limite qui, lorsqu’elle est dépassée, ignore les routes et empêche toute autre route mal formée d’être masquée. Junos OS supprime les routes mal formées nouvellement reçues lorsque la limite de routes mal formées est atteinte.

  3. Attribute discard approach: les attributs mal formés dans le message de mise à jour sont ignorés ; Cependant, le message est traité. Nous vous déconseillons d’utiliser cette approche si les attributs à ignorer peuvent affecter la sélection ou l’installation de l’itinéraire.

    REMARQUE :

    Si un attribut apparaît plus d’une fois dans un message de mise à jour, toutes les occurrences de l’attribut, à l’exception de la première, seront ignorées et le message sera traité.

Les messages de mise à jour BGP sont analysés à la recherche des attributs suivants et sont traités comme mal formés en fonction des valeurs de ces attributs :

  • The origin attribute—Traité par l’approche de traiter comme un retrait.

  • The AS path attribute—Traité par l’approche de traiter comme un retrait.

  • The AS 4 path attribute: géré par l’approche de rejet d’attribut.

  • The aggregator attribute: géré par l’approche de rejet d’attribut.

  • The aggregator 4 attribute: géré par l’approche de rejet d’attribut.

  • The next-hop attribute—Traité par l’approche de traiter comme un retrait.

  • The multiple exit discriminator attribute—Traité par l’approche de traiter comme un retrait.

  • The local preference attribute—Traité par l’approche de traiter comme un retrait.

  • The atomic aggregate attribute: géré par l’approche de rejet d’attribut.

  • The community attribute—Traité par l’approche de traiter comme un retrait.

  • The extended community attribute—Traité par l’approche de traiter comme un retrait.

  • The originator attribute—Traité par l’approche de traiter comme un retrait.

  • The cluster attribute—Traité par l’approche de traiter comme un retrait.

  • The PMSI attribute—Traité par l’approche de traiter comme un retrait.

  • The MP reach attribute: géré par l’approche du message de notification.

  • The MP unreach attribute: géré par l’approche du message de notification.

  • The attribute set attribute—Traité par l’approche de traiter comme un retrait.

  • The AIGP attribute—Traité par l’approche de traiter comme un retrait.

  • Unknown attribute: si l’indicateur BGP n’indique pas qu’il s’agit d’un attribut facultatif, cet attribut mal formé est traité par l’approche de message de notification.

REMARQUE :

Lorsqu’un message de mise à jour BGP contient plusieurs attributs mal formés, l’approche la plus sévère déclenchée par l’un d’entre eux est suivie.

Voici un exemple de sortie du message d’erreur BGP :

Dans cet exemple, vous voyez les attributs origin (ORIGIN) et de préférence locale (LOCAL_PREF).

Exemple : Configuration de la gestion des erreurs pour les messages de mise à jour BGP

Cet exemple montre comment configurer la gestion des erreurs BGP.

Conditions préalables

Avant de commencer :

  • Configurez les interfaces des routeurs.

  • Configurez un protocole IGP (Interior Gateway Protocol).

  • Configurez BGP.

  • Configurez les stratégies de routage.

Présentation

Lorsqu’un périphérique de routage reçoit un message de mise à jour avec un attribut mal formé, le routeur doit réinitialiser la session. Ceci est spécifié dans la RFC 4271, A Border Gateway Protocol 4 (BGP-4). Les réinitialisations de session ont un impact non seulement sur les routes avec l’attribut incriminé, mais également sur les autres routes valides échangées au cours de la session. De plus, ce comportement peut présenter une faille de sécurité potentielle dans le cas d’attributs transitifs optionnels. Afin de minimiser l’impact sur le routage des messages de mise à jour mal formés, le projet de draft-ietf-idr-error-handling-01.txt Internet, Gestion révisée des erreurs pour les messages de mise à jour BGP , spécifie les modifications à apporter à la gestion des messages de mise à jour BGP avec des attributs mal formés. La nouvelle gestion des erreurs permet de maintenir la session établie et de conserver les routes valides échangées, tout en supprimant les routes transportées dans le message UPDATE mal formé.

Topologie

En Figure 1, l’équipement R1 dispose d’une session d’appairage BGP interne avec l’équipement R0 et d’une session d’appairage BGP externe avec l’équipement R2.

Figure 1 : Exemple de topologie de gestion des erreurs BGPExemple de topologie de gestion des erreurs BGP

Pour vous protéger contre les messages de mise à jour mal formés entraînant une instabilité du réseau, la gestion des erreurs BGP est configurée sur l’appareil R1, comme indiqué ci-dessous :

Par défaut, un message BGP est considéré comme mal formé lorsque l’un des attributs de message est mal formé. Lorsqu’un routeur participant à une session BGP reçoit un message de mise à jour mal formé, l’intégralité de la session est réinitialisée. L’instruction bgp-error-tolerance remplace ce comportement afin que la gestion des erreurs BGP suivante soit active :

  • En cas d’erreur fatale, Junos OS envoie un message de notification intitulé Message de mise à jour du code d’erreur et réinitialise la session BGP. Une erreur dans l’attribut MP_{UN}REACH est considérée comme fatale. La présence de plusieurs attributs MP_{UN}REACH dans une mise à jour BGP est également considérée comme une erreur fatale. Junos OS réinitialise la session BGP s’il ne parvient pas à analyser correctement le champ NLRI ou la mise à jour BGP. L’échec de l’analyse du paquet de mise à jour BGP peut se produire lorsque la longueur de l’attribut ne correspond pas à la longueur de la valeur de l’attribut.

  • Pour certaines erreurs non fatales, Junos OS traite toutes les routes contenues dans le message de mise à jour BGP mal formé comme des routes retirées et les installe comme masquées, sauf si l’instruction keep none est incluse dans BGP is configuration. Junos OS utilise cette approche de gestion des erreurs pour les cas impliquant l’un des attributs suivants : ORIGIN, AS_PATH, NEXT_HOP, MULTI_EXIT_DISC, LOCAL_PREF, ORIGINATOR, CLUSTER, ATTRSET, PMSI, Community et Extended Community. En outre, si l’un des attributs de chemin d’accès connus obligatoires est manquant, Junos OS considère la mise à jour BGP comme mal formée. Pour limiter l’utilisation de la mémoire de ces routes cachées mal formées, Junos OS arrête l’installation de nouvelles routes cachées mal formées une fois que le nombre maximal de ces routes cachées mal formées est atteint. Dans cet exemple, le nombre maximal est défini sur 5, à l’aide de l’instruction malformed-route-limit . La valeur par défaut est 1000. Si vous le souhaitez, vous pouvez autoriser un nombre illimité de routes masquées en raison d’attributs mal formés. Pour ce faire, incluez l’instruction no-malformed-route-limit .

  • Pour les autres erreurs non fatales, Junos OS ignore les attributs de chemin d’accès mal formés et continue de traiter le message de mise à jour BGP. Il n’est pas prudent d’utiliser cette approche sur les attributs de chemin qui pourraient affecter la sélection ou l’installation de l’itinéraire. Junos OS utilise cette approche de gestion des erreurs pour les cas impliquant l’un des attributs suivants : ATOMIC_AGGREGATE, AGGREGATOR, AGGREGATOR4 et AS4PATH.

Pour faciliter le dépannage des paquets mal formés, Junos OS consigne l’erreur en répertoriant le code de l’attribut de chemin mal formé, l’indicateur, la longueur, les informations sur l’homologue et la famille, ainsi que le premier préfixe de la mise à jour BGP mal formée. La journalisation des paquets mal formés peut ralentir les performances de Junos OS si un nombre important de paquets mal formés est reçu dans un court laps de temps. Pour limiter l’impact sur les performances, Junos OS implémente un algorithme permettant de consigner une mise à jour mal formée, de supprimer la journalisation pendant un intervalle et de consigner un résumé. Lorsque le minuteur de suppression de la journalisation expire, le logiciel consigne le nombre total d’attributs mal formés reçus au cours de l’intervalle. Dans cet exemple, le minuteur est défini sur 10 secondes, à l’aide de l’instruction malformed-update-log-interval . La valeur par défaut est de 300 secondes (5 minutes).

Configuration rapide de l’interface de ligne de commande affiche la configuration de tous les périphériques dans Figure 1.

Cette section #d203e119__d203e310 décrit les étapes à suivre sur l’appareil R1.

Configuration

Configuration rapide de l’interface de ligne de commande

Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit] hiérarchie.

Appareil R0

Appareil R1

Appareil R2

Procédure

Procédure étape par étape

L’exemple suivant vous oblige à naviguer à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration du Guide de l’utilisateur de l’interface de ligne de commande Junos OS.

Pour configurer la gestion des erreurs BGP :

  1. Configurez les interfaces des routeurs.

  2. Configurez un Interior Gateway Protocol (IGP), tel qu’OSPF ou IS-IS.

  3. Configurez le numéro du système autonome (AS) et l’ID du routeur.

  4. Configurez la stratégie de routage.

  5. Configurez la session EBGP.

  6. Configurez les sessions IBGP.

  7. Activez la tolérance d’erreur BGP.

  8. (Facultatif) Configurez l’intervalle de journalisation.

  9. (Facultatif) Configurez une limite pour le nombre de routes cachées à stocker.

Résultats

En mode configuration, confirmez votre configuration en saisissant les show interfacescommandes , show protocols, show policy-options, et show routing-options. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.

Si vous avez terminé de configurer les périphériques, passez commit en mode de configuration.

Vérification

Vérifiez que la configuration fonctionne correctement.

Vérification des sessions BGP Neighbor

But

Vérifiez que la tolérance d’erreur BGP est activée et affichez les compteurs associés aux attributs de chemin mal formés.

Action
Sens

Le champ Attributs mal formés indique que la tolérance d’erreur est activée. Les champs Intervalle de journalisation et Limite d’itinéraire affichent les valeurs configurées.

Les compteurs d’attributs montrent que sur la connexion EBGP, plusieurs attributs mal formés ont été reçus de l’appareil R2.

Vérification des itinéraires cachés

But

Affichez des informations sur les itinéraires masqués et découvrez pourquoi ils sont masqués.

Action
Sens

Les routes cachées mal formées sont marquées avec MalformedAttr dans le champ Chemin AS.

Vous pouvez supprimer les routes cachées en exécutant la clear bgp neighbor 10.10.10.2 malformed-route commande.

Vérification de la source des routes cachées

But

Affichez des informations sur les itinéraires masqués et découvrez pourquoi ils sont masqués.

Action
Sens

Junos OS affiche MalformedAttr dans le champ Chemin d’accès AS de la sortie de la show route receive-protocol bgp 10.10.10.2 detail hidden commande.

Vous pouvez supprimer les routes cachées en exécutant la clear bgp neighbor 10.10.10.2 malformed-route commande.