Red Hat Cluster Suite: Konfiguration und Management eines Cluster | ||
---|---|---|
Zurück | Kapitel 11. Einrichten eines Red Hat Enterprise Linux LVS-Cluster | Nach vorne |
File Transfer Protocol (FTP) ist ein älteres und recht komplexes Multi-Port Protokoll, welches einer Cluster-Umgebung einige Herausforderungen stellt. Um die Hintergründe dieser Herausforderungen zu Verstehen, müssen Sie zuerst einige grundlegende Dinge über die Arbeitsweise von FTP lernen.
Bei den meisten anderen Client-Server Verbindungen, öffnet die Client-Maschine eine Verbindung zum Server auf einem bestimmten Port, und der Server antwortet dann dem Client auf diesem Port. Wenn ein FTP-Client zu einem FTP-Server verbindet, öffnet dieser eine Verbindung zum FTP-Kontroll-Port 21. Dann, teilt der Client dem FTP Server mit, ob eine aktive oder eine passive Verbindung erzeugt werden soll. Der vom Client gewählte Typ von Verbindung bestimmt, wie der Server antwortet und über welchen Port die Transaktion abgewickelt wird.
Die zwei Typen von Datenverbindungen sind:
Wenn eine aktive Verbindung hergestellt wird, öffnet der Server eine Datenverbindung von Port 20 zu einem Port im hohen Bereich der Client-Maschine. Jegliche Daten des Servers werden dann über diese Verbindung übermittelt.
Wenn eine passive Verbindung hergestellt wird, fragt der Client den FTP Server nach der Zustellung eines Ports für eine passive Verbindung, welche an jeglichem Port höher als 10,000 liegen kann. Der Server bindet dann zu diesem hohen Port für die augenblickliche Sitzung und legt die Nummer des Ports zurück zum Client. Der Client öffnet dann den neu gebundenen Port für die Datenverbindung. Jede Datenanforderung des Client resultiert in einer separaten Datenverbindung. Die meisten modernen FTP-Clients versuchen eine passive FTP-Verbindung zur Übertragung von Dateien aufzubauen.
Die zwei im Bezug zum Clustering wichtigen Dinge zu beachten sind:
Der Client bestimmt den Typ von Verbindung, nicht der Server. Das heißt, dass für ein FTP in einen Cluster die LVS Router für beide, aktive und passive Verbindungen konfiguriert werden müssen.
Die FTP Client-Server Verbindung kann potentiell eine große Anzahl von Ports öffnen, von welchen weder Piranha Configuration Tool noch IPVS etwas wissen.
IPVS Paket-Weiterleitung erlaubt Pakete nur in den und aus dem Cluster, basierend auf der Erkennung der Port-Nummer oder deren Firewall-Markierungen. Wenn ein Client von ausserhalb des Clusters versucht einen Port zu öffnen, für welchen IPVS nicht konfiguriert ist, wird IPVS die Verbindung nicht annehmen. Ähnlich, sollte ein realer Server versuchen eine Verbindung zurück zum Internet über einen für IPVS unbekannten Port herzustellen, wird IPVS die Verbindung zurückweisen. Das heißt, dass alle Verbindungen von FTP-Clients aus dem Internet die gleiche Firewall-Markierung zugewiesen haben müssen und alle Verbindungen vom FTP-Server müssen, durch Verwendung von Regeln zum Filtern der Netzwerk-Pakete, richtig weitergeleitet werden.
Bevor Sie irgendwelche iptables-Regeln für FTP-Services zuweisen, sehen Sie sich die Information in Abschnitt 11.3.1 durch, welche Multi-Port Services und Methoden der Überprüfung bereits bestehender Filterregeln für Netzwerk-Pakete betrifft.
Unten sind die Regeln angegeben, die die gleiche Firewall-Markierung, nämlich 21, dem FTP-Verkehr zuweisen. Damit diese Regeln richtig arbeiten, müssen Sie auch den Teilabschnitt VIRTUAL SERVER von Piranha Configuration Tool verwenden, um einen virtuellen Server für Port 21 mit dem Wert 21 im Feld Firewall Mark anzugeben. Siehe Abschnitt 12.6.1 für Details.
Die Regeln für aktive Verbindungen sagen dem Kernel Verbindungen anzunehmen, welche zu der internen schwebenden IP-Adresse auf Port 20 eingehen — dem FTP Daten-Port.
/sbin/iptables -t nat -A POSTROUTING -p tcp \ -s n.n.n.0/24 --sport 20 -j MASQUERADE |
In den oben angegebenen iptables-Befehlen, sollte n.n.n mit den ersten drei Werten der schwebenden IP ersetzt werden, welche für die interne Netzwerk-Schnittstelle der NAT-Schnittstelle im Abschnitt GLOBAL SETTINGS von Piranha Configuration Tool definiert ist. Diese Befehle erlauben dem LVS Router ausgehende Verbindungen von den realen Servern anzunehmen, über die IPVS nichts weiß.
Die Regeln für passive Verbindungen weisen die entsprechenden Firewall-Markierungen Verbindungen zu, welche vom Internet zur schwebenden IP-Adresse des Service an einer weiten Reihe von Ports ankommen — von 10.000 bis 20.000.
![]() | Warnung | ||
---|---|---|---|
Sollten Sie die Reihe der Ports für passive Verbindungen einschränken, müssen Sie zudem den VSFTP-Server konfigurieren, damit dieser der Reihe von Ports entspricht. Dies kann durch Hinzufügen der folgenden Zeile zum Ende der Datei /etc/vsftpd.conf geschehen:
Sie müssen auch die Adresse bestimmen, die der Server dem Client für passive FTP-Verbindungen anzeigt. In einem NAT-routed LVS-System, fügen Sie die folgende Zeile zur Datei /etc/vsftpd.conf hinzu, um die tatsächliche IP-Adresse mit der VIP zu überschreiben, die der Client während der Verbindung sieht. Zum Beispiel:
Ersetzen Sie X.X.X.X mit der VIP-Adresse des LVS-Systems. Für die Konfiguration anderer FTP-Server, schlagen Sie in der Dokumentation nach. |
Diese Reihe sollte für die meisten Situationen weit genug sein; Sie können diese jedoch vergrößern, indem Sie alle nicht-gesicherten Ports einschließen. Dies erzielen Sie, indem Sie 10000:20000 in den unten angegebenen Befehlen zu 1024:65535 ändern.
/sbin/iptables -t mangle -A PREROUTING -p tcp \ -d n.n.n.n/32 \ --dport 21 -j MARK --set-mark 21 /sbin/iptables -t mangle -A PREROUTING -p tcp \ -d n.n.n.n/32 \ --dport 10000:20000 -j MARK --set-mark 21 |
In den oben angegebenen iptables-Befehlen, sollte n.n.n.n mit der schwebenden IP-Adresse Ihres virtuellen FTP-Servers ersetzt werden, welcher im Abschnitt VIRTUAL SERVER von Piranha Configuration Tool definiert ist. Diese Befehle haben den Netto-Effekt der Zuweisung einer Firewall-Markierung von 21 zu jeglichem an die VIP auf den entsprechenden Ports adressiertem Verkehr. Dies wird von der IPVS erkannt und richtig weitergeleitet.
![]() | Warnung |
---|---|
Die oben angegebenen Befehle werden sofort in Kraft treten, werden allerdings bei einem Neustart nicht erhalten bleiben. Um die Filtereinstellungen für Netzwerk-Pakete über einen Neustart hinaus zu erhalten, sehen Sie Abschnitt 11.5. |
Als letztes müssen Sie sicher stellen, dass der entsprechende Service für die Aktivierung auf den richtigen Runlevels eingestellt ist. Für mehr hierzu, sehen Sie Abschnitt 10.1.
Zurück | Zum Anfang | Nach vorne |
Multi-Port Services und LVS Clustering | Nach oben | Speichern der Filtereinstellungen für Netzwerk-Pakete |