nginx: TCP und UDP Streams
Hintergrundinformationen
Neben HTTP ist nginx auch in der Lage, TCP- und UDP-Verkehr zu verarbeiten und kann mit dem Modul preread das sogenannte Client Hello von TLS inspizieren, um auf Basis von SNI (Server Name Indication), einer Erweiterung von TLS, zu routen.
Schulrouter Plus spezifische Informationen
Der Schulrouter Plus bietet zwei Betriebsmodi:
Durchleiten und Weiterleiten basierend auf SNI
Lesen und Weiterleiten der Daten, was auch TLS beenden kann
Konfiguration
Für Upstreams besuchen Sie bitte die Seite nginx: Basic Load Balancing. Diese erwartet, dass die Upstreams korrekt eingerichtet sind.
SNI Upstream-Karten
SNI Upstream Maps sind eine leistungsstarke Funktion, wenn Sie mehrere Server hinter Ihrem Reverse-Proxy haben und jeder Server sein eigenes Zertifikat unterhält und Sie Ihr eigenes Zertifikat nicht verwenden wollen oder können. In solchen Fällen können Sie damit den Datenverkehr auf Basis der Server Name Indication-Erweiterung im TLS-Protokoll weiterleiten (vorausgesetzt, es wird TLS verwendet).
Dies funktioniert nicht mehr mit ESNI, das mit TLS 1.3 veröffentlicht werden kann. Wenn es Probleme verursacht, aktivieren Sie kein verschlüsseltes SNI und bleiben Sie bei einfachem SNI. Beachten Sie auch, dass bei Verwendung von SNI Upstream Maps die Verbindung auf dem Schulrouter Plus nicht entschlüsselt wird, so dass Sie keine Lastverteilung einer TLS-Verbindung zu unverschlüsselten Servern durchführen können.
Kurzbeschreibung | Kurzbeschreibung zur Anzeige in Dropdowns |
Hostname Upstream Map | Geben Sie einen Hostnamen ein und wählen Sie für jede Kombination den Upstream, an den die Verbindung weitergeleitet werden soll |
Vorgeschaltete Server
Die Upstream-Server sind die TCP- und UDP-Lastausgleichsfunktion von nginx. Sie können sie zum Proxy von DNS, einigen proprietären Protokollen usw. verwenden.
Dies funktioniert nicht mit Protokollen, die eine spezielle Behandlung benötigen, wie FTP oder SIP
Der Listen-Port ist der Port, der verwendet wird, um den Dienst für die Clients zugänglich zu machen. Sie sollten den von der IANA definierten Standard Port verwenden, um die beste Kompatibilität mit den meisten Clients zu erhalten.
Falls Sie UDP-Datagramme proxysieren, müssen Sie das Kontrollkästchen „UDP Port“ aktivieren.
Wählen Sie ein Zertifikat, wenn Sie die TLS-Verbindung beenden möchten. Wenn Sie direkt mit der Upstream-Eigenschaft routen, werden die Upstream-TLS-Einstellungen verwendet, um auszuwählen, ob die Backend-Verbindung (erneut) TLS-verschlüsselt sein soll.
Wenn Sie eine SNI Upstream Map verwenden wollen, schalten Sie den Eintrag in „Route With“ um und wählen Sie im entsprechenden Eintrag ein Mapping aus.
In den erweiterten Einstellungen können Sie auch eine TLS-basierte Authentifizierung für Upstream-Backends erzwingen (in SNI Upstream Mapping nicht unterstützt).
Test
Sie können Ihre Einrichtung mit dem folgenden Befehl testen:
curl https://HOSTNAME:PORT -vkI --resolve HOSTNAME:PORT:IP
HOSTNAME | Der Hostname, mit dem Sie sich verbinden möchten (example.com) |
PORT | Der Port, auf dem Sie den Proxy ausführen |
IP | IP Ihres Schulrouter Plus-Gerätes (zum Überschreiben von DNS) |