Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Encadenamiento de servicios de Contrail con CSRX

 

El encadenamiento de servicios es el concepto de reenviar el tráfico a través de varias entidades de red en un orden determinado y cada entidad de red realiza funciones específicas, como firewall, IPS, TDR, LB, etc. La manera heredada de realizar el encadenamiento de servicios sería utilizar dispositivos de HW independientes, pero esto hace que el encadenamiento de servicios sea inflexible, costoso y prolongado los tiempos de establecimiento. En las funciones de red de encadenamiento de servicios dinámicos se implementan como una VM o un contenedor y se pueden encadenar automáticamente de forma lógica. Por ejemplo, en la Figure 1 se utiliza contrail para encadenar servicios entre dos pods en dos redes distintas mediante un – servidor de seguridad cSRX de nivel 4 contenedor para proteger el tráfico entre ellos.

Figure 1: Encadenamiento de servicios
Encadenamiento de servicios
Note

Aquí se utilizan redes a la izquierda y a la’derecha para simplificar la simplicidad, para seguir el flujo de izquierda a derecha, pero puede utilizar sus propios nombres de Course. Asegúrese de configurar la red antes de conectar una caja Pod o de lo contrario no se creará el conjunto Pod.

Cómo reunir los pods de cliente y CSRX

Supongamos que’s crear dos redes virtuales usando este archivo YAML:

Verify using Kubectl:

Es’una buena costumbre confirmar que estas dos redes se encuentran ahora en contrail antes de continuar. En la Contrail UI, seleccione configurar redes > redes > > de dominio predeterminado en la Figure 2que se centra en la red de la izquierda.

Note

Si usa el espacio de nombres predeterminado en el archivo YAML de una red, lo creará en el dominio predeterminado del dominio y el proyecto K8S-default.

Figure 2: Confirmación de la creación de dos redes
Confirmación de la creación de dos redes

Crear pods de cliente

Ahora,’permita que s cree dos pods de Ubuntu, uno en cada red con el siguiente objeto de anotación:

Crear cSRX Pod

Ahora cree un Juniper cSRX contenedor que tenga una interfaz en la red de la izquierda y otra en la red correcta, con este archivo YAML:

Confirme que la ubicación de la interfaz está en la red correcta:

Note

Cada contenedor cuenta con una interfaz que pertenece a una red predeterminada para todo el clúster, independientemente de la utilización del objeto Annotations porque el objeto Annotations anterior crea y coloca una interfaz adicional en una red específica.

Comprobar PodIP

Para verificar el podIP, inicie sesión en el encajador izquierdo, pord y el cSRX para confirmar las direcciones IP/MAC:

Note

A diferencia de otros pods, el’cSRX no adquirió IP con DHCP, y comienza con la configuración predeterminada de fábrica, por lo que es necesario configurarlo.

Note

De forma predeterminada, cSRX eth0 solo es visible desde el Shell y se utiliza para la administración. Al conectar redes, la primera red conectada se asigna a eth1, que es GE-0/0/1, y la segunda adjunta se asigna a eth2, que es GE-0/0/0.

Configurar IP cSRX

Configure esta configuración básica en el cSRX. Para asignar la dirección IP correcta, utilice la asignación dirección MAC/IP de la kubectl describir la salida del comando Pod, así como para configurar la Directiva de seguridad predeterminada con el fin de permitir todo esto por ahora:

Compruebe la dirección IP asignada en el cSRX:

Una prueba de ping en el conjunto Pod izquierdo fallaría debido a que no hay ruta:

Agregue una ruta estática a los pods izquierdo y derecho y, a continuación, intente hacer ping de nuevo:

El ping sigue fallando, ya que’no creamos el encadenamiento de servicios, que también se ocupará de la ruta. Veamos’qué ha ocurrido con nuestros paquetes:

No’hay ninguna sesión en el cSRX. Para solucionar el problema de ping, inicie sesión en el nodo de cálculo cent22 que hospeda este contenedor para volcar el tráfico mediante TShark y Compruebe la ruta. Para obtener la interfaz que vincula los contenedores:

Tenga en cuenta que vif0/3 y vif0/4 están enlazados con el POD derecho y ambos vinculados con tapeth0-89a4e2 y tapeth1-89a4e2 respectivamente. Lo mismo se dirige al conjunto Pod izquierdo para Vif0/5 y Vif0/6 mientras que Vif0/7, VIF 0/8 y Vif0/9 se enlazan con cSRX1. También puedes ver el número de paquetes o bytes que se han encontrado en la interfaz, así como el VRF. VRF 3 es para la red de clústeres predeterminada, mientras VRF 6 es para la red izquierda y VRF 5 es para la red correcta. En la ilustración 10,3, puede ver la asignación de interfaz desde todas las perspectivas (contenedor, Linux, VR-Agent).

Figure 3: Asignación de interfaz
Asignación de interfaz

’Intente hacer ping de nuevo al conjunto Pod derecho desde la caja de la caja de la izquierda y utilice TShark en la interfaz de TAP del encajador adecuado para realizar una inspección más detallada:

Parece que ping’no me llega al encajado adecuado, deje que’visite la cSRX’en la interfaz de red izquierda:

Podemos ver el paquete pero no hay nada en el cSRX posibilidad de seguridad de quitar este paquete

Para comprobar la tabla de enrutamiento de la red VRF a la izquierda, inicie sesión en el contenedor vrouter_vrouter-agent_1 del nodo de cálculo:

Tenga en cuenta que 6 es el cuadro de enrutamiento VRF de la red de la izquierda; lo mismo en la tabla de enrutamiento adecuado de la red, pero falta una ruta:

Por lo tanto, incluso si todos los pods están hospedados en los mismos nodos de computación, éstos no se pueden’comunicar entre sí. Y si estos pods se alojan en distintos nodos computacionales, usted tiene un problema mayor. El encadenamiento’de servicios no es suficiente para ajustar las rutas en los contenedores, sino también para intercambiar rutas entre el vRouter entre los nodos de cálculo, independientemente de la ubicación del conjunto Pod (así como el ajuste automático si la caja Pod se movió a otro nodo de cálculo). Antes de que labbing encadenamiento’de servicios permita abordar una preocupación importante para los administradores de red que no son aficionados a este tipo de… solución de problemas de CLI, puede hacer lo mismo con la solución de problemas de la interfaz gráfica de usuario del controlador contrail.

Desde la interfaz de usuario del controlador de Contrail, seleccione supervisar enrutadores virtuales > > de infraestructura y, a continuación, seleccione el nodo que aloja la caja Pod, en nuestro caso cent22. local, como se muestra en la siguiente captura de pantalla, en la Figure 4.

Figure 4: GUI del controlador de Contrail en acción
GUI del controlador de Contrail en acción

La Figure 4 muestra la ficha interfaz, que equivale a ejecutar el comando VIF-l en el contenedor vrouter_vrouter-Agent-1, pero muestra incluso más información. Observe la asignación entre el identificador de instancia y la denominación de la interfaz de punteo, donde los seis primeros caracteres del identificador de instancia siempre se reflejan en nombre de interfaz de punteo.

Somos Cowboys de GUI. ’Seleccione las tablas de enrutamiento de cada VRF desplazándose a la ficha rutas y seleccione el VRF que desea ver, como en la Figure 5.

Figure 5: Comprobando las tablas de enrutamiento de cada VRF
Comprobando las tablas de enrutamiento de cada VRF

Seleccione la red de la izquierda. El nombre es más largo porque incluye el dominio (y Project). Puede confirmar que no hay un prefijo 10.20.20.0/24 de la red correcta. También puede comprobar el dirección MAC aprendidos en la red de la izquierda seleccionando L2, la interfaz gráfica de usuario equivalente al comando de puente de la familia RT--dump 6.

Encadenamiento de servicios

Ahora vamos’a s a utilizar el encSRX al encadenamiento de servicios mediante la interfaz gráfica de usuario de comandos de contrail. El encadenamiento de servicios consta de cuatro pasos que deben llevarse a cabo en orden:

  1. Crear una plantilla de servicio;
  2. Cree una instancia de servicio basada en la plantilla de servicio que se acaba de completar;
  3. Cree una directiva de red y seleccione la instancia de servicio que creó anteriormente;
  4. Aplicar esta directiva de red en la red.
Note

Dado que Contrail interfaz gráfica de usuario es la mejor solución para proporcionar un único punto de administración para todos los entornos, lo utilizaremos para desarrollar el cambio de servicio. Todavía puede usar la GUI del controlador de Contrail normal para crear encadenamiento de servicios.

Primero deje’que inicie sesión en contrail interfaz de usuario de comando (en nuestro https://10.85.188.16:9091/de instalación) tal como se muestra en la Figure 7y, a continuación, seleccione Service > Catalog > Create, como se muestra en la Figure 8.

Figure 6: Iniciar sesión en Contrail comando
Iniciar sesión en Contrail comando
Figure 7: Crear un nuevo servicio
Crear un nuevo servicio

Inserte un nombre de una plantilla de servicios, aquí myweb-cSRX-CS, luego elija la versión 2 y la máquina virtual para los modos de servicio. Elija en la red y en el cortafuegos como tipos de servicio, como se muestra en la Figure 9.

Figure 8: Elegir tipos de servicio
Elegir tipos de servicio

A continuación, seleccione Administración, a la izquierda y a la derecha, y haga clic en crear.

Figure 9: Crear servicio
Crear servicio

A continuación, seleccione implementación y haga clic en el botón crear para crear las instancias de servicio, tal y como se muestra en la Figure 11.

Figure 10: Implementar instancia de servicio
Implementar instancia de servicio

Asigne un nombre a esta instancia de servicio y, a continuación, seleccione en el menú desplegable el nombre de la plantilla que creó antes de elegir la correcta de la red de la cSRX sea la instancia (contenedor en ese caso) que realizará el encadenamiento de servicio. Haga clic en las tuplas de puerto para expandirlas como se muestra en la Figure 12. A continuación, para cada una de las tres interfaces, enlace una interfaz de la cSRX y, a continuación, haga clic en crear.

Figure 11: Expandiendo las tuplas de Puerto
Expandiendo las tuplas de Puerto
Note

El nombre de la interfaz’de máquina virtual no se muestra en el menú desplegable,’sino el ID de instancia. Puede identificarlo a partir del nombre de interfaz de TAP, como mencionamos anteriormente. En otras palabras, todo lo que hay que saber son los seis primeros caracteres de cualquier interfaz que pertenezca a ese contenedor. Todas las interfaces de una instancia determinada (VM o contenedor) comparten los mismos primeros caracteres.

Antes de continuar, asegúrese de que los Estados de las tres interfaces estén en funcionamiento y muestren la dirección IP correcta de la instancia de cSRX, como se muestra en la Figure 13.

Figure 12: Todas las interfaces en funcionamiento
Todas las interfaces en funcionamiento

Para crear la Directiva de red, vaya a superposición > directivas de red > crear como en la Figure 14.

Figure 13: Crear Directiva de red
Crear Directiva de red

Asigne un nombre a la Directiva de red y, a continuación, en la primera regla agregue la red a la izquierda como la red de origen y la red correcta como destino con la acción de Pass.

Figure 14: Origen y el destino
Origen y el destino

Seleccione la opción avanzada y adjunte la instancia de servicio a la que creó anteriormente y, a continuación, haga clic en el botón crear.

Figure 15: Asociando la instancia de servicio
Asociando la instancia de servicio

Para adjuntar esta directiva de red a la red, haga clic en red virtual en la columna situada más a la izquierda, seleccione la red de la izquierda y edite.

Figure 16: Asociar la Directiva a la red
Asociar la Directiva a la red

En directivas de red, seleccione la Directiva de red que acaba de crear en la lista del menú desplegable y, a continuación, haga clic en guardar. Haga lo mismo para la red correcta.

Figure 17: Guardar la Directiva de red
Guardar la Directiva de red

Comprobar encadenamiento de servicio

’Ahora, compruebe que el efecto de este servicio cambia en la ruta. En el nodo del control de módulo del controlador de Contrail (http://10.85.188.16:8143), seleccione supervisar > infraestructura > enrutador virtual y, a continuación, seleccione el nodo que alberga la caja Pod, en nuestro caso Cent22. local, seleccione la ficha rutas y seleccione el VRF izquierdo.

Figure 18: Comprobar encadenamiento de servicio
Comprobar encadenamiento de servicio

Puede ver que las rutas de host de red adecuadas se han perdido a la red de la izquierda (10.20.20.1/32, 10.20.20.2/32 en este caso).

Ahora deje’que s haga ping al encajador derecho desde el conjunto Pod izquierdo para ver la sesión creada en el cSRX:

Políticas de seguridad

Cree una política de seguridad en el cSRX para permitir solo HTTP y HTTPS:

El comando ping falla porque la Directiva del cSRX lo interrumpe:

Y, en el cSRX podemos ver la sesión crear: