Réduction de l'utilisation Mémoire BGP - Routage Optimal Réduction de l'utilisation Mémoire ccnp_cch
Sommaire • Introduction • Prérequis • Rappels • BGP reçoit la table BGP complète • BGP est configuré avec "Inbound AS-PATH filter list" • Résolution de problèmes mémoire • Conclusion ccnp_cch
Introduction Ce document montre comment réaliser un routage optimal de haut degré dans un ré- seau d'entreprise connecté à plusieurs fournisseurs d'accès Internet tout en minimisant les exigences mémoire des routeurs BGP (Border Gataway Protocol). Ceci est réalisé en utilisant des filtres AS_PATH pour accepter uniquement les routes issues d'un FAI et de son systme autonome (AS) directement connecté au lieu de recevoir la totalité de la ta- ble de routage. Prérequis Il n'y a pas de prérequis spécifiques pour l'utilisation de ce document. Rappels En utilisant le schéma de réseau ci-après, nous filtrons les mises à jour BGP entrantes sur le routeur R1 et le routeur R2 pour accepter les routes des FAIs et des AS directe- ment connectés. Le routeur R1 accepte les routes du FAI-A et de son AS directement connecté C1. De manière similaire le routeur R2 accepte les routes du FAI-B et de son AS directement connecté C2. Le reste des routes des réseaux qui n'appartiennent pas aux FAIs et à leurs AS clients suivent la route par défaut pointant vers le FAI-A ou le FAI-B selon la politique de routage de l'entreprise. C1 ISP-A Routeur R1 Entreprise Internet Routeur R2 ISP-B C2 C2 ccnp_cch
Maintenant observons comment l'utilisation mémoire varie quand le routeur R1 accep- te la table de routage BGP complète d'une capacité de 100000 routes environ de son FAI comparée à celle utilisée quand nous appliquons le filtre AS_PATH sur le routeur R1. BGP reçoit la table BGP complète Routeur R1 Current configuration hostname R1 ! router bgp xx no synchronization neighbor 157.x.x.x remote-as 701 neighbor 157.x.x.x filter-list 80 out ! ip as-path access-list 80 permit ^$ ! end La commande show ip bgp summary montre que 98410 préfixes ont été reçus du FAI-A (bgp neighbor 157.x.x.x) R1#show ip bgp summary BGP router identifier 65.yy.yy.y, local AS number XX BGP table version is 611571, main routing table version 611571 98769 network entries and 146299 paths using 14847357 bytes of memory 23658 BGP path attribute entries using 1419480 bytes of memory 20439 BGP AS-PATH entries using 516828 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 5843 BGP filter-list cache entries using 70116 bytes of memory BGP activity 534001/1904280 prefixes, 2371419/2225120 paths, scan interval 15 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 165.yy.yy.a 4 6xx9 32962 826287 611571 0 0 01:56:13 1 165.yy.yy.b 4 6xx9 32961 855737 611571 0 0 01:56:12 1 165.yy.yy.c 4 6xx9 569699 865164 611571 1 0 01:55:39 47885 157.x.x.x 4 701 3139774 262532 611571 0 0 00:07:24 98410 ccnp_cch
La sortie de la commande show ip route summary montre que 80132 routes BGP sont installées dans la table de routage. R1#show ip route summary IP routing table name is Default-IP-Routing-Table(0) Route Source Networks Subnets Overhead Memory (bytes) connected 0 4 256 576 static 0 1 64 144 eigrp 6 0 5 768 720 bgp XX 80132 18622 6320256 14326656 External: 87616 Internal: 11138 Local: 0 internal 854 994056 Total 80986 18632 6321344 15322152 Maintenant regardons combien de mémoire le processus BGP occupe en RAM. R1#show processes memory | begin BGP PID TTY Allocated Freed Holding Getbufs Retbufs Process 73 0 678981156 89816736 70811036 0 0 BGP Router 74 0 2968320 419750112 61388 1327064 832 BGP I/O 75 0 0 8270540 9824 0 0 BGP Scanner 70882248 Total BGP 77465892 Total all processes Le processus BGP occupe environ 71 Moctets de mémoire. BGP est configuré avec "Inbound AS-PATH filter list" Dans cet exemple, nous appliquons un filtre en entrée pour accepter les routes issues du FAI-A et des AS directement connectés. Dans notre exemple, le FAI-A annonce la route par défaut (0.0.0.0) via eBGP ainsi les routes qui ne passent pas le filtre suivent la route par défaut vers le FAI-A. Routeur R1 Current configuration hostname R1 ! router bgp XX no synchronization . neighbor 157.x.x.x remote-as 701 neighbor 157.x.x.x filter-list 80 out neighbor 157.x.x.x filter-list 85 in !-- Cette ligne filtre les mises à jour BGP entrantes ! ip as-path access-list 80 permit ^$ ip as-path access-list 85 permit ^701_[0-9]*$ !-- AS_PATH filter list filtre le FAI and les routes des AS !-- directement connectés end ccnp_cch
La sortie de la commande show ip bgp summary montre que 31667 préfixes ont été reçus du FAI-A (neighbor 157.xxx.xxx.xxx). R1#show ip bgp summary BGP router identifier 165.yy.yy.y, local AS number XX BGP table version is 92465, main routing table version 92465 36575 network entries and 49095 paths using 5315195 bytes of memory 4015 BGP path attribute entries using 241860 bytes of memory 3259 BGP AS-PATH entries using 78360 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 4028 BGP filter-list cache entries using 48336 bytes of memory BGP activity 1735069/3741144 prefixes, 4596920/4547825 paths, scan interval 15 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 165.yy.yy.a 4 6319 226694 1787061 92465 0 0 17:31:04 1 165.yy.yy.b 4 6319 226814 1806986 92465 0 0 19:51:53 1 165.yy.yy.c 4 6319 1041069 1822703 92465 0 0 19:44:52 17424 157.xx.xx.x 4 701 14452518 456341 92465 0 0 19:51:37 31667 La sortie de la commande show ip route summary montre 27129 routes BGP dans la table de routage. R1#show ip route summary IP routing table name is Default-IP-Routing-Table(0) Route Source Networks Subnets Overhead Memory (bytes) connected 0 4 256 576 static 0 1 64 144 eigrp 6319 0 6 896 864 bgp 6319 27129 9424 2339392 5299332 External: 19134 Internal: 17419 Local: 0 internal 518 602952 Total 27647 9435 2340608 5903868 La mémoire utilisée par le processus BGP est d'approximativement 28 Moctets. R1#show processes memory | include BGP PID TTY Allocated Freed Holding Getbufs Retbufs Process 73 0 900742224 186644540 28115880 0 0 BGP Router 74 0 5315232 556232160 6824 2478452 832 BGP I/O 75 0 0 39041008 9824 0 0 BGP Scanner 28132528 Total BGP 34665820 Total all memory ccnp_cch
Résolution de problèmes mémoire Pour vérifier la quantité de mémoire utilisée par le processus BGP, utilisez la comman- de show processus memory|include bgp. Les problèmes les plus courants relatifs à une sur-utilisation de la mémoire sont listés ci-dessous. • Problème d'allocation mémoire "%SYS-2-MALLOCFAIL" • Connexions Telnet refusées • Pas de sortie pour quelques commandes show • Messages d'erreur "Low on memory" • "Unable to create EXEC" - no memory or too many memory processes" messages sur la console. • Arrêt du routeur pas de réponse de la console. Il est recommandé d'avoir 128 Moctets de RAM dans un routeur pour stocker la totalité de la table de routage global BGP venant d'un voisin BGP. Sur un Catalyst 6000 rece- vant une table complète, il est recommandé d'avoir une carte MSFC2 avec 256 Moctets de RAM pour éviter le bug CSCdt13244. La mémoire consommée par les routes BGP dépend du nombre d'attributs tels que support multi-chemins, reconfiguration soft, nombre de voisinages et AS_PATH. Pour plus d'informations sur les prérequis mémoire pour BGP reférez-vous au RFC1774. La commutation Cisco Express Forwarding (CEF/dCEF) consomme de la mémoire pro- portionnellement à la taille de la table de routage. Il y a deux principaux composants dans CEF. • La FIB - Forwarding Information Base • La table d'adjacence. Les deux tables sont stockées dans la RAM. Assurez-vous que le VIP (Versatile Interface Processor) ou la carte de ligne contient suffisamment de mémoire RAM. Les messages d'erreur "%FIB-3-FIBDISABLE:Fatal error, slot[#]:no memory" et "%FIB-3-NOMEM" in- diquent un manque de mémoire dans les cartes. Il est particulèrement recommandé de vérifiez le VIP ou la carte de ligne avant de con- figurer dCEF. Exécutez les étapes suivantes pour vérifier la mémoire. 1. Configurez CEF de manière globale en exécutant la commande ip cef en mode de configuration global. 2. Attendez que la table FIB centrale soit construite ensuite afficher la taille de la table FIB centrale en exécutant la commande show ip cef summary. 3. Déterminez si le VIP ou la carte de ligne a suffisamment d'espace mémoire disponi- ble pour stocker une table FIB de taille similaire. Exécutez la commande show controller vip [slot#] et vérifiez la sortie de la commande show memory summary. Lorsque toutes les routes BGP Internet sont gérées, il est recommandé d'avoir au moins 128 Moctets sur le VIP ou la carte de ligne. ccnp_cch
Conclusion Le tableau suivant fait une comparaison entre les valeurs lorsque toutes les routes sont acceptées et lorsqu'il y a implémentation d'un filtre. Nombre de Préfixes Mémoire consommée Toutes les routes 98410 70882248 Filtre AS_PATH 31667 28132528 Quand les routeurs BGP reçoivent toutes la totalité de la table BGP constituée de 98410 routes, le routeur consomme environ 71 Moctets de mémoire RAM. Avec les filtres AS_PATH appliqués aux mises à jour de routage entrantes, la taille de la table de routage BGP est réduite à 31667 routes et la mémoire RAM consommée est d'en- viron 28 Moctets. Le gain de place mémoire est supérieur à 60% avec un routage optimal. Si vous regardez le graphique des AS Internet par CAIDA, vous pouvez voir quels sont les FAIs qui ont le degré de connectivité le plus élevé (ceux les plus près du centre du graphe). Plus l'interconnectivité de votre FAI est faible moins il y a de routes qui pas- sent le filtre AS_PATH et moins il y a de consommation mémoire par BGP. Toutefois, il est important de noter que chaque fois que les filtres AS_PATH sont configurés, vous avez besoin de configurer une route par défaut (0/0). Les routes qui ne passent le filtre AS_PATH suivent la route par défaut. ccnp_cch