1.8.3.2. Direktes Routing

Direktes Routing bietet den Vorteil einer höheren Leistung im Vergleich zu NAT-Routing. Direktes Routing ermöglicht den realen Servern, Pakete direkt zu verarbeiten und an einen anfragenden Benutzer zu routen, anstatt ausgehende Pakete durch den LVS-Router zu leiten. Direktes Routing vermindert die Wahrscheinlichkeit von Problemen bei der Netzwerkleistung, indem es den Job des LVS-Routers nur auf das Verarbeiten von eingehenden Paketen beschränkt.
LVS Implemented with Direct Routing

Abbildung 1.23. LVS Implemented with Direct Routing

In einer typischen Direktes-Routing-LVS-Konfiguration empfängt ein eingehender Server Anfragen durch eine virtuelle IP (VIP) und verwenden einen Plan-Algorithmus, um die Anfragen an reale Server zu routen. Jeder reale Server verarbeitet Anfragen und senden Antworten direkt an Clients und umgeht dabei die LVS-Routers. Direktes Routing ermöglicht Skalierbarkeit, so dass reale Server hinzugefügt werden können, ohne dass der LVS-Router zusätzlich belastet wird, ausgehende Pakete vom realen Server zum Client zu routen, was bei hoher Netzwerkauslastung zu einem Engpass führen kann.
Auch wenn es viele Vorteile zur Verwendung von direktem Routing in LVS gibt, existieren auch einige Einschränkungen. Das häufigste Problem mit direktem Routing und LVS tritt bei Address Resolution Protocol (ARP) auf.
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.
Das Problem mit ARP-Anfragen in einer Direkt-Routing-LVS-Konfiguration ist, dass aufgrund der Tatsache, dass eine Client-Anfrage an eine IP-Adresse mit einer MAC-Adresse verknüpft sein muss, damit diese Anfrage behandelt werden kann, die virtuelle IP-Adresse des LVS-Router ebenfalls mit einer MAC verknüpft sein muss. Da aber sowohl der LVS-Router, als auch die realen Server dieselbe VIP besitzen, wird die ARP-Anfrage an alle mit dem VIP verknüpften Knoten verbreitet. Dies kann zu einigen Problemen führen, z.B. dass die VIP direkt mit einem der realen Server verknüpft wird und Anfragen direkt weiterleitet und dabei den LVS-Router komplett umgeht, was den Zweck der LVS-Konfiguration außer Kraft setzt. Das Verwenden eines LVS-Routers mit einer leistungsfähigen CPU, der schnell auf Client-Anfragen eingehen kann, beseitigt dieses Problem nicht notwendigerweise. Falls der LVS-Router unter hoher Auslastung steht, kann er ggf. langsamer auf die ARP-Anfrage reagieren, als ein unterbeschäftigter realer Server, der schneller reagiert und dem die VIP im ARP-Cache des anfragenden Clients zugewiesen wird.
Um dieses Problem zu lösen, sollten die eingehenden Anfragen nur den VIP mit dem LVS-Router verknüpfen, welcher die Anfragen ordnungsgemäß verarbeiten und sie an den Pool der realen Server senden wird. Dies kann mit Hilfe des Tools arptables zur Paketfilterung durchgeführt werden.