Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.2. Enrutamiento directo de adición del equilibrador de carga

Como se mencionó en la Sección 1.4.2, “Enrutamiento directo” el enrutamiento directo permite que los servidores reales procesen y dirijan los paquetes directamente al usuario que los solicitó en vez de pasar los paquetes salientes a través del enrutador LVS. El enrutamiento directo requiere que los servidores reales sean estén conectados físicamente al segmento de red con el enrutador LVS y también puedan procesar y dirigir paquetes de salida.
Distribución de red
En un enrutamiento directo de configuración de la adición del equilibrador de carga, el enrutador LVS debe recibir solicitudes de entrada y dirigirlas al propio servidor real para procesamiento. Los servidores reales luego, deben dirigir directamente la respuesta al cliente. Por lo tanto, si el cliente está en Internet, y envía el paquete a través del enrutador LVS a un servidor real, el servidor real debe ser capaz de ir directamente al cliente a través de la Internet. Esto se puede realizar al configurar una puerta de entrada para que el servidor real pase paquetes a la Internet. Cada servidor real en el grupo de servidores puede tener su puerta de enlace independiente (y cada puerta de enlace con su propia conexión a Internet), lo cual permite un máximo de rendimiento y de escalabilidad. No obstante, para una configuración típica de la adición del equilibrador de carga, los servidores reales pueden comunicarse a través de una puerta de entrada (y por ende, a una conexión de red).

Importante

No se recomienda utilizar el enrutador LVS activo como puerta de enlace para los servidores reales, ya que agrega complejidad y carga de red en el enrutador LVS, lo cual reintroduce el cuello de botella de redes que existe en enrutamiento de NAT.
Hardware
Los requerimientos de hardware de una adición del equilibrador de carga que usa enrutamiento directo son similares a otras topologías de adición del equilibrador de carga. Aunque el enrutador LVS debe estar ejecutando Red Hat Enterprise Linux para procesar las solicitudes de entrada y realizar su equilibrio de carga para servidores reales, los servidores reales no tienen que ser máquinas Linux para funcionar correctamente. Los enrutadores LVS requieren uno o dos NIC cada uno (depende de si existe un enrutador de respaldo). También puede usar dos NIC para facilitar la configuración y separar el tráfico independiente — las solicitudes de entrada que son administradas por un NIC y los paquetes dirigidos a los servidores reales en el otro.
Puesto que los servidores reales evitan el enrutador LVS y envían directamente paquetes de salida a un cliente, se requiere una puerta de enlace. Para obtener disponibilidad y rendimiento máximos, cada servidor real puede conectarse de forma independiente a su puerta de enlace, la cual tiene una propia conexión dedicada al proveedor de red al que está conectado(tal como Internet o Intranet).
Software
Hay alguna configuración fuera de Piranha Configuration Tool que debe hacerse, en particular, para los administradores que enfrentan problemas de ARP cuando utilizan adición del equilibrador de carga directamente de enrutamiento directo. Para obtener más información, consulte, la Sección 3.2.1, “Enrutamiento directo y arptables_jf o la Sección 3.2.2, “Enrutamiento directo e iptables.

3.2.1. Enrutamiento directo y arptables_jf

A fin de configurar el enrutamiento directo mediante arptables_jf, cada servidor real debe tener configurada la dirección IP virtual, para poder dirigir directamente los paquetes. Los servidores reales ignoran totalmente las solicitudes ARP y cualquier paquete ARP que podría, de otro modo, ser enviado con los VIP se truncan para contener la IP de servidor real en lugar de los VIP.
Al usar el método arptables_jf, las aplicaciones pueden vincular cada VIP o puerto individual que sirva el servidor real. Por ejemplo, el método arptables_jf permite que múltiples instancias de Apache HTTP Server se ejecuten vinculadas explícitamente a diferentes VIP en el sistema. También hay ventajas de rendimiento significativo al usar arptables_jf en comparación con la opción iptables .
Sin embargo, al usar el método arptables_jf, los VIP no puede configurarse al inicio en el arranque mediante las herramientas de configuración del sistema Red Hat Enterprise Linux.
Para configurar cada servidor real para que ignore las solicitudes ARP para cada dirección IP virtual, siga los siguientes pasos:
  1. Cree una tabla ARP de entradas para cada dirección IP virtual en cada servidor real (real_ip es la IP que el directorio usa para comunicarse con el servidor real; por lo general es la IP vinculada a eth0):
    arptables -A IN -d <virtual_ip> -j DROP
    arptables -A OUT -s <virtual_ip> -j mangle --mangle-ip-s <real_ip>
    Esto hará que los servidores reales ignoren todas las solicitudes para direcciones IP virtuales y cambien cualquier respuesta de salida ARP que pueda de otra manera contener IP virtual, para que contengan la IP real del servidor en su lugar. El único nodo que debe responder a las solicitudes ARP para cualquier VIP es el nodo LVS activo.
  2. Una vez que haya completado esto en cada servidor real, guarde las entradas de tabla ARP mediante los siguientes comandos en cada servidor real:
    service arptables_jf save
    chkconfig --level 2345 arptables_jf on
    El comando chkconfig hará que el sistema recargue la configuración de arptables en el arranque — antes de que se inicie la red.
  3. Configure la dirección IP virtual en todos los servidores reales mediante ifconfig para crear un alias IP. Por ejemplo:
    # ifconfig eth0:1 192.168.76.24 netmask 255.255.252.0 broadcast 192.168.79.255 up
    Or using the iproute2 utility ip, for example:
    # ip addr add 192.168.76.24 dev eth0
    Como se dijo anteriormente, las direcciones IP virtuales no pueden ser configuradas para iniciar en el arranque mediante las herramientas de configuración del sistema Red Hat. Una solución a este problema es poner los comandos en /etc/rc.d/rc.local.
  4. Configure Piranha para enrutamiento directo. Para obtener más información, consulte el Capítulo 4, Configuración de la adición del equilibrador de carga mediante Piranha Configuration Tool.