Ansichten:

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
Hinweis
  • Diese Bildschirme und Anweisungen sind gültig ab dem 15. Juli 2024 mit LVS Version 1.27-8.
  • Die Anweisungen gehen davon aus, dass sich zwei Netzwerkschnittstellenkarten (NIC) auf dem als LVS verwendeten Rechner befinden, jede mit unterschiedlichen Netzwerken und Service-Gateways.
    NICnetworkTopology=GUID-1cbbf8ec-b284-4e74-8759-9d9d5a992dea.jpg

Prozedur

  1. Um Ihr LVS im NAT-Modus zu betreiben:
    Wichtig
    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.
    1. Installieren Sie Keepalived, um Ihrer LVS Lastverteilungsfunktionen bereitzustellen.
    2. Bearbeiten Sie die Keepalived-Konfigurationsdatei unter /etc/keepalived/keepalived.conf und erstellen Sie einen Block für virtual_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>
          }
          ...
      }
    3. Geben Sie die Werte aus der untenstehenden Tabelle in die Platzhalterfelder ein, um die Konfiguration abzuschließen.
      Feld
      Wert
      IP
      Die 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_algo
      Wä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
      Wichtig
      Wenn Sie nicht sh oder dh verwenden, müssen Sie einen Wert für das Feld persistence_timeout festlegen, um Verbindungen persistent zu machen.
      lb_kind
      NAT
      Persistenz-Timeout (optional)
      Erforderlich, wenn der Wert für lb_algo nicht sh oder dh ist
      Geben Sie einen Timeout-Wert (in Sekunden) für persistente Verbindungen an.
      Protokoll
      TCP
      IP (1, 2, 3, … )
      Die IP-Adressen der Service-Gateways mit Internetzugang bei vor Ort installierten Gateways
      Port (1, 2, 3, … )
      Die Abhörports auf den Service-Gateways, die für den Authentifizierungsproxy verwendet werden
      Gewicht
      Das Gewicht, das für Entscheidungen zur Lastverteilung verwendet werden soll
      Unten 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
          }
      }
  2. (Optional) Um Ihr LVS im vollständigen NAT-Modus auszuführen, führen Sie die folgenden zusätzlichen Konfigurationsschritte durch:
    Wichtig
    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.
    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.
      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
    2. Verwenden Sie folgenden Befehl, um Conntrack für IPVS zu aktivieren.
      sysctl net.ipv4.vs.conntrack=1
    3. Verwenden Sie folgenden Befehl zum Aktivieren der IP-Weiterleitung.
      sysctl net.ipv4.ip_forward=1