Arquitectura y flujo de tráfico
Esta sección describe la arquitectura y el flujo de tráfico del modo puente de NetScaler CPX. NetScaler CPX también se puede implementar en modo host.
Cuando se aprovisiona una instancia de NetScaler CPX en un host Docker, el motor Docker crea una interfaz virtual, eth0, en la instancia CPX. Esta interfaz eth0 está conectada directamente a una interfaz virtual (veth*) en el puente docker0. El motor Docker también asigna una dirección IP a la instancia de NetScaler CPX en la red 172.17.0.0/16.
La puerta de enlace predeterminada para la instancia CPX es la dirección IP del puente docker0, lo que significa que cualquier comunicación con la instancia de NetScaler CPX se realiza a través de la red Docker. Todo el tráfico entrante recibido del puente docker0 es recibido por la interfaz eth0 en la instancia de NetScaler CPX y procesado por el motor de paquetes de NetScaler CPX.
La siguiente figura ilustra la arquitectura de una instancia de NetScaler CPX en un host Docker.

Cómo funciona una única dirección IP en NetScaler CPX
Un dispositivo NetScaler MPX o VPX normal requiere al menos tres direcciones IP para funcionar:
- Dirección IP de administración llamada dirección IP de NetScaler (NSIP)
- Dirección IP de subred (SNIP) para comunicarse con la granja de servidores
- Dirección(es) IP de servidor virtual (VIP) para aceptar solicitudes de cliente
Una instancia de NetScaler CPX funciona con una única dirección IP que se utiliza tanto para la administración como para el tráfico de datos.
Durante el aprovisionamiento, el motor Docker asigna solo una dirección IP privada (dirección IP única) a una instancia de NetScaler CPX. Las tres funciones IP de una instancia de NetScaler se multiplexan en una única dirección IP. Esta única dirección IP utiliza diferentes números de puerto para funcionar como NSIP, SNIP y VIP(s).
La siguiente imagen ilustra cómo se utiliza una única dirección IP para realizar las funciones de NSIP, SNIP y VIP(s).

Flujo de tráfico para solicitudes originadas desde la instancia de NetScaler CPX
Docker configura implícitamente tablas IP y una regla NAT para dirigir el tráfico originado desde la instancia de NetScaler CPX a la dirección IP docker0.
La siguiente figura ilustra cómo una solicitud de ping originada desde una instancia de NetScaler CPX llega al destino.

En este ejemplo, la solicitud de ping es enviada por el motor de paquetes en la interfaz eth0 con la dirección IP de origen como la dirección IP de NetScaler CPX (172.17.0.4). El host de Docker, entonces, realiza la traducción de direcciones de red (NAT) para añadir la dirección IP del host (192.68.x.x) como la dirección IP de origen y envía la solicitud al destino (216.58.x.x). La respuesta de la dirección IP de destino sigue la misma ruta en sentido inverso. El host de Docker realiza NAT en la respuesta y reenvía la respuesta a la instancia de NetScaler CPX en la interfaz eth0.
Flujo de tráfico para solicitudes originadas desde la red externa
Para habilitar la comunicación externa, al aprovisionar NetScaler CPX, debe configurar parámetros para que Docker exponga ciertos puertos como el 80, el 22 y cualquier otro puerto que desee. Si no ha configurado ningún puerto para ser expuesto durante el aprovisionamiento, entonces debe configurar reglas NAT en el host de Docker para que estos puertos estén disponibles.
La solicitud del cliente que se origina en Internet es recibida por el host de Docker, que luego realiza la traducción de direcciones de puerto (PAT) para mapear la dirección IP pública y el puerto a la dirección IP única y el puerto de la instancia de NetScaler CPX, y reenvía el tráfico a la instancia.
La siguiente figura muestra cómo el host de Docker realiza la traducción de direcciones de puerto para dirigir el tráfico a la dirección IP única y el puerto de NetScaler CPX.

En este ejemplo, la dirección IP del host de Docker es 192.68.x.x y la dirección IP única de la instancia de NetScaler CPX es 172.17.0.4. El puerto SSH 22 de la instancia de NetScaler CPX se asigna al puerto 1100 en el host de Docker. La solicitud SSH del cliente se recibe en la dirección IP 192.68.x.x en el puerto 1100. El host de Docker realiza la traducción de direcciones de puerto para mapear esta dirección y puerto a la dirección IP única 172.17.0.4 en el puerto 22 y reenvía la solicitud del cliente.