Recentemente ho riscontrato alcuni ritardi durante la risoluzione degli host DNS su OS X 10.8. Per testarlo ho iniziato un semplice script che tenta di risolvere ripetutamente lo stesso hostname 20 volte:
#!/bin/sh
for i in 'seq 20'; do
time -p dig www.google.com @8.8.8.8 | grep "^;; Query time:"
done
La maggior parte delle richieste richiede all'incirca la stessa latenza del server dei nomi:
;; Query time: 49 msec
real 0.05
Tuttavia, non appena attivo il firewall in Mountain Lion (tutte le richieste in arrivo sono consentite, la dig
impiegano esattamente 5 secondi più la latenza al server dei nomi:
;; Query time: 25 msec
real 5.03
La maggior parte delle richieste è ancora veloce, ma circa ogni 10-15 richieste ha un ritardo di esattamente 5 secondi anche se dig
riporta ancora un breve tempo di interrogazione. Non fa alcuna differenza se uso dig
o host
per il test, o se utilizzo un server DNS locale o pubblico come nell'esempio sopra. Quando il firewall è spento, il ritardo non si verifica mai.
Il firewall di OS X impone un qualche tipo di limitazione della velocità per le richieste, o c'è qualcos'altro che mi manca?