Einleitung
In diesem Dokument wird beschrieben, wie Sie optimale Leistung bei minimalen Speicheranforderungen für Border Gateway Protocol (BGP)-Router erzielen.
Voraussetzungen
Anforderungen
Es gibt keine spezifischen Anforderungen für dieses Dokument.
Verwendete Komponenten
Dieses Dokument ist nicht auf bestimmte Software- und Hardware-Versionen beschränkt.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Konventionen
Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).
Hintergrundinformationen
In diesem Dokument wird veranschaulicht, wie in einem Unternehmensnetzwerk, das mit mehreren Internet Service Providern (ISPs) verbunden ist, ein optimales Routing erreicht wird, während die Speicheranforderungen der Border Gateway Protocol (BGP)-Router reduziert werden. Sie können die AS_PATH-Filter verwenden, die nur Routen akzeptieren, die von einem ISP und seinen direkt verbundenen autonomen Systemen stammen, und die keine vollständige BGP-Routing-Tabelle von einem ISP erhalten.
In diesem Abschnitt finden Sie ein Netzwerkdiagramm als Beispiel. In diesem Beispiel filtern Sie eingehende BGP-Updates auf Router 1 und Router 2, um die Routen des ISP und die Routen des direkt verbundenen autonomen Systems zu akzeptieren. Router 1 akzeptiert Routen für ISP-A und sein direkt angeschlossenes autonomes System C1. Entsprechend akzeptiert Router 2 Routen für ISP-B und C2. Die übrigen Netzwerke, die nicht zu den ISPs und ihrem autonomen Client-System gehören, verwenden die Standardroute, die auf ISP-A oder ISP-B verweist, die auf der Routing-Richtlinie des Unternehmens basiert.
Sie können beobachten, wie sich die Speichernutzung ändert, wenn Router 1 die vollständige BGP-Routing-Tabelle mit ca. 100.000 Routen von seinem ISP akzeptiert, im Vergleich zu dem Fall, wenn Sie eingehende AS_PATH-Filter auf Router 1 anwenden.
Hinweis: Die tatsächliche Anzahl der Präfixe, aus denen ein vollständiger Feed besteht, kann variieren. Die Werte in diesem Dokument dienen nur als Beispiel. Routingserver können eine gute Vorstellung davon liefern, wie viele Präfixe eine vollständige BGP-Tabelle ausmachen.
Hinweis: Alle Tools und internen Websites sind nur für registrierte Cisco Kunden.
BGP-Router empfängt vollständige BGP-Routing-Tabelle
Dies ist die Konfiguration von Router 1:
Router 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 |
Der Befehl show ip bgp summary gibt an, dass 98.410 Präfixe von ISP-A (BGP-Nachbar 157.x.x.x) empfangen wurden:
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
Die Ausgabe des Befehls show ip route summary gibt an, dass 80.132 BGP-Routen in der Routing-Tabelle installiert sind:
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
Dieser Befehl zeigt den Arbeitsspeicher an, den der BGP-Prozess im RAM belegt:
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
Der BGP-Prozess benötigt ca. 71 MB Speicher.
Mit eingehender AS_PATH-Filterliste konfigurierter BGP-Router
In diesem Beispiel wenden Sie die eingehende Filterliste an, um Routen zu akzeptieren, die von ISP-A und seinen direkt verbundenen autonomen Systemen stammen. Im Beispiel kündigt ISP-A eine Standardroute (0.0.0.0) über ein externes BGP (eBGP) an, sodass Routen, die die Filterliste nicht weitergeben, die Standardroute zu ISP-A verwenden. Dies ist die Konfiguration für die Filterliste:
Router 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 |
Diese Ausgabe des Befehls show ip bgp summaryzeigt 31.667 Präfixe an, die vom ISP-A (Nachbar 157.xx.xx.x) empfangen wurden:
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
Der Befehl show ip route summary gibt 27.129 BGP-Routen in der Routing-Tabelle aus:
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
Der vom BGP-Prozess verwendete Arbeitsspeicher beträgt ca. 28 MB, wie hier gezeigt:
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
Fehlerbehebung bei speicherbezogenen Problemen
Um den vom BGP-Prozess verwendeten Speicher zu überprüfen, verwenden Sie den Arbeitsspeicher des show-Prozesses. | include bgp-Befehl. Die häufigsten Probleme im Zusammenhang mit einer Überlastung des Speichers sind hier aufgeführt:
-
Fehler bei der Speicherzuweisung "%SYS-2-MALLOCFAIL".
-
abgelehnte Telnet-Sitzungen.
-
Keine Ausgabe von einigen show-Befehlen.
-
Fehlermeldungen mit dem Vermerk "Zu wenig Speicher".
-
"EXEC konnte nicht erstellt werden - kein Arbeitsspeicher oder zu viele Prozesse" Konsolenmeldungen.
-
Router hängen geblieben oder keine Reaktion der Konsole.
-
Wenn Sie BGP-bezogene Debugs ausführen, führt dies in der Regel zu einer übermäßigen Speicherbelegung, die auch zu Speicherfehlern aufgrund von BGP führen kann. Debugging-Vorgänge für BGP müssen mit Vorsicht ausgeführt werden und sind zu vermeiden, wenn sie nicht erforderlich sind.
Wenn Sie die gesamten BGP-Internet-Routen von einem BGP-Peer ausführen, hängt die benötigte RAM-Größe von den Geräteeigenschaften und der Skalierbarkeit ab. Angesichts des kontinuierlichen Wachstums der Internet-Routen kann der erforderliche Mindestspeicher jedoch etwa 8 GB RAM oder mehr betragen.
Die Speicherbelegung durch die BGP-Routen hängt von der Anzahl der Attribute ab, z. B. von der Multipath-Unterstützung, der weichen Neukonfiguration, der Anzahl der Peers und AS_PATH. Weitere Informationen zu den BGP-Speicheranforderungen finden Sie unter RFC 1774.
Schlussfolgerung
Dieses Diagramm zeigt die Speichereinsparungen nach bei der Implementierung der Filterliste:
|
Anzahl der Präfixe |
Belegter Arbeitsspeicher |
Keine Filterung |
98,410 |
70,882,248 |
Autonome Systemfilter |
31,667 |
28,132,528 |
Erhält der BGP-Router die vollständige BGP-Routing-Tabelle seines Nachbarn (98.410 Routen), benötigt er etwa 71 MB. Wenn die AS_PATH-Filter auf eingehende Updates angewendet werden, wird die Größe der BGP-Routing-Tabelle auf 31.667 Routen reduziert, und der Speicherverbrauch beträgt ca. 28 MB. Diese Verringerung der Speichernutzung beträgt bei optimalem Routing mehr als 60 Prozent.
Wenn Sie den AS-Internetdiagramm betrachten, der von der Cooperative Association for Internet Data Analysis (CAIDA) erstellt wurde, können Sie sehen, welche ISPs den höchsten Grad an Interkonnektivität aufweisen (diejenigen, die der Mitte des Diagramms am nächsten sind). Bei weniger Verbindungen werden weniger Routen durch den AS_PATH-Filter geleitet, und der BGP-Speicherverbrauch ist geringer. Es ist jedoch wichtig zu beachten, dass Sie immer dann, wenn AS_PATH-Filter gesetzt sind, eine Standardroute (0/0) konfigurieren müssen. Routen, die die Filterliste AS_PATH nicht passieren, verwenden die Standardroute.
Zugehörige Informationen