1.4.2. Routage direct
Mettre en place une configuration LVS qui utilise le routage direct offre des performances supérieures par rapport aux autres topologies réseau LVS. Le routage direct permet aux serveurs réels de traiter et router les paquets directement vers un utilisateur les demandant plutôt que de passer les paquets sortants à travers le routeur LVS. Le routage direct réduit les risques de problèmes de performance réseau en reléguant le travail du routeur LVS pour ne traiter que les paquets entrants.
Figure 1.4. LVS Implemented with Direct Routing
Dans une configuration LVS classique de routage direct, le routeur LVS reçoit des requêtes serveur entrantes par l'intermédiaire d'une adresse IP virtuelle (VIP) et utilise un algorithme de programmation pour diriger les requêtes vers les serveurs réels. Chaque serveur réel traite les requêtes et envoie les réponses directement aux clients sans passer par les routeurs LVS. Cette méthode de routage permet une plus grande évolutivité car les serveurs réels peuvent être ajoutés sans charge supplémentaire sur le routeur LVS pour router les paquets sortants du serveur réel vers le client.
1.4.2.1. Routage direct et la limitation d'ARP
S'il existe de nombreux avantages à l'utilisation du routage direct dans LVS, il existe aussi des limitations. Le problème le plus courant avec LVS via le routage direct est le Protocole de résolution d'adresses (ARP de l'anglais Address Resolution Protocol).
In typical situations, a client on the Internet sends a request to an IP address. Network routers typically send requests to their destination by relating IP addresses to a machine's MAC address with ARP. ARP requests are broadcast to all connected machines on a network, and the machine with the correct IP/MAC address combination receives the packet. The IP/MAC associations are stored in an ARP cache, which is cleared periodically (usually every 15 minutes) and refilled with IP/MAC associations.
Le problème avec les requêtes ARP dans une configuration LVS de routage direct est que dans la mesure où l'adresse IP d'une requête client doit être associée à une adresse MAC pour être traitée, l'adresse IP virtuelle du système LVS doit également être associée à une adresse MAC. Cependant, parce que le routeur LVS et les serveurs réels ont la même adresse VIP, la requête ARP est diffusée à tous les noeuds associés à l'adresse VIP. Cela peut causer plusieurs problèmes, tels que l'adresse VIP associée directement à un des serveurs réels et traitant les requêtes directement, sans passer par le routeur LVS et ainsi allant à l'encontre du but de la configuration LVS.
Pour résoudre ce problème, assurez-vous que les requêtes entrantes soient toujours envoyées au routeur LVS plutôt qu'à l'un des serveurs réels. Pour ce faire, vous pouvez utiliser
arptables_jf
ou l'outil de filtrage des paquets iptables
pour les raisons suivantes :
arptables_jf
empêche ARP d'associer les adresses VIP avec les serveurs réels.- La méthode
iptables
esquive complètement le problème ARP en ne configurant pas les adresses VIP sur les serveurs réels en premier lieu.
For more information on using
arptables
or iptables
in a direct routing LVS environment, refer to Section 3.2.1, « Routage direct et arptables_jf
» or Section 3.2.2, « Routage direct et iptables
».