Lösung 1:
Ein Verbindungstimeout tritt auf, wenn der DNS-Server überhaupt nicht oder nicht rechtzeitig antwortet.
Ersteres kann simuliert werden, indem einfach der gesamte Datenverkehr zu Ihrem DNS-Server blockiert wird, beispielsweise auf einem Linux-System mit:
# iptables -I OUTPUT -p udp -d <iIP of DNS server> --dport 53 -j DROP
Wenn Sie DROP als Ziel verwenden, erhalten Sie nicht einmal einen Verbindungsverweigerungsfehler, sondern es wird nur ein schwarzes Loch. (Es ist unwahrscheinlich, dass Sie normalerweise Zonentransfers durchführen würden, daher ist es nicht erforderlich, das TCP-Protokoll zusätzlich zu UDP zu blockieren.)
Das Erstellen von Verzögerungen ist etwas komplizierter. Aus dem netem
Handbuch:
# 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
Dadurch entsteht eine Verzögerung von 200 ms mit einer zufälligen Variation von ± 10 ms.
Lösung 2:
Was Sie brauchen, ist ein "Black-Hole-Server". Sie können blackhole.webpagetest.org
verwenden (72.66.115.13
), wodurch alle Anfragen stillschweigend verworfen werden.
Warum ich dies gegenüber den anderen Antworten vorschlage, liegt darin, dass der oben genannte Server ausschließlich zu diesem Zweck eingerichtet wurde.
Beispiel:
[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
Lösung 3:
nameserver 127.0.0.1
wird nicht funktionieren, da dies bereits das Standardverhalten ist. Versuchen Sie stattdessen, ein nicht vorhandenes DNS zu verwenden. Um sicherzugehen, können Sie Folgendes tun:
nslookup example.com 192.0.2.10
Wenn Sie keine Antwort erhalten, können Sie 192.0.2.10
verwenden als Ihren DNS-Server.
Lösung 4:
Wenn Sie auf Ihrem Testsystem keinen DNS-Server betreiben, sollten Sie dessen IP-Adresse verwenden können.
Sie könnten versuchen, eine unbenutzte rfc1918-Adresse zu verwenden.
Sie könnten die Firewall Ihres Servers verwenden, um ausgehende Pakete mit einem Zielport 53 zu blockieren.