3.4. Les services multiports et 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 Section 4.6.1, « La sous-section VIRTUAL SERVER ».
Malheureusement, le mécanisme utilisé pour répartir la charge sur les serveurs réels — IPVS — peut reconnaître les marques de pare-feu assignées à un paquet, mais ne peut pas les assigner lui-même. La tâche consistant à assigner des marques de pare-feu doit être effectuée par le filtre de paquets du réseau,
iptables
, en dehors de l'Piranha Configuration Tool.
3.4.1. Assignation des marques de pare-feu
Pour assigner des marques de pare-feu à un paquet destiné à un port particulier, l'administrateur doit utiliser
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 Section 3.5, « Configuration FTP » for configuration details.
Voici la règle de base à retenir lors de l'utilisation des marques de pare-feu : pour tous les protocoles utilisant les marques de pare-feu dans l'Piranha Configuration Tool, il doit y avoir une règle
iptables
pour assigner les marques aux paquets du réseau.
Avant de créer des règles de filtrage des paquets du réseau, assurez-vous qu'il n'y en ait pas déjà. Pour ce faire, ouvrez une invite du shell, connectez-vous en tant que root et saisissez :
/sbin/service iptables status
Si
iptables
n'est pas en cours d'exécution, l'invite réapparaîtra instantanément.
Si
iptables
est actif, il affiche un ensemble de règles. Si les règles sont présentes, saisissez la commande suivante :
/sbin/service iptables stop
Si les règles déjà en place sont importantes, vérifiez le contenu de
/etc/sysconfig/iptables
et copiez toute règle valant la peine d'être gardée avant de continuer.
Ci-dessous figure les règles qui assignent la même marque de pare-feu, 80, au trafic entrant destiné à l'adresse IP flottante, n.n.n.n, sur les ports 80 et 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 Section 4.6.1, « La sous-section VIRTUAL SERVER ». Also note that you must log in as root and load the module for
iptables
before issuing rules for the first time.
Dans les commandes
iptables
ci-dessus, n.n.n.n devrait être remplacé par l'adresse IP flottante pour vos serveurs virtuels HTTP et HTTPS. Ces commandes ont pour effet d'assigner, à tout trafic destiné à l'adresse VIP sur les ports appropriés, une marque de pare-feu de 80, qui à son tour est reconnue par IPVS et retransmise de manière appropriée.
Avertissement
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 Section 3.6, « Enregistrer les paramètres de filtrage des paquets du réseau »