回答:
nameserver 127.0.0.1
デフォルトの動作は既にそれであるので、動作しません。代わりに、存在しないDNSを使用してみてください。確認するために、次のことができます。
nslookup example.com 192.0.2.10
応答がない場合は192.0.2.10
、DNSサーバーとして使用できます。
nslookup example.com non_existent_dns_ip
出力: ;; connection timed out; trying next origin ;; connection timed out; no servers could be reached
接続タイムアウトは、DNSサーバーがまったく応答しない場合、またはタイムリーに応答しない場合に発生します。
1つ目は、たとえば次のようなLinuxシステムでDNSサーバーへのすべてのトラフィックをブロックするだけでシミュレートできます。
# iptables -I OUTPUT -p udp -d <iIP of DNS server> --dport 53 -j DROP
DROPをターゲットとして使用すると、接続拒否エラーが発生することさえなく、単なるブラックホールになります。(通常、ゾーン転送を行うことはほとんどないため、UDPに加えてTCPプロトコルをブロックする必要はありません。)
遅延の作成は少し複雑です。netem
マニュアルから:
# 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
±10msのランダムな変動で200msの遅延が発生します。
必要なのは「ブラックホールサーバー」です。blackhole.webpagetest.org
(72.66.115.13
)を使用すると、すべての要求をサイレントにドロップできます。
上記のサーバーがこの唯一の目的のために確立されているためです。
barend@shells:~$ 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
テストシステムでDNSサーバーを実行していない場合は、そのIPアドレスを使用できるはずです。
未使用のrfc1918アドレスを使用してみてください。
サーバーのファイアウォールを使用して、宛先ポート53の発信パケットをブロックできます。