Konfigurieren und implementieren Sie den Linux Virtual Server (LVS) als Ihren Lastverteiler, um die Verwendung mehrerer Internetzugang-Gateways vor Ort als Authentifizierungs-Proxy für Single Sign-On zu unterstützen.
Linux unterstützt die Netzwerkadressübersetzung (NAT) und die vollständige Netzwerkadressübersetzung,
einschließlich Quell- und Zielmodus (vollständiges NAT), zur Verwendung als Authentifizierungs-Proxy.
![]() |
Hinweis
|
Prozedur
- Um Ihr LVS im NAT-Modus zu betreiben:
Wichtig
Im NAT-Modus führt das LVS nur die Zielnetzwerkadressübersetzung (DNAT) durch, wenn Pakete an Upstream-Server gesendet werden, daher muss das LVS das Gateway zu allen verbundenen lokalen Gateways sein.- Installieren Sie Keepalived, um Ihrer LVS Lastverteilungsfunktionen bereitzustellen.
- Bearbeiten Sie die Keepalived-Konfigurationsdatei unter
/etc/keepalived/keepalived.conf
und erstellen Sie einen Block fürvirtual_server
.virtual_server <IP> <port> { delay_loop <loop> lb_algo <lb_algo> lb_kind NAT persistent_timeout <persistent_timeout> protocol TCP real_server <IP 1> <port 1> { weight <weight 1> } real_server <IP 2> <port 2> { weight <weight 2> } ... }
- Geben Sie die Werte aus der untenstehenden Tabelle in die Platzhalterfelder ein, um
die Konfiguration abzuschließen.FeldWertIPDie IP-Adresse des Load Balancers, auf die von Clients zugegriffen wird. Es kann die IP des Load Balancers oder eine virtuelle IP sein.Port
Der Listening-Port auf dem Load Balancer, der als Authentifizierungs-Proxy verwendet wird lb_algoWählen Sie unter:-
rr
: Rundlauf -
wrr
: Gewichtetes Round Robin -
lc
: Wenigste Verbindung -
wlc
: Gewichtete geringste Verbindung -
sh
: Quell-Hash -
dh
: Ziel-Hash -
lblc
: Ortsbasierte geringste Verbindung
Wichtig
Wenn Sie nichtsh
oderdh
verwenden, müssen Sie einen Wert für das Feld persistence_timeout festlegen, um Verbindungen persistent zu machen.lb_kindNATPersistenz-Timeout (optional)Erforderlich, wenn der Wert für lb_algo nichtsh
oderdh
istGeben Sie einen Timeout-Wert (in Sekunden) für persistente Verbindungen an.ProtokollTCPIP (1, 2, 3, … )Die IP-Adressen der Service-Gateways mit Internetzugang bei vor Ort installierten GatewaysPort (1, 2, 3, … )Die Abhörports auf den Service-Gateways, die für den Authentifizierungsproxy verwendet werdenGewichtDas Gewicht, das für Entscheidungen zur Lastverteilung verwendet werden sollUnten ist eine Beispielkonfiguration mit einem virtuellen Server, der auf Port 10000 lauscht. Der Lastverteilungsalgorithmus ist Round Robin und arbeitet im NAT-Modus. Der Persistenz-Timeout beträgt 10 Sekunden. Zwei Upstream-Service-Gateways sind verbunden: eines befindet sich unter 192.168.1.100 und lauscht auf 8089, das andere befindet sich unter 192.168.1.101 und lauscht auf 18089.virtual_server 10.64.1.2 10000 { delay_loop 20 lb_algo rr lb_kind NAT persistent_timeout 10 protocol TCP real_server 192.168.1.100 8089 { weight 1 } real_server 192.168.1.101 18089 { weight 1 } }
-
- (Optional) Um Ihr LVS im vollständigen NAT-Modus auszuführen, führen Sie die folgenden
zusätzlichen Konfigurationsschritte durch:
Wichtig
Wenn im vollständigen NAT-Modus gearbeitet wird, führt das LVS sowohl DNAT als auch SNAT aus, wenn Pakete an die Upstream-Server gesendet werden, sodass es nicht als Gateway für alle verbundenen lokalen Gateways dienen muss.- Konfigurieren Sie die folgenden Regeln in iptables für die Verwendung mit NAT, wobei
das IP-Feld die IP-Adresse ist, auf die von Clients zugegriffen wird, und das Port-Feld
der Abhörport auf dem Lastverteiler ist, der als Authentifizierungsproxy verwendet
wird.
iptables -t nat -I PREROUTING -d <IP> <port> -j MARK --set-xmark 0x4000/0x4000 iptables -t nat -I POSTROUTING -m mark --mark 0x4000/0x4000 -j MASQUERADE
- Verwenden Sie folgenden Befehl, um Conntrack für IPVS zu aktivieren.
sysctl net.ipv4.vs.conntrack=1
- Verwenden Sie folgenden Befehl zum Aktivieren der IP-Weiterleitung.
sysctl net.ipv4.ip_forward=1
- Konfigurieren Sie die folgenden Regeln in iptables für die Verwendung mit NAT, wobei
das IP-Feld die IP-Adresse ist, auf die von Clients zugegriffen wird, und das Port-Feld
der Abhörport auf dem Lastverteiler ist, der als Authentifizierungsproxy verwendet
wird.