私が見た構成(_/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アドレスを追加すること自体は間違ってはなりません。
ただし、いずれにしても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
_も無視しているようです。それが尊重すると思われる唯一の行は、_dns-nameservers
_のIPv4構成からの_eth0
_行です。
DNSサーバーを構成する正しい方法は何ですか?
なぜそれがそれぞれのiface
スタンザの一部である必要があるかについてのさらなる状況証拠。 _man 8 resolvconf
_ からの引用:
ifup(8)
プログラムを使用すると、/etc/network/interfaces(5)
の設定に従ってネットワークインターフェイスを構成できます。ifup
がネームサーバー情報をresolvconf
にプッシュするようにするには、インターフェースの構成時に_dns-
_行を_/etc/network/interfaces
_の関連するiface
スタンザに追加します。ネームサーバーのアドレスを追加するには、_dns-nameservers
_で始まる行を追加します。
iface eth0 inet static
スタンザまたはiface eth0 inet6 static
スタンザのいずれかにdns- *オプションを配置することは正しいことです。オプションは、それらが属する論理インターフェース定義がアクティブになるとアクティブになります。
私は自分のUbuntu 15.04マシンでこれをテストしたところ、通常DHCPで構成しています。 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日更新]
Ubuntu 16.04.2 LTSを実行している私のRPiで、私の発見は次のとおりでした:
注:NetworkManagerをアンインストールし、resolvconfをそのままにしてその処理を行いました。 (これは固定サーバーであるため、物事はネットワークに関してあまり変わりません。)
[〜#〜] if [〜#〜] dns-searchとdns-nameserverの行が1つのインターフェイス(プライマリ、有線のインターフェイス)のみにあり、再起動時に他の(wlan0)はありませんでした、私の/etc/resolv.confファイルが空になる時間の約95%。
例えば私のインターフェースファイルが次のようになったとき:
# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
address 192.168.1.16
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-search summer.co.uk summer.vpn
dns-nameserver 192.168.1.16
dns-nameserver 192.168.1.1
# end stanza with clear line+
# The loopback network interface
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet static
address 192.168.1.17
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
[〜#〜]その後[〜#〜]再起動後、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
ただし、1回または2回の再起動で、DIDに必要なものが含まれていることがわかりました。
# 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 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn
解決策両方のインターフェース(有線とwlan0)にdns-searchとdns-nameserverの行を指定した場合、すべてのリブートで(これまでのところ)すべて正常に機能していました。
つまり、次のインターフェイスファイルが機能します。
# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
address 192.168.1.16
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-search summer.co.uk summer.vpn
dns-nameserver 192.168.1.16
dns-nameserver 192.168.1.1
# end stanza with clear line+
# The loopback network interface
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet static
address 192.168.1.17
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-search summer.co.uk summer.vpn
dns-nameserver 192.168.1.16
dns-nameserver 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
(今のところ)再起動するたびに次の正しい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 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn
多少冗長な場合でも、この重複した構成は正常であると思います。
結論:インターフェース(lo0以外)にdns-searchおよびdns-nameserver情報がない場合、resolvconfはresolv.confファイルに何も書き込みません。 (ifupがwlan0インターフェースを2番目に実行し、ifupがresolv.confなどをワイプしたかのようです。)
これがバグかどうかはわかりませんが、私には間違っていると感じています。