私が見たすべての設定()の例は、/etc/network/interfaces
インターフェイスを設定し、次dns-*
の行を提供することを示しています。
auto eth0
iface eth0 inet static
...
dns-nameservers 127.0.0.2
dns-search example.com my.example.com
今、私はDNSプロトコルがトランスポートメカニズムから独立していることを知っています。したがって、有線でIPv6アドレスを追加すること自体がエラーにならないでくださいdns-nameservers
。
ただし、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-
iface
/etc/network/interfaces
dns-nameservers
答え1
iface eth0 inet static
stanzaまたはstanzaにdns-*オプションを入れるのが正しいです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日更新]
答え2
Ubuntu 16.04.2 LTSを実行しているRPiで私が見つけたものは次のとおりです。
注:NetworkManagerをアンインストールし、resolvconfのみを操作するように残しました。 (これは固定サーバーなので、ネットワーキングの面ではあまり変わりません。)
もしあるインターフェース(デフォルトの有線インターフェース)にはdns-search行とdns-nameserver行のみがあり、別のインターフェース(wlan0)にはありません。その後、再起動時に約95%の時間内に/etc/resolv .confファイルが空になります。
たとえば、私のインターフェースファイルが次のような場合:
# 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回再起動した後、私は望むように正確に動作することがわかりました。
# 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などを消去するのと同じです。)
これがバグかどうかはわかりませんが、私には合わないようです。
答え3
/etc/network/interfacesでIPv6 DNSサーバーを使用するには...
dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888.
resolv.confにIPv6 dnsnameserを永続的に追加するには、以下に追加したのと同じリンクを使用し、一意のIPv6 DNS名を入力してresolvconfデフォルトファイルを編集します。
nameserver 2001:4860:4860::8844
nameserver 2001:4860:4860::8888
IPv6を使用して/etc/network/interfacesを設定するには、このガイドを使用してください。http://www.bytelinux.com/configure-permanent-static-ip-address-alias-interfaces-debian-based-systems/次のようにIPv4をIPv6に置き換えます。auto eth0
iface eth0 inet6 static
address 2800:210:0:1::3
netmask 64
gateway 2800:210:0:1::1
dns-nameservers 2001:4860:4860::8844
答え4
以前の回答のリンクで提案されているように、resolvconfベースファイルを編集し、これらのIPv6 DNSネームサーバーを/etc/resolv.confシステム全体のファイルに直接実装し、ネットワークインタフェースファイルを引き続き使用することはどうですか?特定のNICに追加のIPv6ネームサーバーを使用する場合は、/etc/resolv.confにDNS IPv6ネームサーバーセットを追加し、/etc/network/interfacesでのみ使用できます。