Wie versteht Squid die Ziel-IP-Adresse im transparenten Modus?

Wie versteht Squid die Ziel-IP-Adresse im transparenten Modus?

Im transparenten Modus werden die folgenden iptable-Regeln verwendet, um den Datenverkehr zu Squid umzuleiten.

iptables -I PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-ports 3128

Meines Wissens ändert REDIRECT die Ziel-IP-Adresse in die IP der lokalen Schnittstelle.

Wenn der Datenverkehr Squid erreicht, woher weiß Squid, wohin er weitergeleitet werden muss, da sich die Ziel-IP jetzt geändert hat?

Antwort1

Sie haben Recht REDIRECT, dass Squid mit die ursprünglich vorgesehene Ziel-IP nicht sehen kann. Stattdessen löst es den vom Client im Host:HTTP-Header bereitgestellten Host auf, was bei HTTP 1.1 obligatorisch ist.

Antwort2

Das ist dem Gateway sehr ähnlich.

Wenn der Client-Host nicht weiß, wo sich der Ziel-Host befindet, sendet er das Paket an das Standard-Gateway. Und das Gateway bestimmt, wohin das Paket gesendet werden soll.

srcTransparente Proxys machen dasselbe. Alle Pakete an xxx.xxx.xxx.xxx:80 werden an Port 3128 umgeleitet , statt an den im Paketheader angegebenen Port. Squid analysiert das Paket und seine Header – dstund die entsprechenden Ports – und übermittelt das Paket dann wie ein Gateway oder sendet sofort eine Antwort, wenn es zuvor zwischengespeichert wurde.

Die Hauptidee besteht darin, dass der Zielport in jedem Paket gespeichert wird, während das Paket während der Übertragung an die verschiedenen Hosts/Ports weitergeleitet werden kann.

verwandte Informationen