IS-IS - Utilisation du Bit Overload
Sommaire - Introduction - Prérequis -Composants utilisés - Utilisation traditionnelle du bit Overload - Utilisation étendue du Bit Overload - Exemple de configuration
Introduction Ce document décrit la commande set-overload-bit pour la configuration de IS-IS (Inter- mediate System-to-Intermediate System), comment et quand l'utiliser avec les mots clés wait-for-bgp et suppress. Au travers de ce document, les termes Routeur et IS (Intermediate System) sont interchangeables. Prérequis Les lecteurs de ce document doivent avoir une connaissance de base des protocoles BGP (Border Gateway Protocol) et IS-IS (Intermediate System-to-Intermediate System). Composants logiciel et matériel utilisés Les informations contenues dans ce document sont basées sur les versions de logiciel et de matériel suivantes: • IOS Cisco release 12.1(9) • Routeurs Cisco 2500 et 3600 Utilisation traditionnelle du bit Overload Quand un routeur n'a plus assez de ressources (mémoire ou CPU), il ne peut plus mé- moriser la base de données d'états de liens ou calculer le SPF (Shortest Path First). Dans cette situation, le routeur doit alerter les autres routeurs de l'Area en position- nant un bit particulier dans ses paquets d'états de liens (LSP). Quand les autres rou- teurs détectent que ce bit est positionné, ils n'utiliseront plus ce routeur pour faire transiter du trafic mais uniquement pour les paquets destinés aux réseaux et préfixes directement connectés à ce routeur surchargé. Dans IS-IS, un routeur diffuse immédiatement son propre LSP même avant de trans- mettre des paquets CSNP (Complete Sequence Number PDU). Le bit Overload est par conséquent utilisé pour signaler au reste du réseau de ne pas faire transiter de trafic par ce routeur venant d'être mis en fonctionnement. Pour chaque LSP, le document ISO/IEC10589:1992 définit un bit spécial appelé "LSP Database Overload bit". Ce document mentionne la condition de surcharge ( section 7. 3.19): c'est le résultat d'une mauvaise configuration de réseau ou de certaines condi- tions transitoires. Dans ce cas il est possible qu'il y ait un manque de mémoire pour stocker les LSPs reçues. Quand cela se produit, un IS (routeur) doit s'assurer que si sa base de données d'états de liens devient incohérente avec celles des autres IS (rou- teur) ceux-ci ne doivent plus prebdre en compte les routes passant par cet IS (routeur) surchargé. Quand un IS (routeur) est dans cet état, il positionne le bit Overload dans le fragment 0 du Pseudonode LSP qu'il génère. Egalement dans ce document section 7.2.8.1, il est dit que les autres routeurs ne doi- vent pas utiliser cet IS (routeur) surchargé comme routeur de transit mais peuvent atteindre les ES qui lui sont attachés. Pendant cette période, les préfixes et interfaces
directement attachés sont toujours accessibles directement attachés sont toujours accessibles. L'IOS Cisco n'utilise pas le bit overload pour cette fonctionnaité bien que la possibilité de le positionner de manière permenen- te a été introduite dans l'IOS Cisco. Dans l'implémentation Cisco quand le bit overload est positionné, les interfaces et préfixes IP directement connectés sont accessibles. Utilisation étendue du bit Overload La technique du bit Overload de IS-IS a été étendue. Vous pouvez configurer un rou- teur pour qu'il s'annonce avec le bit Overload positionné dans ses LSPs pendant une durée déterminée après son démarrage. Quand le timer expire, le bit Overload est ef- facé et le LSP est de nouveau diffusé. Cette nouvelle fonctionnalité est très utile pour les FAI ( fournisseurs d'Accès à Inter- net) qui opèrent simultanément avec BGP (Border Gateway Protocol) et IS-IS pour éviter quelques scénarios de type "trous noirs". En positionnant le bit overload pour une durée déterminée après le démarrage assure que le routeur ne recevra pas de tra- fic de transit alors que le protocole de routage est en train de converger. La possiblité de positonner le bit overload pour une durée déterminée après le démar- rage est implémentée en utilisant la commande qui suit. Cette commande utilise un intervalle de 5 à 86400 secondes pour indiquer le temps pendant lequel le bit overload doit rester positionné après le démarrage du routeur. Routeur(config)# router isis Routeur(config-router)# set-overload-bit [on-startup [timeout|wait-for-bgp]] Exemple: Routeur(config)# router isis Routeur(config-router)# set-overload-bit on-startup 3000 !-- Le bit overload est postionné pendant 5 minutes après le démarrage !-- La valeur par défaut est 10 minutes. Cette fonctionnalité donne également la possibilité de configurer un routeur pour qu'il dévalide le bit Overload automatiquement quand BGP a convergé. Pour plus d'informa- tions au sujet de "Waiting for BGP", reférez-vous au RFC3277 "Intermediate System to Intermediate System (IS-IS) Transient Blackhole Avoidance". D'après la spécification de BGP, un routeur BGP n'a pas besoin de transmettre de pa- quet "Keepalive" tant qu'il transmet des mises à jour. BGP est considéré avoir convergé quand des paquets "Keepalive" sont reçus de tous les voisins BGP. Si les "Keepalive" BGP ne sont pas reçus de tous les voisins BGP et wait-for-bgp est configuré, IS-IS dévalidera le bit Overload après 10 minutes. Les FAIs veulent peut-être empêcher certains préfixes d'être annoncés dans les LSP du routeur quand set-overload-bit est utilisée. Par exemple il n'est peut-être pas souhai- table d'autoriser la propagation de préfixes IP du Level-1 dans Level-2 ce qui pourrait faire du routeur un noeud de transit pour le trafic IP.
L'IOS Cisco donne plus de contrôle sur ce qui se produit quand le bit Overload est uti- lisé avec ses fonctions étendues. Cette amélioration autorise un routeur IS-IS Level-1/ Level-2 et qui redistribue des routes IP du Level-1 dans Level-2 ou de Level-2 dans Level-1 à continuer cette redistribution de routes dans ses LSPs quand le bit overload a été positionné. En utilisant le mot clé suppress, vous pouvez configurer un routeur L1L2 à redistri- buer et annoncer des routes IP de Level-1 dans Level-2 et inversement même si la co- mmande set-overload-bit a été configurée. La syntaxe de la commande est la suivante: [no] set-overload-bit [on-startup [timeout|wait-for-bgp]]|[suppress [interlevel| external]] Le mot clé suppress interlevel indique au routeur de ne pas annoncer les préfixes IP appris d'un autre level IS-IS si le bit overload est positionné. Le mot clé suppress ex- ternal indique au routeur de ne pas annoncer les préfixes appris d'autres protocoles si le bit overload est positionné. La valeur par défaut est no suppress. L'option suppress prend effet seulement quand le bit overload de votre routeur est po- sitionné et non quand il est reçu ou seulement configuré (par exemple le bit overload a pu être positionné au démarrage et ne l'est pas actuellement). router isis set-overload-bit on-startup 40 suppress interlevel Dans le cas ci-dessus, le bit overload n'est pas positionné tant que le routeur n'est pas redémarré et par conséquent il continue à passer les préfixes entre levels. Quand le routeur est redémarré et que le bit overload est positionné, il doit supprimer les annon- ces inter-levels. Exemple de configuration Le schéma de réseau suivant est utilisé pour illustrer la commande set-overload-bit, les options wait-for-bgp et suppress. E0 135.8.2.0/24 Loopback0 1.1.1.1 R3 R2 L2 E0/0 Loopback0 2.2.2.2 Loopback0 3.3.3.3 135.8.1.0/24 R1 E1/0 L1-L2 L1
Voici la configuration contenant l'option wait-for-bgp sur le routeur R2 ! interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! !-- Affecte une adresse IP à l'interface ! interface Ethernet0/0 ip address 135.8.1.1 255.255.255.0 ip router isis ! !-- Affecte une adresse IP à l'interface et !-- valide IS-IS pour IP sur l'interface ! interface Ethernet1/0 ip address 135.8.2.1 255.255.255.0 ip router isis ! !-- Affecte une adresse IP à l'interface et !-- valide IS-IS pour IP sur l'interface ! router isis passive-interface Loopback0 net 12.0020.0200.2002.00 set-overload-bit on-startup wait-for-bgp ! !-- Valide le processus IS-IS sur le routeur !-- Rend l'interface Loopback 0 passive !-- Affecte l'area et l'identification système au routeur !-- Positionne le bit overload au démarrage et attend la !-- convergencve BGP avec un timeout par défaut de 10 minutes. ! Le routeur vient d'être redémarré et avant que eBGP ait convergé vous pouvez voir que le bit overload est positionné dans le LSP de la base de données IS-IS Level 1 du rou- teur R2. IS-IS Level-1 Link State Database LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL R2.00-00 0x00000017 0x2372 284 0/0/1 Ci-dessous, nous voyons dans la sortie de la commande debug isis update que BGP a convergé sur le routeur R2. *Mar 1 00:00:51.015 GMT: BGP(0): Revise route installing 1.1.1.1/32 -> 135.8.1.1 to main IP table
Le routeur R2 reconstruit maintenant son LSP Level-1 car BGP a convergé et le bit overload est effacé. C'est pour cela que vous voyez "Important fields changed" dans la sortie de la commande debug isis update ci-dessous. *Mar 1 00:00:51.087 GMT: ISIS-Upd: Building L1 LSP *Mar 1 00:00:51.087 GMT: ISIS-Upd: Important fields changed *Mar 1 00:00:51.087 GMT: ISIS-Upd: Full SPF required Maintenant nous pouvons voir que R2 a terminé sa session BGP avec son voisin. *Mar 1 00:00:52.127 GMT: BGP: 135.8.1.1 initial update completed Quand nous regardons de nouveau le LSP du routeur R2, nous voyons que le routeur R2 a effacé le bit overload (car BGP a convergé)et que le champ LSP seq Num a été in- crémenté de 1 (car un nouveau LSP a été crée). IS-IS Level-1 Link State Database LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL R2.00-00 0x00000018 0xAD87 287 0/0/0 Voici la configuration du routeur R2 avec annonce de routes entre Level-1/Level-2 et pas de bit overload configuré. R2 ! interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface Ethernet0/0 ip address 135.8.1.1 255.255.255.0 ip router isis ! interface Ethernet1/0 ip address 135.8.2.1 255.255.255.0 ip router isis ! router isis redistribute static ip metric 11 level-1 redistribute isis ip level-2 into level-1 distribute-list 100 passive-interface Loopback0 net 12.0020.0200.2002.00 ! !-- Valide le processus IS-IS sur le routeur !-- Rend l'interface Loopback 0 passive !-- Affecte l'area et l'identification système au routeur !-- Configure la redistribution de routes Level-2 vers Level-1 ! ip route 200.200.200.200 255.255.255.255 loopback0 ! !-- Route statique vers 200.200.200.200 via Loopback0 ! access-list 100 permit ip any any ! !-- Liste d'accès pour contrôler la redistribution de routes
Notez que la base de données Level-1 du routeur R2 montre que le bit overload n'est pas positionné dans son LSP de Level-1. IS-IS Level-1 LSP R2.00-00 LSPID LSP seq Num LSP Checksum LSP Holdtime ATT/P/OL R2.00-00 0x0000005D 0xC252 180 0/0/0 Area Address: 12 NLPID: 0xCC Hostname: R2 IP Address: 2.2.2.2 Metric: 10 IP 135.8.2.0 255.255.255.0 Metric: 10 IP 135.8.1.0 255.255.255.0 Metric: 0 IP 2.2.2.2 255.255.255.0 Metric: 10 IS R2.02 Metric: 10 IS R3.01 Metric: 11 IP-External 200.200.200.200 255.255.255.255 Metric:138 IP-Interarea 1.1.1.1 255.255.255.255 Quand nous regardons les routes apprises par le routeur R3, nous pouvons voir qu'il a appris l'adresse de Loopback 1.1.1.1 du routeur R1 de l'annonce entre Level-2 et level-1. Notez également que le routeur R3 a reçu la route statique redistribuée 200. 200.200.200/32. R3# show ip route isis <partie supprimée> 200.200.200.0/32 is subnetted, 1 subnets i L1 200.200.200.200 [115/21] via 135.8.2.2, Ethernet0/0 1.0.0.0/32 is subnetted, 1 subnets i ia 1.1.1.1 [115/148] via 135.8.2.2, Ethernet0/0 2.0.0.0/32 is subnetted, 1 subnets i L1 2.2.2.2 [115/10] via 135.8.2.2, Ethernet0/0 135.8.0.0/24 is subnetted, 2 subnets i L1 135.8.1.0 [115/20] via 135.8.2.2, Ethernet0/0 Maintenant configurons set-overload-bit sur le routeur R2 avec l'option suppress. Les routes internes et externes ne seront plus annoncées. La syntaxe de la commande est la suivante: [no] set-overload-bit [on-startup [timeout|wait-for-bgp]]|[suppress [interlevel| external]]] suppress interlevel empêche le routeur d'annoncer les routes apprises du Level-2. suppress external empêche la redistribution R2(config-router)# set-overload-bit suppress internal external
Regardons la base de données Level-1 du routeur R2 Regardons la base de données Level-1 du routeur R2. Nous voyons que le bit overload est positionné dans le LSP de Level-1. Les routes 200.200.200.200/32 et 1.1.1.1/32 ont été supprimée. Elles ne sont pas injectées dans la base données Level-1. IS-IS Level-1 LSP R2.00-00 LSPID LSP seq Num LSP Checksum LSP Holdtime ATT/P/OL R2.00-00 0x0000005F 0x23C6 266 0/0/1 Area Address: 12 NLPID: 0xCC Hostname: R2 IP Address: 2.2.2.2 Metric: 10 IP 135.8.2.0 255.255.255.0 Metric: 10 IP 135.8.1.0 255.255.255.0 Metric: 0 IP 2.2.2.2 255.255.255.0 Metric: 10 IS R2.02 Metric: 10 IS R3.01 Quand on exécute la commande debug isis update-packets sur le routeur R2, nous voyons "Important field changed" dans la sortie quand les LSP de Level-1 et Level-2 sont construits. Ceci indique que le contenu du LSP a changé en d'autres termes un nouveau LSP a été généré avec le bit overload positionné. Un nouveau LSP requiert le calcul complet du SPF. *Mar 1 03:16:08.987 UTC: ISIS-Upd: Building L1 LSP *Mar 1 03:16:08.987 UTC: ISIS-Upd: Important fields changed *Mar 1 03:16:08.987 UTC: ISIS-Upd: Full SPF required *Mar 1 03:16:08.987 UTC: ISIS-Upd: Building L2 LSP *Mar 1 03:16:08.987 UTC: ISIS-Upd: Full SPF required *Mar 1 03:16:09.035 UTC: ISIS-Upd: Sending L1 LSP 0020.0200.2002.00-00, seq 61, ht 299 on Ethernet0/0 *Mar 1 03:16:09.095 UTC: ISIS-Upd: Sending L2 LSP 0020.0200.2002.00-00, seq 65, ht 299 on Ethernet1/0 Le routeur R3 a mis sa table de routage à jour. Celle-ci ne contient plus les réseaux IP 200.200.200.200 et 1.1.1.1. R3#show ip route isis <Partie supprimée> 2.0.0.0/32 is subnetted, 1 subnets i L1 2.2.2.2 [115/10] via 135.8.2.2, Ethernet0/0 135.8.0.0/24 is subnetted, 2 subnets i L1 135.8.1.0 [115/20] via 135.8.2.2, Ethernet0/0