Newsgroup: it.comp.os.linux.software
Titolo: problema con squid.

Salve.
Ho un problema con squid, ormai da molto tempo, e non riesco a
risolverlo.
Ho installato un server proxy, squid appunto, su un IBM xSerie sul quale
ho messo debian stable.
La versione di squid e' la 2.4STABLE6, credo, non ho il server a portata
di mano ora.
Tale server proxy permette l'accesso a tutti i client di una lan.
Ho configurato delle acl in base agli ip cosi' che possano uscire solo i
client autorizzati.
Tale elenco di ip autorizzati e' in un file di testo che viene dato in
pasto a squid per i controlli del caso.
Tali client autorizzati sono circa 500.
Allora il problema e' che dopo un po di tempo di utilizzo nel syslog mi
trovo errori di questo tipo:
---------------------------------------------------------------------
Oct 15 16:04:30 proxy1 squid[879]: idnsCheckQueue: ID 12ad: giving up 
after 31 tries and 309.1 seconds
Oct 15 16:04:34 proxy1 squid[879]: idnsCheckQueue: ID 12ae: giving up 
after 31 tries and 309.8 seconds
Oct 15 16:04:38 proxy1 squid[879]: idnsCheckQueue: ID 12b0: giving up 
after 31 tries and 309.3 seconds
Oct 15 16:04:38 proxy1 squid[879]: idnsCheckQueue: ID 12b1: giving up 
after 31 tries and 309.1 seconds
Oct 15 16:04:44 proxy1 squid[879]: idnsCheckQueue: ID 12b7: giving up 
after 30 tries and 301.7 seconds
Oct 15 16:04:44 proxy1 squid[879]: idnsCheckQueue: ID 12b8: giving up 
after 30 tries and 300.2 seconds
Oct 15 16:04:48 proxy1 squid[879]: idnsCheckQueue: ID 12ba: giving up 
after 30 tries and 300.5 seconds
Oct 15 16:04:48 proxy1 squid[879]: idnsCheckQueue: ID 12b2: giving up 
after 31 tries and 309.5 seconds
Oct 15 16:04:48 proxy1 squid[879]: idnsCheckQueue: ID 12b3: giving up 
after 31 tries and 308.8 seconds
Oct 15 16:04:48 proxy1 squid[879]: idnsCheckQueue: ID 12b4: giving up 
after 31 tries and 308.7 seconds
Oct 15 16:04:48 proxy1 squid[879]: idnsCheckQueue: ID 12b5: giving up 
after 31 tries and 308.6 seconds
Oct 15 16:04:50 proxy1 squid[879]: idnsCheckQueue: ID 12b6: giving up 
after 31 tries and 309.3 seconds
Oct 15 16:04:54 proxy1 squid[879]: idnsCheckQueue: ID 12bd: giving up 
after 30 tries and 300.6 seconds
Oct 15 16:04:55 proxy1 squid[879]: idnsCheckQueue: ID 12be: giving up 
after 30 tries and 300.4 seconds
Oct 15 16:04:55 proxy1 squid[879]: idnsCheckQueue: ID 12bf: giving up 
after 30 tries and 300.2 seconds
Oct 15 16:04:56 proxy1 squid[879]: idnsCheckQueue: ID 12b9: giving up 
after 31 tries and 309.6 second
---------------------------------------------------------------------
ed il proxy non ne vuole sapere di effettuare le connessioni se non dopo
una lunga attesa.
Se lo riavvio riprende a funzionare regolarmente.
L'impressione e' come se si congestionasse per qualche motivo che non
capisco.
Il problema non dipende dal dns esterno poiche' se effettuo le
connessioni senza passare dal proxy non ho nessun tipo di problema.
Qualcuno ha qualche idea?

 Qualcuno ha qualche idea?
Stavo per proporti questa ma vedo che ci hai gia` pensato.
Hai provato a fare le query di DNS direttamente dal proxy?
Controlla inoltre con il cache manager cosa sta succedendo (le code di
DNS e la matrice di successo del resolver).
-- 
	kinkie (kinkie chiocciola tiscalinet punto it)
	E ora, qualche parola dai nostri sponsor:
Like the ski resort of girls looking for husbands and husbands looking
for girls, the situation is not as symmetrical as it might seem.
		-- Alan McKay

 DNS e la matrice di successo del resolver).
Scusa la mia ignoranza ma cosa dovrei controllare esattamente con
il cachemgr?
Ho visto la voce Internal DNS Statistics i cui valori sono:  
Internal DNS Statistics:
The Queue:
                       DELAY SINCE
  ID   SIZE SENDS FIRST SEND LAST SEND
------ ---- ----- ---------- ---------
0x4864   37     7     56.180     2.258
0x488b   37     6     48.547     2.258
0x4879   32     6     52.711     2.258
0x4874   37     6     53.017     2.258
0x4936   37     1      2.989     2.989
0x4933   40     1      3.135     3.135
0x4919   37     2     13.451     3.258
0x4917   37     2     13.534     3.258
0x4930   37     1      4.742     4.742
Nameservers:
IP ADDRESS      # QUERIES # REPLIES
--------------- --------- ---------
151.99.125.2        25093     15733
151.99.250.2         9344      2951
Rcode Matrix:
RCODE ATTEMPT1 ATTEMPT2 ATTEMPT3
    0    18628        1        0
    1        0        0        0
    2        4        2        2
    3       47        0        0
    4        0        0        0
    5        0        0        0
Non so se ti riferivi a questo.
Ciao.

 151.99.250.2         9344      2951
Questi DNS server c'hanno _grossa_ crisi. Uno si perde un terzo
abbondante delle query, l'altro addirittura i due terzi. L'unica cosa
che ti salva e` che il traffico e` basso. Quale sia la ragione non so,
forse ci sono problemi di rete (connettivita`, firewall o altro), o e`
"semplicemente" il tuo provider che da` i numeri.
-- 
	kinkie (kinkie chiocciola tiscalinet punto it)
	E ora, qualche parola dai nostri sponsor:
You dialed 5483.

 "semplicemente" il tuo provider che da` i numeri.
Potrei provare ad usare altri DNS per un po ma non credo dipenda
da quali del mio provider tant'e' vero che se faccio delle connessioni
dirette non si verifica nessun problema.
Il problema e' quando passo da squid.
La macchina nella quale e' installato squid non ha nessuna limitazione
nel senso che non c'e' nessun firewall sulla stessa quindi il 
problema non puo' essere riferito a qualche regola sbagliata.
Tale proxy per uscire passa attraverso un firewall hardware, un 
netscreen di cui non ricordo il modello.
Tale firewall hardware consente l'uscita, alla macchina nella quale
c'e' installato squid, unicamente delle porte 80, 443, 21, 6660-6669,
8085, 53 e 22.
Se, in base alle informazioni che ti ho dato pensi che il problema
non dovrebbe risiedere ne nel firewall hardware, ne nel server proxy
a questo punto allora dovrei avere un problema di rete interno.
Che suggerimenti puoi darmi per cercare di stabilire quale sia la
causa della scrisi dei DNS usati dal proxy?
Grazie, ciao.

 causa della scrisi dei DNS usati dal proxy?
"Alla peggio" puoi provare a alzare il livello di debugging
sull'internal resolver (guarda debug-sections.txt per capire quali
valori usare). In linea di massima io proverei ad installare anche un
caching DNS server (va bene anche sulla stessa macchina di squid) e
fare qualche prova.
-- 
	kinkie (kinkie chiocciola tiscalinet punto it)
	E ora, qualche parola dai nostri sponsor:
Tip the world over on its side and everything loose will land in Los Angeles.
		-- Frank Lloyd Wright

 fare qualche prova.
Quale mi suggerisci come caching dns server?
Io uso debian. 

 Quale mi suggerisci come caching dns server?
A tua scelta. Un Bind in configurazione da caching-only dovrebbe
andare benissimo.
-- 
	kinkie (kinkie chiocciola tiscalinet punto it)
	E ora, qualche parola dai nostri sponsor:
Unix is the worst operating system; except for all others.
		-- Berry Kercheval

 andare benissimo.
Da quello che so anche squid effettua dns caching, a tal proposito
esiste il parametro ipcache.
Leggendo un po su google si copnmsiglia di lasciar fare a squid
tale dns caching.
Non vorrei che avessi anch'io dei problemi di routing.
il server proxy sta all'interno di una lan e si appoggia ai dns
di interbusiness indicati nel /etc/resolv.conf.
Per uscire, tale proxy passa attraverso un firewall che quindi e' indicato
come gateway di default mentre il resto della lan e' vista attraverso
un altro gateway.
La route del proxyi, avente ip 192.168.4.7, e':
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.4.0     *               255.255.254.0   U     0      0        0 eth0
192.168.0.0     192.168.5.254   255.255.0.0     UG    0      0        0 eth0
default         192.168.4.9     0.0.0.0         UG    0      0        0 eth0
Secondo te?
Ciao.

 tale dns caching.
Non penso che kinkie ti suggerisse di disabilitare il resolver di squid...
Solo, installi un bind in caching only senza forwarder e configuri la
macchina di squid per usare il bind come dns al posto di quelli IB (verso
i quali la mia fiducia è ben scarsa...)
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The Skull says:
The old signature is gone...
Won't you suggest me a new one?!?

 i quali la mia fiducia č ben scarsa...)
Mi sorge il dubbio che potrebbe essere qualcosa che non va in 
squid.conf.
Lo inserisco tanto sono poche righe:
http_port 
192.168.4.7:3128
icp_port 0
hierarchy_stoplist cgi-bin ? 
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
acl all src 
0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 
127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 901         # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
acl corsi_on_line src 
192.168.0.0/16
acl special_url1 url_regex ^
http://www.menteinforma.it/
acl special_url2 url_regex ^
http://www.porsardegna.net/
acl special_url3 url_regex ^
http://java.sun.com/
acl special_ip dst 62.101.68.131
acl ip_auth src "/var/local/proxy1/ip_auth"
acl per2232 src 192.168.2.232
http_access allow manager localhost
http_access allow manager per2232
http_access deny manager
http_access allow purge localhost
http_access allow purge per2232
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow ip_auth
http_access allow corsi_on_line special_url1
http_access allow corsi_on_line special_url2
http_access allow corsi_on_line special_url3
http_access allow corsi_on_line special_ip
http_access deny all
cache_mem 128 MB
cache_dir ufs /var/spool/squid 8000 16 256
reference_age 4 months
half_closed_clients off
forwarded_for off
acl snmpManager src 
192.168.4.7/255.255.255.255
acl snmppublic snmp_community public
snmp_port 3401
snmp_access allow snmpManager
snmp_access allow snmppublic localhost
snmp_access deny all
nel /etc/resolv.conf ho i due dns di interbusiness.
Nell' /etc/hostname ho solo il nome della macchina su cui e' 
installato squid e cioe' proxy.
Non c'e' nessun riferimento al dns locale che comunque non esce
dalla lan.
Scusate se insisto ma proprio non riesco a capire
da dove possa nascere il problema.
Non ho ancora provato ad installare un dns cache, e' vero
ma secondo me c'e' qualcosa che non funziona a monte.
Grazie.

 ma secondo me c'e' qualcosa che non funziona a monte.
Con ogni probabilita` i DNS di interbusiness :)
-- 
	kinkie (kinkie chiocciola tiscalinet punto it)
	E ora, qualche parola dai nostri sponsor:
Wedding is destiny, and hanging likewise.
		-- John Heywood

 
Giusto per verificare se effettivamente sono i dns di interbusiness a
crearmi problemi, potresti suggerirmi dei dns che secondo te sono piu'
affidabili?
Ciao.

 affidabili?
Il suggerimento era appunto quello di metterti in casa un
caching-nameserver. Dove la parte che interessa non e` tanto quella
del caching (squid ne fa gia` per conto suo) ma proprio quella del
nameserver.
-- 
	kinkie (kinkie chiocciola tiscalinet punto it)
	E ora, qualche parola dai nostri sponsor:
[Crash programs] fail because they are based on the theory that, with nine
women pregnant, you can get a baby a month.
		-- Wernher von Braun

 nameserver.
Bella :-D
-- 
the Skull says:
+----------------------------------------------------------------------+
Actually without signature.
Any idea?!?

 
Ho installato dnsmasq, non so se lo conosci.
Le cose sembrano andare un po meglio, speriamo che duri.
Grazie per tutti gli utili suggerimenti.
Ciao.