web-dev-qa-db-ja.com

Ubuntu:/ etc / network / interfacesでDNSサーバーをresolvconf用に正しく設定する方法は?

私が見た構成(_/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_で始まる行を追加します。

14
0xC0000022L

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日更新]

9
jdthood

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などをワイプしたかのようです。)

これがバグかどうかはわかりませんが、私には間違っていると感じています。

1
Will