/etc/resolv.conf 中“尝试”选项的意外行为

/etc/resolv.conf 中“尝试”选项的意外行为

我希望 Linux 只向 DNS 服务器发出一个请求,等待 5 秒超时,然后在没有答案的情况下中止查找。

为此,我设置了以下选项,/etc/resolv.conf假设attempts元素options表示 DNS 请求的确切数量:

nameserver 'DNS Server IP address'
domain     'Domain Name'
options     attempts:1 timeout:5

但系统的行为却出乎意料。事实上,对于这些设置,我观察到:

DNS request
Wait for a 5 sec timeout
DNS request repeat
Wait for a 5 sec timeout

如果我设置尝试次数:2,那么将会有 4 次请求。

  1. 我是否正确理解“1 次尝试”实际上意味着“发出请求然后在超时后重新请求”?

  2. 有没有办法改变这种行为,以便系统在 1 次尝试范围内只发送一个 DNS 请求?

谢谢

答案1

在我看来,您的解释是正确的。

您检查过这两个查询是什么吗?也许第一个查询用于AAAA记录,第二个查询用于A记录,这是正常行为。如果是这样,请尝试添加,inet6:off同样options ,这可能很简单,但请验证您拥有的项目数量nameserver。超时是针对每个项目的顺序。

相关内容