Niedawno wystąpiły pewne opóźnienia podczas rozpoznawania hosta DNS w systemie OS X 10.8. Aby go przetestować, uruchomiłem prosty skrypt, który próbuje wielokrotnie rozwiązać tę samą nazwę hosta 20 razy:
#!/bin/sh
for i in `seq 20`; do
time -p dig www.google.com @8.8.8.8 | grep "^;; Query time:"
done
Większość żądań zajmuje mniej więcej tyle samo czasu co opóźnienie do serwera nazw:
;; Query time: 49 msec
real 0.05
Jednak jak tylko włączę zaporę w Mountain Lion (wszystkie przychodzące żądania są dozwolone, tryb ukrywania nie jest włączony), niektóre z dig
żądań zajmują dokładnie 5 sekund plus opóźnienie do serwera nazw:
;; Query time: 25 msec
real 5.03
Większość żądań jest wciąż szybka, ale około 10 na 15 żądań ma opóźnienie dokładnie 5 sekund, nawet pomimo dig
wciąż krótkiego czasu zapytania. Nie ma znaczenia, czy używam dig
lub host
do testowania, czy też używam lokalnego serwera DNS lub publicznego, jak w powyższym przykładzie. Gdy zapora jest wyłączona, opóźnienie nigdy się nie zdarza.
Czy zapora systemu OS X wymusza ograniczenie prędkości żądań, czy brakuje mi czegoś jeszcze?