3.4. Multi-Port-Dienste und Load Balancer Add-On

In jeder Topologie erfordern LVS-Router weitere Konfigurationsschritte, wenn Multi-Port-Dienste für das Load Balancer Add-On erstellt werden sollen. Multi-Port-Dienste können künstlich mithilfe von Firewall-Markierungen erzeugt werden, indem verschiedene, aber verwandte Protokolle wie z. B. HTTP (Port 80) und HTTPS (Port 443) gebündelt werden, oder wenn das Load Balancer Add-On mit realen Multi-Port-Protokollen wie z. B. FTP verwendet wird. In beiden Fällen verwendet der LVS-Router Firewall-Markierungen, um zu kennzeichnen, dass Pakete zwar für verschiedene Ports vorgesehen sind, aufgrund derselben Firewall-Markierung jedoch identisch gehandhabt werden sollen. In Kombination mit Persistenz gewährleisten Firewall-Markierungen, dass Verbindungen vom Client-Rechner zu demselben Host geleitet werden, sofern die Verbindung innerhalb der vom Persistenzparameter festgelegten Zeitspanne erfolgt. Weitere Informationen über das Zuweisen von Persistenz zu einem virtuellen Server finden Sie in Abschnitt 4.6.1, »Der Unterabschnitt VIRTUAL SERVER«.
Leider kann der Mechanismus zur Lastverteilung auf den realen Servern – IPVS – zwar die einem Paket zugewiesenen Firewall-Markierungen erkennen, kann jedoch selbst keine Firewall-Markierungen zuweisen. Die Aufgabe des Zuweisens von Firewall-Markierungen muss vom Netzwerkpaketfilter iptables außerhalb des Piranha-Konfigurationstools erfolgen.

3.4.1. Zuweisen von Firewall-Markierungen

Der Administrator muss zum Zuweisen von Firewall-Markierungen zu einem Paket, das für einen bestimmten Port vorgesehen ist, iptables verwenden.
Dieser Abschnitt veranschaulicht, wie beispielsweise HTTP und HTTPS gebündelt werden; auch FTP ist ein häufig geclustertes Multi-Port-Protokoll. Falls ein Load Balancer Add-On für FTP-Dienste verwendet wird, finden Sie in Abschnitt 3.5, »Konfigurieren von FTP« die Konfigurationsdetails.
Die wichtigste Regel bei der Verwendung von Firewall-Markierungen ist die, dass es für jedes Protokoll, das im Piranha-Konfigurationstool eine Firewall-Markierung verwendet, eine entsprechende iptables-Regel geben muss, um den Netzwerkpaketen die Markierung zuzuweisen.
Bevor Sie Netzwerkpaketfilterregeln erstellen, vergewissern Sie sich, dass nicht bereits Regeln vorhanden sind. Öffnen Sie dazu eine Shell-Eingabeaufforderung, melden Sie sich als root-Benutzer an und geben Sie Folgendes ein:
/sbin/service iptables status
Falls iptables nicht ausgeführt wird, kehrt die Eingabeaufforderung sofort zurück.
Falls iptables aktiv ist, werden eine Reihe von Regeln angezeigt. Falls Regeln vorhanden sind, geben Sie den folgenden Befehl ein:
/sbin/service iptables stop
Falls die vorhandenen Regeln wichtig sind, prüfen Sie den Inhalt der Datei /etc/sysconfig/iptables und kopieren Sie jegliche Regeln, die Sie behalten möchten, an einen sicheren Speicherort, bevor Sie fortfahren.
Nachfolgend sehen Sie die Regeln, die dem eingehenden Datenverkehr für die Floating-IP-Adresse n.n.n.n dieselbe Firewall-Markierung 80 zuweist, auf Ports 80 und 443.
/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 -m multiport --dports 80,443 -j MARK --set-mark 80
Siehe Abschnitt 4.6.1, »Der Unterabschnitt VIRTUAL SERVER« für Anweisungen zur Zuweisung der VIP zur öffentlichen Netzwerkschnittstelle. Beachten Sie, dass Sie sich als root-Benutzer anmelden und das iptables-Modul laden müssen, bevor Sie zum ersten Mal Regeln erstellen.
In den obigen iptables-Befehlen sollte n.n.n.n durch die Floating-IP für Ihre virtuellen HTTP- und HTTPS-Server ersetzt werden. Diese Befehle weisen effektiv jeglichem Datenverkehr, der an die VIP auf den entsprechenden Ports gerichtet ist, die Firewall-Markierung 80 zu, die anschließend von IPVS erkannt und entsprechend weitergeleitet wird.

Warnung

Die obigen Befehle werden sofort wirksam, überdauern jedoch keinen Neustart des Systems. Um sicherzugehen, dass die Einstellungen des Netzwerkpaketfilters nach einem Neustart wiederhergestellt werden, folgen Sie den Anweisungen in Abschnitt 3.6, »Speichern der Netzwerkpaketfiltereinstellungen«