Introduction
Ce document décrit comment obtenir une mémoire optimale avec des exigences minimales en matière de mémoire pour les routeurs BGP (Border Gateway Protocol).
Conditions préalables
Exigences
Aucune exigence spécifique n'est associée à ce document.
Composants utilisés
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Conventions
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
Informations générales
Ce document illustre comment parvenir à un routage optimal dans un réseau d'entreprise connecté à plusieurs fournisseurs de services Internet (ISP), tout en réduisant les besoins en mémoire des routeurs BGP (Border Gateway Protocol). Vous pouvez utiliser les filtres AS_PATH qui acceptent uniquement les routes provenant d'un FAI et de ses systèmes autonomes connectés directement et qui ne reçoivent pas la table de routage BGP complète d'un FAI.
Cette section fournit un schéma de réseau à titre d'exemple. Dans l'exemple, vous filtrez les mises à jour BGP entrantes sur les routeurs 1 et 2 pour accepter les routes du FAI et les routes du système autonome connecté directement. Le routeur 1 accepte les routes pour ISP-A et son système autonome C1 directement connecté. De même, le routeur 2 accepte les routes pour ISP-B et C2. Les autres réseaux, qui n’appartiennent pas aux FAI et à leur système autonome client, utilisent la route par défaut qui pointe vers FAI-A ou FAI-B, en fonction de la politique de routage de l’entreprise.
Vous pouvez observer comment l'utilisation de la mémoire varie lorsque le routeur 1 accepte la table de routage BGP complète d'environ 100 000 routes depuis son FAI, par rapport à lorsque vous appliquez des filtres AS_PATH entrants sur le routeur 1.
Remarque : le nombre réel de préfixes qui constituent un flux complet peut varier. Les valeurs de ce document servent uniquement d'exemple. Les serveurs de routage peuvent fournir une bonne idée du nombre de préfixes qui composent une table BGP complète.
Remarque : tous les outils et sites Web internes sont réservés aux clients Cisco enregistrés.
Le routeur BGP reçoit la table de routage BGP complète
Voici la configuration du routeur 1 :
Routeur 1 |
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 sortie de la commande show ip bgp summary montre que 98 410 préfixes ont été reçus d'ISP-A (voisin BGP 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
Le résultat de la commande show ip route summary montre que 80 132 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
Cette commande montre la quantité de mémoire que le processus BGP occupe dans la 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 utilise environ 71 Mo de mémoire.
Routeur BGP configuré avec la liste de filtres AS_PATH entrants
Dans cet exemple, vous appliquez la liste de filtres entrants pour accepter les routes provenant d'ISP-A et de ses systèmes autonomes connectés directement. Dans l'exemple, ISP-A annonce une route par défaut (0.0.0.0) via le protocole BGP externe (eBGP), de sorte que les routes qui ne passent pas la liste de filtres utilisent la route par défaut vers ISP-A. Voici la configuration de la liste de filtres :
Routeur 1 |
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
!--- This line filters inbound BGP updates.
!
ip as-path access-list 80 permit ^$
ip as-path access-list 85 permit ^701_[0-9]*$
!--- The AS_PATH list filters ISP and the directly connected autonomous system routes.
!
end |
La sortie de la commande show ip bgp summary affiche 31 667 préfixes reçus d'ISP-A (voisin 157.xx.xx.x) :
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
Le résultat de la commande show ip route summary montre 27 129 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'environ 28 Mo, comme indiqué ici :
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
Résolution des problèmes liés à la mémoire
Pour vérifier la mémoire utilisée par le processus BGP, utilisez la commande show processes memory | include bgp, commande. Les problèmes les plus courants liés à une surutilisation de la mémoire sont répertoriés ici :
-
Échec de l'allocation de mémoire « %SYS-2-MALLOCFAIL ».
-
Sessions Telnet refusées.
-
Aucune sortie de certaines commandes show.
-
Messages d'erreur « Mémoire insuffisante ».
-
Messages de console « Impossible de créer le mode d'exécution - pas de mémoire ou trop de processus ».
-
Blocage du routeur ou absence de réponse de la console.
-
Si vous exécutez des débogages liés au BGP, cela provoque généralement une consommation excessive de mémoire, ce qui peut également entraîner des erreurs de mémoire dues au BGP. Les débogages pour BGP doivent être exécutés avec prudence et doivent être évités s'ils ne sont pas requis.
Lorsque vous exécutez les routes BGP Internet complètes à partir d'un homologue BGP, la quantité de mémoire vive nécessaire dépend des caractéristiques et de l'évolutivité du périphérique. Cependant, étant donné la croissance continue des routes Internet, la mémoire minimale requise peut être d'environ 8 Go de RAM ou plus.
La consommation de mémoire par les routes BGP dépend du nombre d'attributs, tels que la prise en charge de trajets multiples, la reconfiguration logicielle, le nombre d'homologues et AS_PATH. Pour plus de détails sur les exigences de mémoire BGP, référez-vous à RFC 1774.
Conclusion
Ce graphique illustre les économies de mémoire réalisées lors de l'implémentation de la liste de filtres :
|
Nombre de préfixes |
Mémoire consommée |
Aucun filtrage |
98,410 |
70,882,248 |
Filtre de système autonome |
31,667 |
28,132,528 |
Lorsque le routeur BGP reçoit la table de routage BGP complète de son voisin (98 410 routes), il consomme environ 71 Mo. Avec les filtres AS_PATH appliqués aux mises à jour entrantes, la taille de la table de routage BGP est réduite à 31 667 routes et la consommation de mémoire est d'environ 28 Mo. Cette diminution de l'utilisation de la mémoire est de plus de 60 % avec un routage optimal.
Si vous examinez le AS Internet Graph compilé par la Cooperative Association for Internet Data Analysis (CAIDA), vous pouvez voir quels FAI ont le plus haut degré d'interconnectivité (ceux les plus proches du centre du graphique). Avec moins d'interconnectivité, moins de routes passent par le filtre AS_PATH, et la consommation de mémoire BGP est plus faible. Cependant, il est important de noter que chaque fois que des filtres AS_PATH sont définis, vous devez configurer une route par défaut (0/0). Les routes qui ne passent pas la liste de filtres AS_PATH utilisent la route par défaut.
Informations connexes