Introducción
Este documento describe cómo lograr una optimización con requisitos mínimos de memoria para los routers BGP (Border Gateway Protocol).
Prerequisites
Requirements
No hay requisitos específicos para este documento.
Componentes Utilizados
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Convenciones
For more information on document conventions, refer to the Cisco Technical Tips Conventions.
Antecedentes
Este documento ilustra cómo lograr un routing óptimo en una red empresarial conectada a varios proveedores de servicios de Internet (ISP), al tiempo que se reducen los requisitos de memoria de los routers BGP (del inglés Border Gateway Protocol, protocolo de gateway fronterizo). Puede utilizar los filtros AS_PATH, que sólo aceptan rutas originadas desde un ISP y sus sistemas autónomos conectados directamente y no recibe la tabla de ruteo BGP completa de un ISP.
Esta sección provee un diagrama de red como ejemplo. En el ejemplo, puede filtrar las actualizaciones BGP entrantes en el Router 1 y el Router 2 para aceptar las rutas del ISP y las rutas del sistema autónomo conectado directamente. El Router 1 acepta rutas para ISP-A y su sistema autónomo C1 conectado directamente. De manera similar, el Router 2 acepta rutas para ISP-B y C2. El resto de las redes, que no pertenecen a los ISP y a su sistema autónomo cliente, utilizan la ruta predeterminada que apunta hacia ISP-A o ISP-B, según la política de ruteo de la empresa.
Puede observar cómo varía el uso de la memoria cuando el Router 1 acepta la tabla de ruteo BGP completa de aproximadamente 100.000 rutas provenientes de su ISP, a diferencia de cuando aplicamos los filtros AS_PATH hacia adentro en el Router 1.
Nota: el número real de prefijos que componen una fuente completa puede variar. Los valores de este documento sirven sólo como ejemplo. Los servidores de ruta pueden proporcionar un buen panorama de cuántos prefijos forman una tabla BGP completa.
Nota: todas las herramientas y sitios web internos son solo para clientes registrados de Cisco.
El router BGP recibe una tabla de ruteo BGP completa
Esta es la configuración del 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 |
El resultado del comando show ip bgp summary muestra que se han recibido 98.410 prefijos de ISP-A (vecino 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
El resultado del comando show ip route summary muestra que 80,132 rutas BGP están instaladas en la tabla de ruteo:
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
Este comando muestra la cantidad de memoria que el proceso BGP ocupa en 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
El proceso BGP utiliza aproximadamente 71 MB de memoria.
Router BGP configurado con lista de filtros AS_PATH
En este ejemplo, se aplica la lista de filtros de entrada para aceptar rutas originadas por ISP-A y sus sistemas autónomos conectados directamente. En el ejemplo, ISP-A anuncia una ruta predeterminada (0.0.0.0) a través de BGP externo (eBGP), de modo que las rutas que no pasan la lista de filtros utilizan la ruta predeterminada hacia ISP-A. Esta es la configuración para la lista de filtros:
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 |
Este resultado del comando show ip bgp summary muestra 31,667 prefijos recibidos de ISP-A (vecino 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
El resultado del comando show ip route summary muestra las rutas BGP 27,129 en la tabla de ruteo:
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 memoria utilizada por el proceso es de aproximadamente 28 MB, tal como se muestra a continuación:
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
Solución de problemas relacionados con la memoria
Para verificar la memoria utilizada por el proceso BGP, utilice el comando show processes memory | include bgp. A continuación se enumeran los problemas más comunes relacionados con un uso excesivo de la memoria:
-
Error de asignación de memoria "%SYS-2-MALLOCFAIL".
-
Sesiones Telnet denegadas.
-
No hay salida de algunos comandos show.
-
"Mensajes de error “Memoria insuficiente”.
-
"Mensajes de la consola "Unable to create EXEC - no memory or too many processes" (No se puede crear EXEC - no hay memoria o demasiados procesos).
-
Router colgado o falta de respuesta de la consola.
-
Si ejecuta debugs relacionados con BGP, generalmente causa un consumo excesivo de memoria, que también puede dar lugar a errores de memoria debido a BGP. Las depuraciones para BGP se deben ejecutar con precaución y se deben evitar si no son necesarias.
Cuando ejecuta las rutas BGP de Internet completas desde un par BGP, la cantidad de RAM necesaria depende de las características del dispositivo y de la escalabilidad. Sin embargo, dado el crecimiento continuo de las rutas de Internet, la memoria mínima necesaria puede ser de unos 8 GB de RAM o más.
El consumo de memoria por las rutas BGP depende del número de atributos, como el soporte de múltiples trayectorias, la reconfiguración de software, el número de peers y AS_PATH. Para obtener más detalles sobre el requisito de memoria BGP, consulte RFC 1774.
Conclusión
Este gráfico ilustra el ahorro de memoria al implementar la lista de filtros:
|
Número de prefijos |
Memoria consumida |
Sin filtrado |
98,410 |
70,882,248 |
Filtro de sistema autónomo |
31,667 |
28,132,528 |
Cuando el router BGP recibe su tabla de ruteo BGP completa de vecino (98,410 rutas), el router consume aproximadamente 71 MB. Con la aplicación de los filtros AS_PATH a actualizaciones entrantes, el tamaño de la tabla de ruteo BGP se reduce a 31,667 rutas, y el consumo de memoria es de aproximadamente 28 MB. Esta disminución de utilización de la memoria es de más del 60 por ciento con un ruteo óptimo.
Si revisa AS Internet Graph compilado por la Asociación Cooperativa para el Análisis de Datos de Internet (CAIDA), puede ver qué ISP tienen el mayor grado de interconectividad (los más cercanos al centro del gráfico). Con menos interconectividad, un número inferior de rutas pasa a través del filtro AS_PATH y el consumo de memoria BGP es también menor. Sin embargo, es importante tener en cuenta que siempre que se establecen filtros AS_PATH, debe configurar una ruta predeterminada (0/0). Las rutas que no pasan la lista de filtros AS_PATH utilizan la ruta predeterminada.
Información Relacionada