mal*_*c4k 11 linux dns dhcp debian
假设我在域更改数量和传播缓慢的环境中工作。
我想在设置更改后立即测试域配置,但传播速度很慢。所以我想/etc/resolv.conf在我的 Debian 6.0.3 笔记本电脑中添加更多的域名服务器。尤其是我的域名注册商的域名服务器。我通过添加:
append domain-name-servers 85.128.130.10, 194.204.152.34;
Run Code Online (Sandbox Code Playgroud)
到我的/etc/dhcp/dhclient.conf文件。重新连接到网络后,我/etc/resolv.conf已正确更新,但显示以下消息:
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
Run Code Online (Sandbox Code Playgroud)
那么有没有办法同时使用 3 个以上的名称服务器?
Gil*_*il' 19
仅127.0.0.1作为名称服务器放入 中/etc/resolv.conf,并在本地运行 DNS 缓存。我推荐Dnsmasq,它轻巧且易于设置。在 Debian 和 Ubuntu 等发行版上,我还建议安装resolvconf包,它负责/etc/resolv.conf在您没有运行本地 DNS 缓存时进行维护,或者在您运行时维护 DNS 缓存程序的配置。
这就是我让 Debian 一次使用超过 3 个名称服务器的方式。
安装dnsmasq包
将我的本地 DHCP 客户端配置为不使用 DHCP 服务器提供的 DNS 服务器地址,而只使用本地服务器。为此,我在我的/etc/dhcp/dhclient.conf文件中添加了以下行
supersede domain-name-servers 127.0.0.1;
配置dnsmasq不使用默认/etc/resolv.conf文件,而是使用它自己的替代文件。在/etc/dnsmasq.conf添加以下行
resolv-file=/etc/resolv.dmasq
创建/etc/resolv.dmasq任意数量的名称服务器。
重新启动dnsmasq服务。
我使用 9 个不包含我的域的已定义名称服务器对其进行了测试。系统无法解析其名称。当我添加第 10 个名称服务器时,系统正确解析了它的名称。
从resolv.conf:
最多可以列出 MAXNS(当前 3 个)名称服务器,每行一个。如果有多个服务器,解析器库会按列出的顺序查询它们。如果不存在名称服务器条目,则默认使用本地计算机上的名称服务器。(使用的算法是尝试名称服务器,如果查询超时,则尝试下一个,直到名称服务器用完,然后重复尝试所有名称服务器,直到执行最大重试次数。)
一旦尝试了所有名称服务器,并且查询失败,默认值是返回主机未找到消息。
您能否在 conf 文件中重复下面的同一行,以便
nameserver添加多个 指令。每行nameserver指令最多支持 3 个 DNS 地址(每行)。请注意,只有一台主机被尝试过,它位于 resolv.conf 列表的顶部;如果在第一台服务器上找不到地址或服务器不可访问,则仅尝试第二台服务器,如果第二台服务器上的查询失败,则继续第三台服务器。在主机解析期间没有从 resolv.conf 中循环或随机选择名称服务器,因此尝试所有名称服务器的成本将直接影响底层系统/应用程序的性能。
但是,我认为您最好实施本地缓存名称服务器,如果 dns 调用的数量减少/也取决于延迟,则使用/依赖主机解析的应用程序的 DNS 性能会增加。
另一种方法是使用 openDNS 服务器,它们可能是互联网上更新最快、服务速度最快的 DNS 服务器。
| 归档时间: |
|
| 查看次数: |
20848 次 |
| 最近记录: |