Implementar Citrix ADC CPX en una red multihost

Una instancia de Citrix ADC CPX en una red multihost 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 de análisis.

En una red de varios hosts, las instancias CPX de Citrix ADC, los servidores backend y los clientes se implementan en hosts diferentes. Puede utilizar topologías de varios hosts en implementaciones de producción en las que la instancia de Citrix ADC CPX equilibra la carga de un conjunto de aplicaciones y servidores basados en contenedores o incluso servidores físicos.

Topología 1: servidores Citrix ADC CPX y backend en el mismo host; cliente en una red diferente

En esta topología, la instancia de Citrix ADC 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 se puede utilizar en una implementación de producción en la que la instancia de Citrix ADC CPX equilibra la carga de un conjunto de aplicaciones o servidores basados en contenedores.

El siguiente diagrama ilustra esta topología.

Imagen localizada

En este ejemplo, la instancia CPX de Citrix ADC (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 otra parte de la red.

Las solicitudes de clientes que se originan en Internet se reciben en el VIP configurado en la instancia de Citrix ADC CPX, que luego distribuye las solicitudes entre los dos servidores.

Hay dos métodos que puede usar para configurar esta topología:

Método 1: uso de una dirección IP adicional y un puerto estándar para el VIP

  1. Configure el VIP en el contenedor Citrix ADC CPX mediante una dirección IP adicional.
  2. Configure una dirección IP adicional para el host de Docker.
  3. Configure las reglas NAT para reenviar todo el tráfico recibido en la dirección IP adicional del host Docker a la dirección IP adicional del VIP.
  4. Configure los dos servidores como servicios en la instancia de Citrix ADC CPX.
  5. Por último, vincule los servicios al VIP.

Tenga en cuenta que en este ejemplo de configuración, la red 10.x.x.x indica una red pública.

Para configurar este caso de ejemplo, ejecute los siguientes comandos mediante la función Trabajos en Citrix ADM o mediante 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 shell 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: utilizar la dirección IP de Citrix ADC CPX para el VIP y configurar la asignación de puertos:

  1. Configure la VIP y los dos servicios en la instancia de Citrix ADC CPX. Use un puerto no estándar, 81, con el VIP.
  2. Vincula los servicios al VIP.
  3. Configure una regla NAT para reenviar todo el tráfico recibido en el puerto 50000 del host Docker a la VIP y al puerto 81.

Para configurar este caso de ejemplo, ejecute el siguiente comando en el símbolo del shell de Linux mientras crea el contenedor Citrix ADC 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-->

Después de aprovisionar la instancia de Citrix ADC CPX, ejecute los siguientes comandos mediante la función Trabajos en Citrix ADM o mediante 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 CPX de Citrix ADC, configure una regla NAT ejecutando los siguientes comandos en el símbolo del shell 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: Citrix ADC CPX con servidores físicos y cliente

En esta topología, solo la instancia de Citrix ADC CPX se aprovisiona en un host 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 CPX de Citrix ADC para equilibrar la carga del tráfico en los servidores físicos.

En esta ilustración se ilustra esta topología.

Imagen localizada

En este ejemplo, el contenedor Citrix ADC CPX (172.17.0.4) se encuentra entre el cliente y los servidores físicos que actúan como proxy. Los servidores, DB1 (10.102.29.105) y DB2 (10.102.29.110), residen fuera de un host Docker en la red. La solicitud del cliente se origina en Internet y se recibe en Citrix ADC CPX, que la distribuye en los dos servidores.

Para habilitar esta comunicación entre el cliente y los servidores a través de Citrix ADC CPX, primero debe configurar la asignación de puertos al crear el contenedor Citrix ADC CPX. A continuación, configure los dos servicios en el contenedor Citrix ADC CPX para que representen los dos servidores. Y, por último, configure un servidor virtual mediante la dirección IP de Citrix ADC CPX y el puerto HTTP asignado no estándar 8080.

Tenga en cuenta que en la configuración de ejemplo, la red 10.x.x.x indica una red pública.

Para configurar este caso de ejemplo, ejecute el siguiente comando en el símbolo del shell de Linux mientras crea el contenedor Citrix ADC CPX:

    docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
<!--NeedCopy-->

A continuación, ejecute los siguientes comandos mediante la función Trabajos en Citrix ADM o mediante 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: Citrix ADC CPX y servidores aprovisionados en diferentes hosts

En esta topología, la instancia de Citrix ADC CPX y los servidores de base de datos se aprovisionan en diferentes hosts de Docker y el tráfico del cliente se origina en Internet. Esta topología se puede utilizar en una implementación de producción en la que la instancia de Citrix ADC CPX equilibra la carga de un conjunto de aplicaciones o servidores basados en contenedores.

El siguiente diagrama ilustra esta topología.

Imagen localizada

En este ejemplo, la instancia CPX de Citrix ADC 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 Docker diferentes, 10.102.29.105 y 10.102.29.110.

Las solicitudes de clientes que se originan en Internet se reciben en la instancia de Citrix ADC CPX, que luego distribuye las solicitudes en los cinco servidores. Para habilitar esta comunicación, debe configurar lo siguiente:

  1. Configure la asignación de puertos al crear su contenedor Citrix ADC 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.

  2. Configure los cinco servidores como servicios en la instancia de Citrix ADC CPX. Debe usar una combinación de la dirección IP del host Docker respectivo y el puerto asignado para configurar estos servicios.

  3. Configure una VIP en la instancia de Citrix ADC CPX para recibir la solicitud del cliente. Este VIP debe estar representado por la dirección IP de Citrix ADC CPX y el puerto 8080 que se asignó al puerto 8080 del host.

  4. Por último, vincule los servicios al VIP.

Tenga en cuenta que en la configuración de ejemplo, la red 10.x.x.x indica una red pública.

Para configurar este caso de ejemplo, ejecute el siguiente comando en el símbolo del shell de Linux mientras crea el contenedor Citrix ADC 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 mediante la función Trabajos en Citrix ADM o mediante 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-->
Implementar Citrix ADC CPX en una red multihost