Implementar NetScaler CPX en una red multi-host
Una instancia de NetScaler CPX en una red multi-host se puede configurar en una implementación de producción en el centro de datos donde proporciona funciones de equilibrio de carga. Además, puede proporcionar funciones de supervisión y datos analíticos.
En una red multi-host, las instancias de NetScaler CPX, los servidores back-end y los clientes se implementan en diferentes hosts. Puede utilizar topologías multi-host en implementaciones de producción donde la instancia de NetScaler CPX equilibra la carga de un conjunto de aplicaciones y servidores basados en contenedores o incluso servidores físicos.
Topología 1: NetScaler CPX y servidores back-end en el mismo host; cliente en una red diferente
En esta topología, la instancia de NetScaler CPX y los servidores de base de datos se aprovisionan en el mismo host de Docker, pero el tráfico del cliente se origina en otro lugar de la red. Esta topología podría utilizarse en una implementación de producción donde la instancia de NetScaler CPX equilibra la carga de un conjunto de aplicaciones o servidores basados en contenedores.
El siguiente diagrama ilustra esta topología.

En este ejemplo, la instancia de NetScaler CPX (172.17.0.4) y los dos servidores, DB1 (172.17.0.10) y DB2 (172.17.0.11), se aprovisionan en el mismo host de Docker con la dirección IP 10.102.29.100. El cliente reside en otro lugar de la red.
Las solicitudes de cliente que se originan en Internet se reciben en el VIP configurado en la instancia de NetScaler CPX, que luego distribuye las solicitudes entre los dos servidores.
Hay dos métodos que puede utilizar para configurar esta topología:
Método 1: Uso de una dirección IP adicional y un puerto estándar para el VIP
- Configure el VIP en el contenedor NetScaler CPX utilizando una dirección IP adicional.
- Configure una dirección IP adicional para el host de Docker.
- Configure reglas NAT para reenviar todo el tráfico recibido en la dirección IP adicional del host de Docker a la dirección IP adicional del VIP.
- Configure los dos servidores como servicios en la instancia de NetScaler CPX.
- Finalmente, vincule los servicios al VIP.
Tenga en cuenta que, en esta configuración de ejemplo, la red 10.x.x.x denota una red pública.
Para configurar este escenario de ejemplo, ejecute los siguientes comandos utilizando la función Trabajos en NetScaler® MAS o utilizando las API de NITRO:
add service s1 172.17.0.10 HTTP 80
add service s2 172.17.0.11 HTTP 80
add lb vserver cpx-vip HTTP 172.17.4.100 80
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2
<!--NeedCopy-->
Configure una dirección IP pública adicional para el host de Docker y una regla NAT ejecutando los siguientes comandos en el símbolo del sistema de Linux:
ip addr add 10.102.29.103/24 dev eth0
iptables -t nat -A PREROUTING -p ip -d 10.102.29.103 -j DNAT --to-destination 172.17.4.100
<!--NeedCopy-->
Método 2: Uso de la dirección IP de NetScaler CPX para el VIP y configuración de la asignación de puertos:
- Configure el VIP y los dos servicios en la instancia de NetScaler CPX. Utilice un puerto no estándar, el 81, con el VIP.
- Vincule los servicios al VIP.
- Configure una regla NAT para reenviar todo el tráfico recibido en el puerto 50000 del host de Docker al VIP y al puerto 81.
Para configurar este escenario de ejemplo, ejecute el siguiente comando en el símbolo del sistema de Linux mientras crea el contenedor NetScaler CPX en los tres hosts de Docker:
docker run -dt -p 22 -p 80 -p 161/udp -p 50000:81 --ulimit core=-1 --privileged=true cpx:6.2
<!--NeedCopy-->
Una vez aprovisionada la instancia de NetScaler CPX, ejecute los siguientes comandos utilizando la función Trabajos en NetScaler MAS o utilizando las API de NITRO:
add service s1 172.17.0.10 http 80
add service s2 172.17.0.11 http 80
add lb vserver cpx-vip HTTP 172.17.0.4 81
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2
<!--NeedCopy-->
Nota:
Si no ha configurado la asignación de puertos durante el aprovisionamiento de la instancia de NetScaler CPX, configure una regla NAT ejecutando los siguientes comandos en el símbolo del sistema de Linux:
iptables -t nat -A PREROUTING -p tcp -m addrtype –dst-type LOCAL -m tcp –dport 50000 -j DNAT –to-destination 172.17.0.4:81
Topología 2: NetScaler CPX con servidores físicos y cliente
En esta topología, solo la instancia de NetScaler CPX se aprovisiona en un host de Docker. El cliente y los servidores no están basados en contenedores y residen en otra parte de la red.
En este entorno, puede configurar la instancia de NetScaler CPX para equilibrar la carga del tráfico entre los servidores físicos.
La siguiente figura ilustra esta topología.

En este ejemplo, el contenedor NetScaler CPX (172.17.0.4) se sitúa entre el cliente y los servidores físicos actuando como proxy. Los servidores, DB1 (10.102.29.105) y DB2 (10.102.29.110), residen fuera de un host de Docker en la red. La solicitud del cliente se origina en Internet y se recibe en el NetScaler CPX, que la distribuye entre los dos servidores.
Para habilitar esta comunicación entre el cliente y los servidores a través de NetScaler CPX, primero debe configurar la asignación de puertos al crear el contenedor NetScaler CPX. Luego, configure los dos servicios en el contenedor NetScaler CPX para representar los dos servidores. Y finalmente, configure un servidor virtual utilizando la dirección IP de NetScaler CPX y el puerto HTTP 8080 asignado no estándar.
Tenga en cuenta que, en la configuración de ejemplo, la red 10.x.x.x denota una red pública.
Para configurar este escenario de ejemplo, ejecute el siguiente comando en el símbolo del sistema de Linux al crear el contenedor NetScaler CPX:
docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
<!--NeedCopy-->
Luego, ejecute los siguientes comandos utilizando la función Trabajos en NetScaler MAS o utilizando las API de NITRO:
add service s1 HTTP 10.102.29.105 80
add service s2 HTTP 10.102.29.110 80
add lb vserver cpx-vip HTTP 172.17.0.4 8080
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2
<!--NeedCopy-->
Topología 3: NetScaler CPX y servidores aprovisionados en diferentes hosts
En esta topología, la instancia de NetScaler CPX y los servidores de bases de datos se aprovisionan en diferentes hosts de Docker, y el tráfico del cliente se origina en Internet. Esta topología podría utilizarse en una implementación de producción donde la instancia de NetScaler CPX equilibra la carga de un conjunto de aplicaciones o servidores basados en contenedores.
El siguiente diagrama ilustra esta topología.

En este ejemplo, la instancia de NetScaler CPX y un servidor (DB1) se aprovisionan en el mismo host de Docker con la dirección IP 10.102.29.100. Otros cuatro servidores (DB2, DB3, DB4 y DB5) se aprovisionan en dos hosts de Docker diferentes, 10.102.29.105 y 10.102.29.110.
Las solicitudes de cliente que se originan en Internet se reciben en la instancia de NetScaler CPX, que luego distribuye las solicitudes entre los cinco servidores. Para habilitar esta comunicación, debe configurar lo siguiente:
-
Configure la asignación de puertos al crear su contenedor NetScaler CPX. En este ejemplo, esto significa que debe reenviar el puerto 8080 del contenedor al puerto 8080 del host. Cuando la solicitud del cliente llega al puerto 8080 del host, se asigna al puerto 8080 del contenedor CPX.
-
Configure los cinco servidores como servicios en la instancia de NetScaler CPX. Debe utilizar una combinación de la dirección IP del host de Docker respectivo y el puerto asignado para configurar estos servicios.
-
Configure una VIP en la instancia de NetScaler CPX para recibir la solicitud del cliente. Esta VIP debe estar representada por la dirección IP de NetScaler CPX y el puerto 8080 que se asignó al puerto 8080 del host.
-
Finalmente, vincule los servicios a la VIP.
Tenga en cuenta que, en la configuración de ejemplo, la red 10.x.x.x denota una red pública.
Para configurar este escenario de ejemplo, ejecute el siguiente comando en el símbolo del sistema de Linux mientras crea el contenedor de NetScaler CPX:
docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
<!--NeedCopy-->
Ejecute los siguientes comandos utilizando la función Jobs en NetScaler MAS o utilizando las API de NITRO:
add service s1 10.102.29.100 HTTP 8081
add service s2 10.102.29.105 HTTP 8081
add service s3 10.102.29.105 HTTP 8082
add service s4 10.102.29.110 HTTP 8081
add service s5 10.102.29.110 HTTP 8082
add lb vserver cpx-vip HTTP 172.17.0.2 8080
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2
bind lb vserver cpx-vip s3
bind lb vserver cpx-vip s4
bind lb vserver cpx-vip s5
<!--NeedCopy-->