Citrix ADC

Caso de uso 7: Configurar el equilibrio de carga en modo DSR mediante IP sobre IP

Puede configurar un dispositivo Citrix ADC para utilizar el modo de Direct Server Return (DSR) en redes de capa 3 mediante túnel IP, también denominado configuración IP sobre IP. Al igual que con las configuraciones de equilibrio de carga estándar para el modo DSR, esto permite a los servidores responder directamente a los clientes en lugar de utilizar una ruta de retorno a través del dispositivo Citrix ADC. Esto mejora el tiempo de respuesta y el rendimiento. Al igual que con el modo DSR estándar, el dispositivo Citrix ADC supervisa los servidores y realiza comprobaciones de estado en los puertos de la aplicación.

Con la configuración de IP sobre IP, el dispositivo Citrix ADC y los servidores no necesitan estar en la misma subred de Capa 2. En cambio, el dispositivo Citrix ADC encapsula los paquetes antes de enviarlos al servidor de destino. Después de que el servidor de destino recibe los paquetes, descapsulará los paquetes y, a continuación, envía sus respuestas directamente al cliente. Esto se conoce a menudo como L3DSR.

Para configurar el modo L3-DSR en el dispositivo Citrix ADC:

  • Cree un servidor virtual de equilibrio de carga. Establezca el modo en IPTUNNEL y habilite el seguimiento sin sesión.
  • Cree servicios. Cree un servicio para cada aplicación de back-end y vincule los servicios al servidor virtual.
  • Configurar para descapsulación. Configure un dispositivo Citrix ADC o un servidor back-end para que actúe como desencapsulador.

    Nota:

    Cuando utiliza un dispositivo Citrix ADC, la configuración de descapsulación es un túnel IP entre los dispositivos ADC con el back-end que realiza L2DSR en los servidores reales.

Configurar un servidor virtual de equilibrio de carga

Configure un servidor virtual para gestionar las solicitudes a sus aplicaciones. Asigne el tipo de servicio que coincida con el servicio o utilice un tipo de ANY para varios servicios. Establezca el método de reenvío en IPTUNNEL y permita que el servidor virtual funcione en modo sin sesión. Configure cualquier método de equilibrio de carga que desee utilizar.

Para crear y configurar un servidor virtual de equilibrio de carga para IP sobre IP DSR mediante la interfaz de línea de comandos

En el símbolo del sistema, escriba el siguiente comando para configurar un servidor virtual de equilibrio de carga para IP sobre IP DSR y verificar la configuración:

add lb vserver <name> serviceType <serviceType> IPAddress <ip> Port <port> -lbMethod <method> -m <ipTunnelTag> -sessionless [ENABLED | DISABLED]

show lb vserver <name>
<!--NeedCopy-->

Ejemplo:

En el siguiente ejemplo, seleccionamos el método de equilibrio de carga como SourceIPhash y configuramos el equilibrio de carga sin sesión.

add lb vserver Vserver-LB-1 ANY 1.1.1.80 * -lbMethod SourceIPHash -m IPTUNNEL -sessionless ENABLED
<!--NeedCopy-->

Para crear y configurar un servidor virtual de equilibrio de carga para IP sobre IP DSR mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
  2. Cree un servidor virtual y especifique el modo de redirección como basado en túnel IP.

Configurar servicios para IP sobre IP DSR

Después de crear el servidor con equilibrio de carga, configure un servicio para cada una de las aplicaciones. El servicio controla el tráfico desde el dispositivo Citrix ADC a esas aplicaciones y permite que el dispositivo Citrix ADC supervise el estado de cada aplicación.

Asigne los servicios para utilizar el modo USIP y vincule un monitor de tipo IPTUNNEL al servicio para la supervisión basada en túneles.

Para crear y configurar un servicio para IP sobre IP DSR mediante la interfaz de línea de comandos

En el símbolo del sistema, escriba los siguientes comandos para crear un servicio y, opcionalmente, crear un monitor y vincularlo al servicio:

add service <serviceName> <serverName> <serviceType> <port> -usip <usip>

add monitor <monitorName> <monitorType> -destip <ip> -iptunnel <iptunnel>

bind service <serviceName> -monitorName <monitorName>
<!--NeedCopy-->

Ejemplo:

En el siguiente ejemplo, se crea un monitor de tipo IPTUNNEL.

add monitor mon_DSR PING -destip 1.1.1.80 -iptunnel yes
add service svc_DSR01 2.2.2.100 ANY * -usip yes
bind service svc_DSR01 -monitorName mon_DSR
<!--NeedCopy-->

Un enfoque alternativo para simplificar la redirección tanto en el servidor como en el dispositivo ADC es configurar el ADC y el servidor para que utilicen una IP desde la misma subred. Al hacerlo, se garantiza que cualquier tráfico con destino de un extremo de túnel se envíe a través del túnel. En el ejemplo, se utiliza 10.0.1.0/30.

Nota:

El objetivo del monitor es garantizar que el túnel esté activo alcanzando el bucle inactivo de cada servidor a través del túnel IP. Si el servicio no está activo, compruebe si la redirección IP externo entre ADC y el servidor es correcto. Compruebe también si se puede acceder a las direcciones IP internas a través del túnel IP. Es posible que se requieran rutas en el servidor o que se agregue PBR a ADC en función de la implementación elegida.

Ejemplo:

add ns ip 10.0.1.2 255.255.255.252 -vServer DISABLED
add netProfile netProfile_DSR -srcIP 10.0.1.2
add lb monitor mon_DSR PING -LRTM DISABLED -destIP 1.1.1.80 -ipTunnel YES -netProfile netProfile_DSR
<!--NeedCopy-->

Para configurar un monitor mediante la GUI

  1. Vaya a Administración del tráfico > Equilibrio de carga > Monitores.
  2. Cree un monitor y seleccione IP Tunnel.

Para crear y configurar un servicio para IP sobre IP DSR mediante la interfaz gráfica de usuario

  1. Vaya a Traffic Management > Load Balancing > Services.
  2. Cree un servicio y, en la ficha Configuración, seleccione Usar dirección IP de origen.

Para enlazar un servicio a un servidor virtual de equilibrio de carga mediante la interfaz de línea de comandos

En el símbolo del sistema, escriba el siguiente comando:

bind lb vserver <name> <serviceName>
<!--NeedCopy-->

Ejemplo:

bind lb vserver Vserver-LB-1 Service-DSR-1
<!--NeedCopy-->

Para enlazar un servicio a un servidor virtual de equilibrio de carga mediante la GUI

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
  2. Abra un servidor virtual y haga clic en la sección Servicios para enlazar un servicio al servidor virtual.

Uso de la dirección IP del cliente en el encabezado externo de los paquetes de túnel

Citrix ADC admite el uso de la dirección IP de origen del cliente como dirección IP de origen en el encabezado externo de los paquetes de túnel relacionados con el modo de Direct Server Return mediante túnel IP. Esta función es compatible con DSR con IPv4 y DSR con modos de túnel IPv6. Para habilitar esta función, habilite el parámetro use la dirección IP de origen del cliente para IPv4 o IPv6. Esta configuración se aplica globalmente a todas las configuraciones DSR que utilizan túnel IP.

Para utilizar una dirección IP de origen cliente como dirección IP de origen mediante la CLI

En el símbolo del sistema, escriba:

  • set iptunnelparam -useclientsourceip [YES | NO]
  • show iptunnelparam

Para utilizar la dirección IP de origen del cliente como dirección IP de origen mediante la GUI

  1. Vaya a Sistema > Red.
  2. En la ficha Configuración, haga clic en Configuración global del túnel IPv4.
  3. En la página Configurar parámetros globales del túnel IPv4, seleccione la casilla de verificación Usar IP de origen del cliente.
  4. Haga clic en Aceptar.

Para utilizar la dirección IP de origen del cliente como dirección IP de origen mediante la CLI

En el símbolo del sistema, escriba:

  • set ip6tunnelparam -useclientsourceip [YES | NO]
  • show ip6tunnelparam

Para utilizar la dirección IP de origen del cliente como dirección IP de origen mediante la GUI

  1. Vaya a Sistema > Red.
  2. En la ficha Configuración, haga clic en Configuración global del túnel IPv6.
  3. En la página Configurar parámetros globales del túnel IPv6, seleccione la casilla de verificación Usar IP de origen del cliente.
  4. Haga clic en Aceptar.

Configuración de descapsulación

Puede configurar un dispositivo Citrix ADC o un servidor back-end como descapsulación.

Descapsulación Citrix ADC

Cuando se utiliza un dispositivo Citrix ADC como descapsulación, se debe crear un túnel IP en el dispositivo Citrix ADC. Para obtener más información, consulte Configuración de túneles IP.

La configuración de descapsulación de Citrix ADC consta de los dos servidores virtuales siguientes:

  • El primer servidor virtual recibe el paquete encapsulado y elimina la encapsulación IP externa.
  • El segundo servidor virtual tiene la IP del servicio original en el ADC front-end y utiliza la traducción MAC para reenviar el paquete hacia el back-end mediante la dirección MAC de los servicios vinculados. Esta configuración se conoce normalmente como L2DSR. Asegúrese de inhabilitar ARP en este servidor virtual.

Configuración de ejemplo:

En la siguiente ilustración se muestra una configuración de descapsulación mediante los dispositivos ADC.

Configuración de descapsulación ADC

La configuración completa necesaria para la configuración es la siguiente.

Configuración ADC front-end:

add service svc_DSR01 2.2.2.80 ANY * -usip YES -useproxyport NO
add lb vserver vip_DSR_ENCAP ANY 1.1.1.80 * -lbMethod SOURCEIPHASH -m IPTUNNEL -sessionless ENABLED
bind lb vserver vip_DSR_ENCAP svc_DSR01
<!--NeedCopy-->

Configuración de ADC back-end:

add ipTunnel DSR-IPIP 1.1.1.100 255.255.255.255 *

add service svc_DSR01_01 2.2.2.101 ANY * -usip YES -useproxyport NO
add service svc_DSR01_02 2.2.2.102 ANY * -usip YES -useproxyport NO
add service svc_DSR01_03 2.2.2.103 ANY * -usip YES -useproxyport NO

add lb vserver vs_DSR_DECAP ANY 2.2.2.80 * -lbMethod SOURCEIPHASH -m IPTUNNEL -sessionless ENABLED -netProfile netProf_DSR_MBF_noIP

add ns ip 1.1.1.80 255.255.255.255 -type VIP -arp DISABLED -snmp DISABLED
add lb vserver vs_DSR_Relay ANY 1.1.1.80 * -lbMethod SOURCEIPHASH -m MAC -sessionless ENABLED

bind lb vserver vs_DSR_DECAP svc_DSR01_01
bind lb vserver vs_DSR_DECAP svc_DSR01_02
bind lb vserver vs_DSR_DECAP svc_DSR01_03

bind lb vserver vip_DSR_Relay svc_DSR01_01
bind lb vserver vip_DSR_Relay svc_DSR01_02
bind lb vserver vip_DSR_Relay svc_DSR01_03

add netProfile netProf_DSR_MBF_noIP -MBF ENABLED
add lb monitor mon_DSR_MAC PING -netProfile netProf_DSR_MBF_noIP
bind service svc_DSR01_01 -monitorName mon_DSR_MAC
bind service svc_DSR01_02 -monitorName mon_DSR_MAC
bind service svc_DSR01_03 -monitorName mon_DSR_MAC
<!--NeedCopy-->

En el ejemplo siguiente se muestra una configuración de pruebas mediante servidores de Ubuntu y Red Hat que ejecutan apache2. Estos comandos se configuran en cada servidor back-end.

sudo ip addr add 1.1.1.80 255.255.255.255 dev lo
sudo sysctl net.ipv4.conf.all.arp_ignore=1
sudo sysctl net.ipv4.conf.all.arp_announce=2
sudo sysctl net.ipv4.conf.eth4.rp_filter=2 (The interface has the external IP with route towards the ADC)
sudo sysctl net.ipv4.conf.all.forwarding=1
sudo ip link set dev lo arp on
<!--NeedCopy-->

Descapsulación de servidores back-end

Cuando utiliza los servidores back-end como descapsulación, la configuración de back-end varía según el tipo de SO del servidor. Puede configurar un servidor back-end como descapsulación siguiendo estos pasos:

  1. Configure una interfaz de bucle posterior con IP para IP de servicio.
  2. Cree una interfaz de túnel.
  3. Agregue una ruta a través de la interfaz del túnel.
  4. Configure los ajustes de la interfaz según sea necesario para el tráfico.

Nota:

Los servidores del sistema operativo Windows no pueden realizar túneles IP de forma nativa, por lo que los comandos se proporcionan como ejemplos para sistemas basados en Linux. Sin embargo, los complementos de terceros están disponibles para los servidores del sistema operativo Windows, que están fuera del ámbito de este ejemplo.

En la siguiente ilustración se muestra una configuración de descapsulación mediante los servidores back-end.

Configuración de descapsulación de servidores

Ejemplo de configuración:

En este ejemplo, 1.1.1.80 es la dirección IP virtual (VIP) de Citrix ADC y 2.2.2.10-2.2.2.12 son las direcciones IP del servidor back-end. La dirección VIP se configura en la interfaz de bucle inactivo y se agrega una ruta a través de la interfaz de túnel. Los monitores utilizan la IP del servidor y túnel los paquetes de supervisión sobre el túnel IP mediante los extremos del túnel.

La configuración completa necesaria para la configuración es la siguiente.

Configuración ADC front-end:

La siguiente configuración crea un monitor que utiliza el extremo del túnel como origen. A continuación, envíe pings a través del túnel a la dirección IP de servicio.

add ns ip 10.0.1.2 255.255.255.252 -vServer DISABLED
add netProfile netProfile_DSR -srcIP 10.0.1.2
add lb monitor mon_DSR PING -LRTM DISABLED -destIP 1.1.1.80 -ipTunnel YES -netProfile netProfile_DSR
<!--NeedCopy-->

La siguiente configuración crea un VIP para el servicio que utiliza la dirección IP de origen original. A continuación, reenvía el tráfico a través del túnel IP a los servidores back-end.

add service svc_DSR01 2.2.2.10 ANY * -usip YES -useproxyport NO
bind service svc_DSR01 -monitorName mon_DSR

add service svc_DSR02 2.2.2.11 ANY * -usip YES -useproxyport NO
bind service svc_DSR02 -monitorName mon_DSR

add service svc_DSR03 2.2.2.12 ANY * -usip YES -useproxyport NO
bind service svc_DSR03 -monitorName mon_DSR

add lb vserver vip_DSR_ENCAP ANY 1.1.1.80 * -lbMethod SOURCEIPHASH -m IPTUNNEL -sessionless ENABLED
bind lb vserver vip_DSR_ENCAP svc_DSR01
bind lb vserver vip_DSR_ENCAP svc_DSR02
bind lb vserver vip_DSR_ENCAP svc_DSR03
<!--NeedCopy-->

Configuración del servidor back-end de cada servidor:

Los siguientes comandos son necesarios para que el servidor back-end reciba el paquete IPIP, elimine la encapsulación externa y luego responda desde el bucle de retorno a la IP del cliente original. Al hacerlo, se garantiza que las direcciones IP del paquete recibido por el cliente coincidan con las direcciones IP de la solicitud original.

modprobe ipip
sudo ip addr add 1.1.1.80 255.255.255.255 dev lo
nmcli connection add type ip-tunnel ip-tunnel.mode ipip con-name tun0
ifname tun0 remote 198.51.100.5 local 203.0.113.10
nmcli connection modify tun0 ipv4.addresses '10.0.1.1/30'
nmcli connection up tun0
sudo sysctl net.ipv4.conf.all.arp_ignore=1
sudo sysctl net.ipv4.conf.all.arp_announce=2
sudo sysctl net.ipv4.conf.tun0.rp_filter=2
sudo sysctl net.ipv4.conf.all.forwarding=1
sudo ip link set dev lo arp off
<!--NeedCopy-->
Caso de uso 7: Configurar el equilibrio de carga en modo DSR mediante IP sobre IP