首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何模拟DNS服务器响应超时?

如何模拟DNS服务器响应超时?
EN

Server Fault用户
提问于 2016-05-11 08:12:17
回答 4查看 11.8K关注 0票数 23

当应用程序由于超时而无法解析主机名时,我需要测试它的行为。在nameserver 127.0.0.1中设置/etc/resolv.conf无效:相关函数将立即返回(异常)。该测试平台是一个VM,它使用Vagrant创建,通过DHCP接收其IP地址。

EN

回答 4

Server Fault用户

回答已采纳

发布于 2016-05-11 08:17:06

nameserver 127.0.0.1不会工作,因为默认的行为已经是这样了。相反,尝试使用不存在的DNS。为了确保,您可以:

nslookup example.com 192.0.2.10

如果您没有得到响应,那么可以使用192.0.2.10作为您的DNS服务器。

票数 12
EN

Server Fault用户

发布于 2016-05-11 08:42:46

当DNS服务器根本没有响应或没有及时响应时,就会发生连接超时。

可以通过简单地阻塞DNS服务器的al流量来模拟第一种情况,例如,在Linux系统上:

代码语言:javascript
运行
复制
# iptables -I OUTPUT -p udp -d <iIP of DNS server> --dport 53 -j DROP

使用DROP作为目标意味着你甚至不会得到一个连接被拒绝的错误,它变成了一个黑洞。(通常不太可能进行区域传输,因此不需要在UDP之外阻塞TCP协议。)

造成延迟的问题要稍微多一些。来自netem手册

代码语言:javascript
运行
复制
# 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

这就产生了一个200毫秒的随机变化的延迟。

票数 28
EN

Server Fault用户

发布于 2016-05-11 17:45:16

你需要的是一个“黑洞服务器”。您可以使用blackhole.webpagetest.org (72.66.115.13),它将无声地删除所有请求。

我之所以建议这样做,而不是其他答案,是因为前面提到的服务器是为这个唯一的目的而建立的。

示例:

代码语言:javascript
运行
复制
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
票数 23
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/776049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档