Soluzione 1:
Un timeout di connessione si verifica quando il server DNS non risponde affatto o non risponde in modo tempestivo.
Il primo può essere simulato semplicemente bloccando tutto il traffico verso il tuo server DNS, ad esempio su un sistema Linux con:
# iptables -I OUTPUT -p udp -d <iIP of DNS server> --dport 53 -j DROP
Usare DROP come target significa che non riceverai nemmeno un errore di connessione rifiutata, diventa solo un buco nero. (È improbabile che normalmente eseguirai trasferimenti di zona, quindi non è necessario bloccare il protocollo TCP oltre a UDP.)
La creazione di ritardi è leggermente più complicata. Dal netem
manuale:
# tc qdisc add dev eth0 root handle 1: prio
# tc qdisc add dev eth0 parent 1:3 handle 30: tbf rate 20kbit buffer 1600 limit 3000
# tc qdisc add dev eth0 parent 30:1 handle 31: netem delay 200ms 10ms distribution normal
# tc filter add dev eth0 protocol ip parent 1:0 prio 3 u32 match ip dst <IP_of_DNS_server>/32 flowid 1:3
Il che crea un ritardo di 200 ms con una variazione casuale di ± 10 ms.
Soluzione 2:
Ciò di cui hai bisogno è un "server buco nero". Puoi usare blackhole.webpagetest.org
(72.66.115.13
) che eliminerà silenziosamente tutte le richieste.
Il motivo per cui lo suggerisco rispetto alle altre risposte è perché il suddetto server è stato creato per questo unico scopo.
Esempio:
[email protected]:~$ dig example.com @72.66.115.13
; <<>> DiG 9.10.3-P4-Debian <<>> example.com @72.66.115.13
;; global options: +cmd
;; connection timed out; no servers could be reached
Soluzione 3:
nameserver 127.0.0.1
non funzionerà poiché il comportamento predefinito è già quello. Invece, prova a utilizzare un DNS non esistente. Per essere sicuro, puoi fare:
nslookup example.com 192.0.2.10
Se non ricevi risposta, puoi utilizzare 192.0.2.10
come server DNS.
Soluzione 4:
Se non stai eseguendo un server DNS sul tuo sistema di test, dovresti essere in grado di utilizzare il suo indirizzo IP.
Potresti provare a utilizzare un indirizzo rfc1918 inutilizzato.
Puoi utilizzare il firewall del tuo server per bloccare i pacchetti in uscita con una porta di destinazione 53.