1.4.2. Direktes Routing
Der Aufbau einer LVS-Installation, die direktes Routing verwendet, bietet den Vorteil einer höheren Leistung im Vergleich zu anderen LVS-Netzwerk-Topologien. Direktes Routing ermöglicht den realen Servern, Pakete direkt zu verarbeiten und direkt 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.
Abbildung 1.4. 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-Router. 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.
1.4.2.1. Direktes Routing und die ARP-Einschränkung
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.
Um dieses Problem zu lösen, sollten Sie sicherstellen, dass eingehende Anfragen immer an den LVS-Router, anstatt an einen der realen Server gesendet werden. Dies erreichen Sie entweder mit Hilfe von
arptables_jf
oder des Paketfilter-Tools iptables
aus den folgenden Gründen:
arptables_jf
hindert ARP an der Verknüpfung von VIPs mit realen Servern.- Die
iptables
-Methode umgeht das ARP-Problem komplett, indem VIPs auf realen Servern von vornherein nicht konfiguriert werden.
For more information on using
arptables
or iptables
in a direct routing LVS environment, refer to Abschnitt 3.2.1, »Direktes Routing und arptables_jf
« or Abschnitt 3.2.2, »Direktes Routing und iptables
«.