Warum maskieren Software-Load Balancer die Client-IP?

Warum maskieren Software-Load Balancer die Client-IP?

Derzeit verwende ich einen Cisco CSS-Hardware-Load Balancer. Aus Sicht des Webservers wird die IP-Adresse des Endbenutzers in den gesamten Datenverkehr eingetragen, als ob der Load Balancer gar nicht vorhanden wäre.

Ich schaue mir jetzt Software-Ersatz wie HAProxy, Pound oder AWS ELB an. Sie alle haben eines gemeinsam: Der Webserver erhält die IP des Load Balancers und nicht die des Endbenutzers. Ihr System muss sich dessen bewusst sein und auf einen X-Forwarded-For-Header zugreifen, wenn Sie die IP des Endbenutzers möchten, oder im Fall von SSL den Datenverkehr entschlüsseln und erneut verschlüsseln.

Meine Frage ist also: Warum ist das so? Warum können sich Software-Load Balancer nicht genauso verhalten wie Hardware-Load Balancer und die TCP-Pakete einfach weiterleiten, als wären sie ein einfaches Netzwerkgerät?

Antwort1

Da diese Software auf der Schicht 7 (Anwendung) desOSI-Modellgibt es Softwarelösungen, die auf der Schicht 3/4 arbeiten wieICH GEGEN.

Für Ihr Problem ist die Lösung ganz einfach, wenn Sie Apache als Webserver verwenden, müssen Sie nur installierenmod_rpaf. Dieses Modul ermöglicht die direkte Protokollierung der vom X-Forwarded-For-Header bereitgestellten IP.

Antwort2

Ähm, die kurze Antwort ist „das können sie“, daher bin ich nicht sicher, ob die Frage beantwortet werden kann.

Ich möchte allerdings die Vermutung wagen, dass der Unterschied zwischen den Hardware- und Softwarelösungen darin liegt, dass die Hardwarebox als Router konzipiert ist, d. h., sie sieht den gesamten Datenverkehr vom Client zum Endserver und kann ihn entsprechend in beide Richtungen bearbeiten. Die Softwarelösungen hingegen befinden sich auf Boxen ohne Routing und schreiben daher die Clientadresse um, um auf einfache und kostengünstige Weise den Datenverkehr im Return-Hop zur Bearbeitung wieder über sie laufen zu lassen.

Antwort3

Software-Load Balancer arbeiten auf einer höheren TCP-Stack-Schicht. Sie sollten verwenden, iptablesum den gleichen Effekt zu erzielen. Ein Beispiel finden SieHier.

Antwort4

Das können sie, es wird im Kernel standardmäßig nicht unterstützt. Normalerweise wird es (glaube ich) als Source Address Spoofing bezeichnet. Wenn Sie bei Google nach „Source Spoofing Haproxy“ suchen, erhalten Sie einige Treffer.

Allen voran.

http://blog.loadbalancer.org/configure-haproxy-with-tproxy-kernel-for-full-transparent-proxy/

verwandte Informationen