问题描述
我看到的所有配置示例(/etc/network/interfaces
)都显示您先配置一个接口,然后在其下提供了dns-*
行,例如:
auto eth0
iface eth0 inet static
...
dns-nameservers 127.0.0.2
dns-search example.com my.example.com
现在,我知道DNS协议独立于传输机制。因此,在dns-nameservers
行上添加IPv6地址应该不是per-se错误。
但是,由于无论如何我也正在为IPv6配置接口,因此在此处添加dns-nameservers
行是有意义的:
iface eth0 inet6 static
...
dns-nameservers ::2
dns-search example.com my.example.com
…或者是吗?因为当resolvconf
创建/etc/resolv.conf
时,它只是忽略了所有IPv6 DNS服务器。它似乎也忽略了dns-search
和dns-domain
。似乎值得纪念的唯一一行是eth0
的IPv4配置中的dns-nameservers
行。
配置DNS服务器的正确方法是什么?
关于为什么应将其作为每个iface
节的一部分的进一步间接证据。引用man 8 resolvconf
:
The
ifup(8)
program can be used to configure network interfaces according to settings in/etc/network/interfaces(5)
. To makeifup
push nameserver information toresolvconf
when it configures an interface, adddns-
lines to the relevantiface
stanza in/etc/network/interfaces
. To add nameserver addresses add a line beginning withdns-nameservers
.
最佳办法
将dns- *选项放在iface eth0 inet static
节或iface eth0 inet6 static
节中是正确的。当选项所属的逻辑接口定义变为活动时,这些选项变为活动。
我只是在我通常使用DHCP配置的Ubuntu 15.04计算机上对此进行了测试。我禁用了NetworkManager并编辑了/etc /network /interfaces,使其看起来像这样:
iface eth0 inet static
address 192.168.178.22
netmask 255.255.255.0
dns-nameservers 8.8.8.8
dns-search foo
iface eth0 inet6 static
address fe80::390:f5ff:fef7:96b9/64
dns-nameservers ::2
dns-search bar
然后我做了
$ sudo ifup eth0
结果:
$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:90:f5:f7:96:b9
inet addr:192.168.178.22 Bcast:192.168.178.255 Mask:255.255.255.0
inet6 addr: fe80::390:f5ff:fef7:96b9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2114609 errors:0 dropped:1 overruns:0 frame:0
TX packets:1757693 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2033346950 (2.0 GB) TX bytes:1318685445 (1.3 GB)
Interrupt:20 Memory:f7e00000-f7e20000
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver ::2
nameserver 8.8.8.8
search bar foo
请注意,两个节中的地址dns-nameservers和dns-search选项现在处于活动状态。
[2015年5月30日更新]