11.3. Servicios multipuerto y LVS Clustering

Los enrutadores LVS bajo cualquier topología requieren configuración extra cuando se estén creando servicios LVS multipuerto. Los servicios multipuerto se pueden crear artificialmente usando marcas de cortafuegos para juntar protocolos diferentes, pero relacionados, tales como HTTP (puerto 80) y HTTPS (puerto 443), o cuando LVS es usado para juntar protocolos multipuerto verdaderos, tales como FTP. En cualquier caso, el enrutador LVS usa marcas de cortafuegos para reconocer cuales paquetes que están destinados a diferentes puertos, pero que tienen la misma marca de cortafuegos, deberían ser manejados de la misma forma. También, cuando se combina con persitencia, las marcas de cortafuegos aseguran que las conexiones desde la máquina cliente sean enrutadas al mismo host, siempre y cuando las conexiones ocurran dentro del período de tiempo especificado por el parámetro de persistencia. Para más información sobre como asignar persistencia a un servidor virtual, consulte la Sección 12.6.1.

Desafortunadamente, los mecanismos usados para balancear las cargas en los servidores reales — IPVS — pueden reconocer las marcas de cortafuegos asignadas a un paquete, pero no pueden asignar marcas ellos mismo. El trabajo de asignar marcas de cortafuegos debe ser realizado por un filtro de paquetes de red, tal como iptables, fuera de la Herramienta de configuración Piranha.

11.3.1. Asignando marcas de cortafuegos

Para asignar marcas de cortafuegos a un paquete destinado a un puerto particular, el administrador debe usar iptables.

Esta sección ilustra como juntar HTTP y HTTPS como un ejemplo, sin embargo, FTP es otro protocolo multipuerto muy común. Si un LVS cluster es usado para servicios FTP, consulte la Sección 11.4 para detalles sobre cómo configurar de la mejor forma el cluster.

La regla básica a recordar cuando se estén usando marcas de cortafuegos, es que para cada protocolo usando una marca de cortafuego en la Herramienta de configuración Piranha debe haber una regla acorde de iptables para asignar marcas a los paquetes de red.

Antes de crear las reglas de filtrado de paquetes de red, asegúrese de que no hay reglas ya establecidas. Para hacer esto, abra un prompt del shell, ingrese como usuario root, y escriba:

/sbin/service iptables status

Si iptables no está corriendo, reaparecerá el indicador de comandos de inmediato.

Si iptables está activo, se desplegará un conjunto de reglas. Si hay reglas presentes, escriba cualquiera de los comandos siguientes:

/sbin/service iptables stop

Si las reglas que ya están colocadas son importantes, verifique los contenidos de /etc/sysconfig/iptables y copie en un lugar seguro cualquier regla que valga la pena mantener, antes de proceder.

Abajo están las reglas que asignan la misma marca de cortafuego, 80, al tráfico entrante destinado por la dirección IP flotante, n.n.n.n, en los puertos 80 y 443. Para instrucciones en como asignar VIP a la interfaz pública de red, consulte la Sección 12.6.1. También note que se debe ingresar como root y cargar el módulo para iptables antes de emitir reglas por primera vez.

/sbin/modprobe ip_tables
/sbin/iptables -t mangle -A PREROUTING -p tcp \
	    -d n.n.n.n/32 --dport 80 -j MARK --set-mark 80
/sbin/iptables -t mangle-A PREROUTING -p tcp \
               -d n.n.n.n/32 --dport 443 -j MARK --set-mark 80

En los comandos de iptables de arriba, n.n.n.n debería ser reemplazado con la dirección IP flotante para sus servidores virtuales HTTP y HTTPS. Estos comandos tienen el efecto de red de asignar cualquier tráfico direccionado a la VIP en los puertos apropiados, una marca de 80, la cual luego es reconocida por la IPVS y reenviada apropiadamente.

AvisoAviso
 

Los comandos de arriba tomarán efecto de inmediato, pero no persisten luego de un reinicio del sistema. Para asegurar que las configuraciones del filtrado de paquetes de red se mantengan luego de un reinicio, refiérase a Sección 11.5