5 votes

Le pare-feu de Mountain Lion retarde de façon aléatoire les requêtes DNS

J'ai récemment constaté des retards lors de la résolution des hôtes DNS sous OS X 10.8. Pour le tester, j'ai lancé un simple script qui tente de résoudre 20 fois le même nom d'hôte :

#!/bin/sh
for i in `seq 20`; do
    time -p dig www.google.com @8.8.8.8 | grep "^;; Query time:"
done

La plupart des demandes prennent à peu près le même temps que la latence vers le serveur de noms :

;; Query time: 49 msec
real 0.05

Cependant, dès que j'active le pare-feu dans Mountain Lion (toutes les demandes entrantes sont autorisées, mode furtif est pas activé), un peu de de la dig Les requêtes prennent exactement 5 secondes, plus la latence vers le serveur de noms :

;; Query time: 25 msec
real 5.03

La plupart des requêtes sont encore rapides, mais environ toutes les 10 à 15 requêtes présentent un retard d'exactement 5 secondes, même si le délai de réponse est plus court. dig rapporte toujours un temps d'interrogation court. Cela ne fait aucune différence si j'utilise dig o host pour les tests, ou si j'utilise un serveur DNS local ou public comme dans l'exemple ci-dessus. Lorsque le pare-feu est désactivé, le retard ne se produit jamais.

Le pare-feu d'OS X applique-t-il une sorte de limitation du débit des requêtes, ou y a-t-il autre chose que j'ignore ?

1voto

Rich Points 2429

Vous avez raison. Je diagnostique la même limitation de débit au niveau du pare-feu sur MacOS X 10.7.4 (Lion).

De plus, si vous regardez

/usr/bin/sudo tcpdump -i en0 udp port 53

Vous remarquerez que le temps d'aller-retour pour obtenir une réponse de la part de la Commission européenne est plus long. 8.8.8.8 est beaucoup plus faible que les 40 msec affichés par le serveur.

Lors d'un long essai, j'ai eu :

;; Query time: 44 msec

et un temps moyen d'aller-retour de 26 msec :

09:36:14.360564 IP me.53866 > google-public-dns-a.google.com.domain: 9943+ A? www.google.com. (32)
09:36:14.386302 IP google-public-dns-a.google.com.domain > me.53866: 9943 5/0/0 A 173.194.41.180, A 173.194.41.178, A 173.194.41.176, A 173.194.41.177, A 173.194.41.179 (112)

(386302 - 360564 = 26 msec)

Pour comprendre ce mécanisme de protection (contre le DOS de base), regardez à :

/usr/bin/sudo pfctl -i en0 -s timeouts

La documentation complète de cette commande complexe est Manuel de référence pfctl(8) Mountain Lion

Attention, il s'agit d'une commande puissante mais très dangereuse. Vous pouvez facilement casser votre accès au réseau (Où est ma sauvegarde ?).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X