3.4. Servicios de puertos múltiples y LVS
LVS routers under any topology require extra configuration when creating multi-port LVS services. Multi-port services can be created artificially by using firewall marks to bundle together different, but related protocols, such as HTTP (port 80) and HTTPS (port 443), or when LVS is used with true multi-port protocols, such as FTP. In either case, the LVS router uses firewall marks to recognize that packets destined for different ports, but bearing the same firewall mark, should be handled identically. Also, when combined with persistence, firewall marks ensure connections from the client machine are routed to the same host, as long as the connections occur within the length of time specified by the persistence parameter. For more on assigning persistence to a virtual server, see Sección 4.6.1, “La subsección VIRTUAL SERVER”.
Desafortunadamente, el mecanismo utilizado para balancear cargas en los servidores reales — IPVS — puede reconocer marcas de cortafuegos asignadas al paquete, pero no puede asignar marcas de cortafuegos. El trabajo de asignar marcas de cortafuegos debe ser llevado a cabo por el filtro de paquetes de red,
iptables
por fuera de la Piranha Configuration Tool.
3.4.1. Asignación de marcas de cortafuegos
Para asignar marcas de cortafuegos a un paquete destinado a un puerto particular, el administrador debe utilizar
iptables
.
This section illustrates how to bundle HTTP and HTTPS as an example; however, FTP is another commonly clustered multi-port protocol. If an LVS is used for FTP services, refer to Sección 3.5, “Configuración de FTP” for configuration details.
La regla básica a recordar cuando se utilizan marcas de cortafuegos es que cada protocolo que utiliza una marca de cortafuego en la Piranha Configuration Tool debe tener una regla
iptables
proporcional para asignar las marcas de cortafuegos a los paquetes de red.
Antes de crear reglas de filtros de paquetes de red, asegúrese de que no haya aun reglas previamente establecidas. Para ello, abra una terminal, inicie una sesión de root y escriba:
/sbin/service iptables status
Si
iptables
no está en ejecución, la línea de comandos reaparecerá inmediatamente.
Si
iptables
está activo, se mostrarán las reglas que están siendo usadas. Si hay alguna regla, escriba el siguiente comando:
/sbin/service iptables stop
Si las reglas actuales son importantes, revise el contenido de
/etc/sysconfig/iptables
y guarde cualquier regla importante antes de proceder.
Abajo hay algunas reglas que asignan la misma marca de cortafuego, 80, al tráfico entrante para la dirección IP flotante n.n.n.n en el puerto 80 y 443.
/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
For instructions on assigning the VIP to the public network interface, see Sección 4.6.1, “La subsección VIRTUAL SERVER”. Also note that you must log in as root and load the module for
iptables
before issuing rules for the first time.
En los comandos
iptables
, reemplace n.n.n.n con la IP flotante para sus servidores virtuales HTTP y HTTPS. Estos comandos tienen el efecto de asignar una marca de cortafuegos 80 a cualquier tráfico dirigido a la VIP en los puertos apropiados. Esta marca es reconocida por el IPVS y enviada apropiadamente.
Aviso
The commands above will take effect immediately, but do not persist through a reboot of the system. To ensure network packet filter settings are restored upon reboot, refer to Sección 3.6, “Cómo guardar los parámetros de filtro de paquetes de red”