Squid und Intranet

Domi

Member
Moin moin... :)
Nachdem ich vergangene Woche unseren Linux Server hier im Büro mit einem DNS Dienst bestückt habe durch Eure Hilfe in meinem anderen Thread, habe ich hinterher auch einen Squid eingebunden.

Im Moment läuft dieser ganz regulär über Port 3128 und nur auf den Clients, wo ich einen Proxy eingestellt habe (mein PC, und ein weiterer zum testen). Ich habe noch nicht sonderlich viel verändert, und erst einmal eine ganz minimale Konfig aufgebaut.
Code:
# TAG: http_port
http_port 3128

# TAG: cache_mem (bytes)
cache_mem 32 MB

# TAG: maximum_object_size (bytes)
maximum_object_size 10000 KB

# TAG: maximum_object_size_in_memory (bytes)
maximum_object_size_in_memory 32 KB

# TAG: cache_replacement_policy
cache_replacement_policy heap LFUDA

# TAG: memory_replacement_policy
memory_replacement_policy heap GDSF

# TAG: cache_dir
cache_dir ufs /var/spool/squid3 2000 16 256

# Beispiel 1:
acl freigegeben1 src 192.168.1.0/24

http_access allow freigegeben1
http_access deny all
so habe ich es von ubuntuusers übernommen. Es kommt noch ein wenig Kleinkram dazu, bevor ich die anderen Clients einbinde... was mir aber aufgefallen ist, der Proxy kann mir jetzt im Firefox "intranet" nicht mehr auflösen. Ich vermute mal das liegt daran das er nicht weiß wohin damit.

Ich kann im Firefox in den Einstellungen sagen, dass er den Proxy für bestimmte Adressen auslassen soll (127.0.0.1, localhost etc.), aber kann man auch im Squid selbst sagen dass das Intranet auf einer bestimmten IP liegt und das weiter leiten soll (oder so)?

Dann wäre noch die Frage zu den aktuellen Einstellungen. Es werden ja Seiten im Cache gelagert, die öfter besucht werden um den Ladeprozess zu beschleunigen.. oder um die DSL Leitung weniger zu belasten. Fährt man mit diesen Einstellungen so ganz gut, oder sollte man da noch etwas verändern?

Zumal auch die Frage ist, was passiert denn wenn ich impressum.php von einer Seite öffne, diese bearbeite und neu hoch lade.. erkennt der Squid dann das die Seite auf dem Server jetzt anders ist und lädt sie neu in den Cache?! :confused:

Ich hoffe, man kann ein wenig Licht ins dunkle bringen für mich..
Gruß, Domi
 
so habe ich es von ubuntuusers übernommen. Es kommt noch ein wenig Kleinkram dazu, bevor ich die anderen Clients einbinde... was mir aber aufgefallen ist, der Proxy kann mir jetzt im Firefox "intranet" nicht mehr auflösen. Ich vermute mal das liegt daran das er nicht weiß wohin damit.

Ich kann im Firefox in den Einstellungen sagen, dass er den Proxy für bestimmte Adressen auslassen soll (127.0.0.1, localhost etc.), aber kann man auch im Squid selbst sagen dass das Intranet auf einer bestimmten IP liegt und das weiter leiten soll (oder so)?

Du kannst Squid beispielsweise mit der Config-Direktive "hosts_file = /path/file" eine Datei angeben, in der ip-host-Zuordnungen stehen.

Domi said:
Dann wäre noch die Frage zu den aktuellen Einstellungen. Es werden ja Seiten im Cache gelagert, die öfter besucht werden um den Ladeprozess zu beschleunigen.. oder um die DSL Leitung weniger zu belasten. Fährt man mit diesen Einstellungen so ganz gut, oder sollte man da noch etwas verändern?

Zumal auch die Frage ist, was passiert denn wenn ich impressum.php von einer Seite öffne, diese bearbeite und neu hoch lade.. erkennt der Squid dann das die Seite auf dem Server jetzt anders ist und lädt sie neu in den Cache?! :confused:
Du kannst sehr genau bestimmen, welche Dateien oder auch Dateitypen wie gecached werden sollen. Anhand der gespeicherten Meta-Informationen wird generell eine Datei, die sehr oft abgefragt wird auch öfter von Squid auf ihre Aktualität überprüft werden.
Wenn du eigene Ausnahmen definieren willst, kannst du mit refresh_pattern arbeiten um etwa die Datei impressum.php öfter "fresh" ausliefern zu lassen (http://www.squid-handbuch.de/hb/node34_mn.html).

Alternativ kannst du via ACL eine Datei komplett vom Caching ausschließen (http://www.squid-handbuch.de/hb/node44_mn.html).

Ob du mit LFUDA und GSDF gut fährst, kommt ganz auf den Einsatzzweck an - es ist nicht verkehrt, das Cache-Verhalten beispielsweise durch Munin-Graphen etwas im Auge zu behalten.

Ich empfehle dir, zB das verlinkte Squid-Handbuch mal genauer zu studieren, da die Konfigurationsmöglichkeiten doch immens und nicht immer trivial sind :)

Gruß

edit: http://www.squid-handbuch.de/hb/node21_mn.html hier noch Details zum genauen Cache-Verhalten von Squid, also ein Überblick über die Meta-Informationen die herangezogen werden um die Aktualität einer Datei zu prüfen.
 
Es kommt noch ein wenig Kleinkram dazu, bevor ich die anderen Clients einbinde... was mir aber aufgefallen ist, der Proxy kann mir jetzt im Firefox "intranet" nicht mehr auflösen. Ich vermute mal das liegt daran das er nicht weiß wohin damit.
Zwei Dinge fallen mir dazu ein: auf der Squid-Maschine die resolv.conf angepasst ("domain" und so? Und als Nameserver ist auch der interne drin?)? Dann sollte eigentlich automatisch an intranet die interne Domain angehängt werden.

Ein anderer Trick besteht darin, "intranet" im DNS als eigene Domain zu definieren inkl. wildcard-Eintrag auf die betreffende Intranet-Maschine.
 
Zwei Dinge fallen mir dazu ein: auf der Squid-Maschine die resolv.conf angepasst ("domain" und so? Und als Nameserver ist auch der interne drin?)? Dann sollte eigentlich automatisch an intranet die interne Domain angehängt werden.

Ein anderer Trick besteht darin, "intranet" im DNS als eigene Domain zu definieren inkl. wildcard-Eintrag auf die betreffende Intranet-Maschine.

Squid hat übrigens auch eine Option "append_domain", die genau das tut was der Name sagt.
Beispielsweise: append_domain = .google.com
 
Hallöchen... Schon mal vielen Dank für die Informationen.
Der Tipp mit der "Datei" für die Zuordnung der Domains zu den IPs hat mich auf eine Idee gebracht. Ich habe zwar einen DNS Dienst auf dem Server drauf, aber die IP zum Intranet habe ich in der "/etc/hosts" noch gar nicht eingetragen.. dann kann das auch nicht funktionieren :D

Die Anleitungen werde ich mir mal zu Herzen nehmen. Beim überfliegen habe ich gesehen, dass es deutsche Anleitungen sind.. was bei meinem nicht ganz so perfekten Englisch ein guter Vorteil ist :)

Ich könnte zwar auch das EN Handbuch nehmen, aber ich fange gerne mit dem DE Handbuch an, um ein paar Basics rein zu bekommen.. dann schaue ich mal was ich so anpassen kann und bedanke mich bis hierhin.

dermarlo said:
Ich empfehle dir, zB das verlinkte Squid-Handbuch mal genauer zu studieren, da die Konfigurationsmöglichkeiten doch immens und nicht immer trivial sind
Ja, dass der squid viel kann, sagte man uns damals in der Schule während der Ausbildung schon.. und auf diversen Seiten habe ich das auch schon gesehen :)

Gruß, Domi
 
Squid verwendet aus Performancegründen einen eigenen Dienst zur Namensauflösung, der im Gegensatz zum System-Resolver nicht blockierend arbeitet.
Wenn Du einen Intranet-Nameserver hast, kannst Du den mittels dns_nameserver angeben.
Optimal wäre natürlich, wenn es einen zentralen Nameserver gibt, der .intranet lokal beantwortet und "richtige" Domains cachend resolved.
Altenativ mußt Du eben zwei Nameserver angeben.
 
Okay, die Namensauflösung macht alles der Linux-Server :)
Wir haben einen Windows 2000 Server der mittlerweile viele Probleme macht und abgelöst werden soll. Daneben steht ein System das auf einem Linux Debian basiert und aktuell folgende Dienste übernimmt...
- DNS + DHCP (dnsmasq)
- Intranet (apach2 + php5 + mysql)
- Proxy (squid)
- VPN (openvpn)

Zusätzlich soll der noch nen PDC (samba) spielen und dann habe ich alles :D

Der Windows 2000 Server nutzt die Dienste dns + dhcp nicht mehr, die sind schon deaktiviert. Nameserver spielt also nur noch der Linux-Server... :)

Gruß, Domi
 
So Leute, nach 4.5 Monaten habe ich jetzt noch eine kleine Frage...
Hat zwar nicht was direkt mit der Kombination Squid + Intranet zu tun, aber es dreht sich direkt um den Squid und hoffe, Ihr könnt mir da noch mal den einen oder anderen Tipp geben :)

Also folgender Ist-Zustand, debian Server mit Squid läuft. Iptables macht routing für Port 80, somit laufen alle Webanwendungen über den Proxy und der Rest wird so durch geschliffen ohne durch den Proxy zu laufen.

Hier habe ich gesehen, dass man ein Bandbreitenlimit eintragen kann. Aber was mich interessieren würde, kann man dieses Limit auf bestimmte IPs beschränken?

Die nächste Frage die mich mal interessieren würde, wir haben zwei Internetanschlüsse hier, kann man im Squid auch sagen das er IP1 über den Router1 schicken soll, und IP2 und 3 über Router2?!

Muss ich dafür virtuelle Netzwerkgeräte anlegen (eth0 und eth0:1) um so etwas dann zu realisieren, oder kann man das nicht zuordnen? :)

Diese beiden Szenarien würden mich mal interessieren...
Gruß, Domi
 
Back
Top