J'ai besoin de tester le comportement d'une application lorsqu'elle ne peut pas résoudre un nom d'hôte en raison d'un délai d'attente. Réglage nameserver 127.0.0.1
en /etc/resolv.conf
ne fonctionne pas: les fonctions pertinentes reviennent immédiatement à une exception. Le banc d'essai est une machine virtuelle créée avec Vagrant qui reçoit son adresse IP via DHCP.
19
nslookup example.com non_existent_dns_ip
sorties:;; connection timed out; trying next origin ;; connection timed out; no servers could be reached
Un délai d'expiration de connexion se produit lorsque le serveur DNS ne répond pas du tout ou ne répond pas en temps opportun.
Le premier peut être simulé en bloquant simplement tout le trafic vers votre serveur DNS, sur un système Linux par exemple avec:
Utiliser DROP comme cible signifie que vous n'aurez même pas d'erreur de connexion refusée, cela devient juste un trou noir. (Il est peu probable que vous fassiez normalement des transferts de zone, donc le blocage du protocole TCP en plus d'UDP n'est pas nécessaire.)
La création de retards est un peu plus compliquée. Du
netem
manuel :Ce qui crée un retard de 200 ms avec une variation aléatoire de ± 10 ms.
la source
Vous avez besoin d'un "serveur trou noir". Vous pouvez utiliser
blackhole.webpagetest.org
(72.66.115.13
) qui supprimera silencieusement toutes les demandes.La raison pour laquelle je suggère cela par rapport aux autres réponses est que le serveur susmentionné a été créé à cette seule fin.
Exemple:
la source
Si vous n'exécutez pas de serveur DNS sur votre système de test, vous devriez pouvoir utiliser son adresse IP.
Vous pouvez essayer d'utiliser une adresse rfc1918 inutilisée .
Vous pouvez utiliser le pare-feu de votre serveur pour bloquer les paquets sortants avec un port de destination 53.
la source