DNS-Problem mit Squid

DNS-Problem mit Squid

Ich habe DNS-Probleme mit einem Squid-Setup. Ich habe auch versucht, dns_nameserverseine Direktive in meiner squid.conf zu verwenden, um auf die DNS-Server zu verweisen. Ich habe ein Szenario, in dem www.example.com ins Internet gehen soll, foo.example.com jedoch zu einer internen Domäne. Wenn ich von meinem Client aus versuche, foo.example.com anzupingen, wird die richtige IP-Adresse ermittelt, aber ich erhalte diesen Fehler in meinem Browser:

Unable to determine IP address from hostname foo.example.com  
The DNS server returned:  
Name Error: The domain name does not exist

Ich weiß, dass mein Client auf die richtige IP verweist (weil der Ping einwandfrei funktioniert), aber ich frage mich, warum Squid versucht, eine Verbindung zum öffentlichen example.com herzustellen.

Antwort1

Die Dokumentation, die ich gelesen habe, legt nahe, dass Squid standardmäßig die Nameserver aus der Datei /etc/resolv.conf abruft. Das hat bei mir jedoch nicht funktioniert. Obwohl das Betriebssystem (Debian) selbst die IP auflösen konnte, beschwerte sich Squid. Ich habe die folgenden Änderungen vorgenommen und es funktioniert:
/etc/nsswitch.conf:
hosts: files dns
/etc/hosts:
<ip_of_server> foo.example.com

Ich versuche immer noch herauszufinden, warum Squid keine Nameserver aus /etc/resolv.conf aufnimmt.

Antwort2

Welchen DNS-Server verwendet der Client? Die Tatsache, dass der Client ihn korrekt auflösen kann, hat für Squid kaum Auswirkungen.

Bei Verwendung eines Proxys führt der Server die DNS-Auflösung durch, sodass die DNS-Auflösung des Clients keine Rolle spielt. Er muss lediglich in der Lage sein, die Adresse des Proxys aufzulösen.

Können Sie foo.example.com vom Squid-Server aus anpingen? Wenn nicht, müssen Client und Server unterschiedliche DNS-Server verwenden oder ihnen werden unterschiedliche Ansichten für diese Zone bereitgestellt.

verwandte Informationen