syn*_*pse 20 domain-name-system linux linux-networking
当由于超时而无法解析主机名时,我需要测试应用程序的行为。设置nameserver 127.0.0.1在/etc/resolv.conf没有工作:相关功能有异常立即返回。测试设备是一个用 Vagrant 创建的虚拟机,它通过 DHCP 接收其 IP 地址。
HBr*_*ijn 26
当 DNS 服务器根本不响应或不及时响应时,就会发生连接超时。
第一个可以通过简单地阻止所有流量到您的 DNS 服务器来模拟,例如在 Linux 系统上:
# iptables -I OUTPUT -p udp -d <iIP of DNS server> --dport 53 -j DROP
Run Code Online (Sandbox Code Playgroud)
使用 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
Run Code Online (Sandbox Code Playgroud)
这会产生 200 毫秒的延迟,具有 ± 10 毫秒的随机变化。
gro*_*lex 20
你需要的是一个“黑洞服务器”。您可以使用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
Run Code Online (Sandbox Code Playgroud)
sys*_*end 11
nameserver 127.0.0.1将无法工作,因为默认行为已经如此。相反,请尝试使用不存在的 DNS。为了确保,您可以执行以下操作:
nslookup example.com 192.0.2.10
如果没有响应,则可以将其192.0.2.10用作 DNS 服务器。
| 归档时间: |
|
| 查看次数: |
9412 次 |
| 最近记录: |