¿Qué es RPD en contenedores?
El proceso de protocolo de enrutamiento en contenedores (cRPD) de Junos® es una instancia de la funcionalidad de enrutamiento de Junos OS instanciada dentro de un entorno basado en contenedores de Linux. cRPD proporciona enrutamiento nativo de la nube a la red. Empaquetamos el software cRPD como una imagen de contenedor de Docker. cRPD admite la funcionalidad del enrutador mediante IS-IS, OSPF y BGP en el dispositivo, como se muestra en la figura 3.
Beneficios del cRPD
-
Reducción del tiempo de despliegue: acelere la implementación mediante el uso de contenedores para reducir el tiempo de arranque del servicio de varios minutos a unos pocos segundos.
-
Actualización fluida: actualice el software con una interrupción mínima del servicio.
-
Flexibilidad: inicie varias instancias de cRPD con requisitos de recursos mínimos para admitir la escala de destino.
-
Estabilidad: proporcione un software de enrutamiento estable en Linux.
Descripción general de rpd en Linux
El proceso de protocolo de enrutamiento (rpd) de Junos es un proceso de software dentro del software del motor de enrutamiento. El rpd controla los protocolos de enrutamiento que se ejecutan en el dispositivo.
Como proceso de software, el rpd:
-
Funciona desde el centro de una pila de protocolos de enrutamiento basada en Linux.
-
Mantiene una o más tablas de enrutamiento, que consolidan la información de enrutamiento aprendida de todos los protocolos de enrutamiento.
-
Administra todos los mensajes de protocolo, actualizaciones de tabla de enrutamiento e implementa políticas de enrutamiento.
Puede usar la aplicación rpd para:
-
Ejecutar en contenedores de software. La aplicación cRPD permite soluciones de enrutamiento, como el reflector de ruta en contenedores (cRR). El servicio cRR debe funcionar de forma independiente.
-
Interactuar con procesos mgd para la administración, CLI para la configuración, BFD para detectar la viveza de los vínculos, proceso periódico de administración de paquetes (PPMD) y sesiones de actualización de protocolos.
-
Aprenda el estado de la ruta mediante varios protocolos de enrutamiento.
-
Mantenga el conjunto completo de información de enrutamiento en la base de información de enrutamiento (RIB), también conocida como tabla de enrutamiento.
-
Inicie todos los protocolos de enrutamiento configurados y maneje todos los mensajes de enrutamiento. El rpd mantiene una o varias tablas de enrutamiento, que consolidan la información de enrutamiento que el enrutador aprende de todos los protocolos de enrutamiento.
-
Implemente una política de enrutamiento con la que controle la información de enrutamiento que se mueve entre los protocolos de enrutamiento y la tabla de enrutamiento. Mediante la política de enrutamiento, puede filtrar y limitar la transferencia de información, así como establecer propiedades asociadas con rutas específicas.
-
Descargue las rutas que cumplen con los criterios de selección local en la base de información de reenvío (FIB), también conocida como tabla de reenvío.
-
Determine las rutas activas para los destinos de red a partir de la información de enrutamiento y programe estas rutas en la tabla de reenvío del motor de enrutamiento.
-
Aprenda los atributos de interfaz, como nombres, direcciones, configuración de unidad máxima de transmisión (MTU) y estado del vínculo a través de los mensajes de Netlink.
Descripción general de Docker
cRPD se ejecuta en cualquier sistema de distribución Linux que admita Docker.
Docker es una plataforma de software de código abierto que puede usar para crear, administrar y desmontar un contenedor virtual que se puede ejecutar en cualquier servidor Linux. Docker empaqueta aplicaciones en contenedores. Puede portar y usar estos contenedores en cualquier sistema operativo Linux. Un contenedor proporciona virtualización a nivel de SISTEMA operativo para una aplicación.
Los contenedores no funcionan como máquinas virtuales (VM); en lugar de aislar los entornos virtuales proporcionándoles CPU dedicada, memoria, E/S y capacidad de red.
Beneficios de los contenedores
-
Eficiencia mejorada mediante el aislamiento: los contenedores utilizan las funciones del kernel de Linux del sistema operativo host, como el aislamiento de grupos y espacios de nombres, para permitir que varios contenedores se ejecuten de forma aislada en el mismo sistema operativo de host Linux. Una aplicación en un contenedor menos memoria porque comparte el kernel del sistema operativo de su host Linux.
-
Mayor velocidad de arranque: los contenedores tardan menos tiempo en arrancar en comparación con las máquinas virtuales. Por lo tanto, puede usar contenedores para instalar, ejecutar y actualizar aplicaciones de manera rápida y eficiente.
La Figura 2 proporciona una descripción general de un entorno de contenedor de Docker típico.
¿Cómo funciona el cRPD?
Cuando inicia Docker, se crea automáticamente una red de puente predeterminada (también llamada bridge) y los contenedores se conectan a ella, a menos que se especifique lo contrario. Puede usar esta red de puente para ejecutar varios contenedores en el mismo host sin tener que asignar puertos dinámicos.
Un puente permite que los contenedores conectados a la misma red de puente se comuniquen, a la vez que proporciona aislamiento de los contenedores que no están conectados a la red de puente.
En modo de puente:
-
Los contenedores se conectan a la pila de red host a través de puentes.
-
Varios contenedores se conectan al mismo puente y se comunican entre sí.
-
Los puentes permiten la comunicación externa cuando se conectan a las interfaces de red del sistema operativo host.
Cuando implementa la aplicación RPD mediante un contenedor, la FIB expone las interfaces de red aprendidas por el núcleo del SO subyacente se envían al RPD en el contenedor de Linux. RPD aprende acerca de todas las interfaces de red y agrega el estado de ruta para todas las interfaces de red. Si se ejecutan contenedores docker adicionales en el sistema, todos los contenedores y las aplicaciones que se ejecutan directamente en el host pueden tener acceso al mismo conjunto de interfaces y estado de red. cRPD reenvía las rutas que cumplen con los criterios de selección de rutas locales al FIB.
Reflector de ruta
Puede implementar cRPD para proporcionar servicios de solo plano de control, como la reflexión de ruta del BGP.
El cRR se aloja en un hardware de servidor en la red diferente. Las aplicaciones utilizan la información de accesibilidad aprendida mediante el servicio de reflexión de rutas. El servicio de red de reflexión de ruta debe funcionar de forma independiente, sin depender del mismo hardware o de los controladores que alojan las aplicaciones.
Kernel del motor de enrutamiento
El software del motor de enrutamiento consta de varios procesos de software que controlan la funcionalidad del enrutador y un kernel que permite la comunicación entre todos los procesos.
El núcleo del motor de enrutamiento proporciona:
-
Vínculo entre las tablas de enrutamiento y la tabla de reenvío del motor de enrutamiento.
-
Comunicación con el motor de reenvío de paquetes. El kernel sincroniza la copia del motor de reenvío de paquetes de la tabla de reenvío con la copia principal en el motor de enrutamiento.
El host Linux kernel almacena la FIB, donde se almacenan todas las rutas y la información del próximo salto para el reenvío de paquetes.
El rpd se ejecuta de forma nativa en Linux y usa Netlink para compartir información de ruta del programa con el kernel de Linux. Netlink es una interfaz de kernel de Linux que se utiliza para la comunicación entre el núcleo y los procesos de espacio de usuario y entre diferentes procesos de espacio de usuario. cRPD es un ejemplo de un proceso de espacio de usuario.
Puede usar mensajes de Netlink para lo siguiente:
-
Programe o instale el estado FIB generado por el rpd en el kernel Linux.
-
Interactúe con mgd y CLI para la configuración y la administración.
-
Mantenga sesiones de protocolo mediante ppmd.
-
Detecte la vida con BFD.
Funciones compatibles en cRPD
cRPD admite las siguientes funciones:
-
Reflector de ruta BGP en los contenedores de Linux (LXC)
-
Ruta de complemento BGP, multiruta, modo de ayuda de reinicio agraciado
-
BGP, OSPF, OSPFv3, IS-IS y protocolos estáticos
-
BMP, BFD y FIB de Linux
-
Multiruta de igual costo (ECMP)
-
Kit de herramientas de extensión de Juniper (JET) para RPD programable (PRPD)
-
Junos OS CLI
-
Administración mediante interfaces abiertas NETCONF y SSH
-
Enrutamiento IPv4 e IPv6
-
Enrutamiento MPLS
Licencias
Necesita una licencia para activar las funciones del software cRPD. Para obtener más información acerca de las licencias de cRPD, consulte Funciones compatibles en cRPD, Licencias flexibles para cRPD y Administración de licencias de cRPD.