Frage zu einer Konfiguration im HAProxy
Moin,
ich versuche herauszufinden, was diese 3 Regeln im HAProxy zu bedeuten haben.
Welcher Sinn steckt dahinter?
In vielen Konfigurationen sieht man diese Einträge.
Hier ein Beispiel einer Konfig:
acl clienthello req_ssl_hello_type 1
acl serverhello rep_ssl_hello_type 2
stick on payload_lv(43,1) if clienthello
ich versuche herauszufinden, was diese 3 Regeln im HAProxy zu bedeuten haben.
Welcher Sinn steckt dahinter?
In vielen Konfigurationen sieht man diese Einträge.
Hier ein Beispiel einer Konfig:
acl clienthello req_ssl_hello_type 1
acl serverhello rep_ssl_hello_type 2
stick on payload_lv(43,1) if clienthello
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 583590
Url: https://administrator.de/contentid/583590
Ausgedruckt am: 21.11.2024 um 21:11 Uhr
2 Kommentare
Neuester Kommentar
In den 3 Zeilen stecken mehrere Dinge.
Das "acl" bedeutet "Access Control List", das "clienthello" ist sowas wie der Name dieser Liste. req_* und rep_* sind von HAproxy vordefinierte Funktionen, die eine Ganzzahl zurückgeben. Bei "req_*" wird geprüft, ob der Client eine komplette sogenannte "SLL hello message" gesendet hat.
Dss "rep_*" fragt den Server dazu ab.
Normalerweise liefern diese Funktionen dann 0 (kein SSL), 1 (TLS SessionTicket vorhanden) oder 2 (TLS SessionTicket ist "ausgefüllt").
Die "payload"-Zeile macht auch wieder mehrere Dinge:
Die Anweisung bzw. Funktion "payload_lv(43,1)" lädt quasi aus dem empfangenen Puffer der SSL-Daten einen Teil - ab Offset 43 ein Byte. Das "stick" ist u.a. für ein Loadbalancing verantwortlich. Damit wird ein Anwender, z.B. Webbrowser, einem Server zugeordnet. Die Option "stick" ist ziemlich komplex in der Anwendung.
Übersetzt würden die drei Zeilen in etwa bedeuten:
Wenn der Client ein TLS SessionTicket überträgt, dann nimm das 43. Byte aus dem Puffer und benutze es, um darüber den einen Client immer mit dem einen Server zu verbinden. Oder so ähnlich.
Ich hab auch nicht alles von HAproxy verstanden - ist eine eigene Welt
Du findest aber irgendwo immer Beispiele, wenn Du danach suchst. Oder nimm halt die Anleitung, z.B. unter https://cbonte.github.io/haproxy-dconv/2.2/configuration.html
Und - aus meiner Sicht das Wichtigste: VIELE haproxy.cfg, die man im Internet findet, sind "Copy&Paste". Die pflanzen sich gerne so fort und werden immer wieder und wieder kopiert, ohne dass diejenigen, die sie nutzen, tatsächlich alles verstehen.
Bei HAproxy empfiehlt es sich, mit einer kleinen, leeren haproxy.cfg anzufangen, um es zu lernen. Und dann nach und nach die benötigten Optionen nachzuziehen.
Das "acl" bedeutet "Access Control List", das "clienthello" ist sowas wie der Name dieser Liste. req_* und rep_* sind von HAproxy vordefinierte Funktionen, die eine Ganzzahl zurückgeben. Bei "req_*" wird geprüft, ob der Client eine komplette sogenannte "SLL hello message" gesendet hat.
Dss "rep_*" fragt den Server dazu ab.
Normalerweise liefern diese Funktionen dann 0 (kein SSL), 1 (TLS SessionTicket vorhanden) oder 2 (TLS SessionTicket ist "ausgefüllt").
Die "payload"-Zeile macht auch wieder mehrere Dinge:
Die Anweisung bzw. Funktion "payload_lv(43,1)" lädt quasi aus dem empfangenen Puffer der SSL-Daten einen Teil - ab Offset 43 ein Byte. Das "stick" ist u.a. für ein Loadbalancing verantwortlich. Damit wird ein Anwender, z.B. Webbrowser, einem Server zugeordnet. Die Option "stick" ist ziemlich komplex in der Anwendung.
Übersetzt würden die drei Zeilen in etwa bedeuten:
Wenn der Client ein TLS SessionTicket überträgt, dann nimm das 43. Byte aus dem Puffer und benutze es, um darüber den einen Client immer mit dem einen Server zu verbinden. Oder so ähnlich.
Ich hab auch nicht alles von HAproxy verstanden - ist eine eigene Welt
Du findest aber irgendwo immer Beispiele, wenn Du danach suchst. Oder nimm halt die Anleitung, z.B. unter https://cbonte.github.io/haproxy-dconv/2.2/configuration.html
Und - aus meiner Sicht das Wichtigste: VIELE haproxy.cfg, die man im Internet findet, sind "Copy&Paste". Die pflanzen sich gerne so fort und werden immer wieder und wieder kopiert, ohne dass diejenigen, die sie nutzen, tatsächlich alles verstehen.
Bei HAproxy empfiehlt es sich, mit einer kleinen, leeren haproxy.cfg anzufangen, um es zu lernen. Und dann nach und nach die benötigten Optionen nachzuziehen.