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


14

私が見た構成(/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-searchdns-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ます。


それでもこの問題が発生する場合は、/ etc / network / interfacesファイル全体と、Ubuntu 15.04のresolvconfパッケージに含まれている/ usr / share / resolvconf / dump-debug-infoの出力を投稿してください。
jdthood

回答:


9

iface eth0 inet staticスタンザまたはスタンザのいずれかにdns- *オプションを配置することは正しいことですiface eth0 inet6 static。オプションは、それらが属する論理インターフェース定義がアクティブになるとアクティブになります。

私は自分の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日更新]


1

Ubuntu 16.04.2 LTSを実行しているRPiで、私の発見は次のとおりでした。

注:NetworkManagerをアンインストールし、resolvconfを残してその処理を行いました。(これは固定サーバーであるため、物事はネットワークに関してあまり変わりません。)

IF私は/etc/resolv.confファイルは次のようになり、時間の95%程度、その後、再起動時にのみONEインタフェース(プライマリ、有線1)ではなく、他の(wlan0)のDNS検索とDNS-ネームサーバのラインを持っていました空の。

たとえば、私のインターフェースファイルが次のようになっている場合:

# 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

THEN再起動後に、私は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

カスタムDNSの使用を追加するためにネットワークインターフェースを編集することは1つの方法です...しかし、システム全体のresolv.confをカスタムdnsnameserverで永続的に変更するには、resolvconfパッケージをインストールし(デフォルトでまだインストールされていない場合)、そのベースに入力する必要がありますカスタムDNSネームサーバーの値を含む構成ファイル。この短いガイドがresolv.conf DNSエントリに関する詳細な設定に役立つことを願っていますhttp://www.bytelinux.com/make-permanent-changes-to-resolv-conf-file-on-ubuntu/


2
UnixとLinuxへようこそ!これは理論的には質問の答えになるかもしれませんが、そのガイドの重要な部分をここに含めて、参照用のリンクを提供することが望ましいでしょう
Anthon 2015

@MateiCezar:詳しく説明してもらえますか?私の質問を最後まで読んだかどうかはわかりません。パッケージresolvconf インストールされました。/etc/network/interfacesDNSサーバーをそれぞれIPv4 IPv6 用に構成したいと思います。
0xC0000022L 2015

-1

/ etc / network / interfacesでIPv6 DNSサーバーを使用したい場合は、次のように特定のネットワークインターフェイスにIPv6 DNS名前付けエントリを配置するだけです。

dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888. 

IPv6 dnsnameserをresolv.confに永続的に追加するには、以下に追加したのと同じリンクを使用し、独自の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 

書式を修正しました。繰り返しますが、私の質問では、これによってIPv6用のDNSサーバーがに追加されないことが明確に述べられています/etc/resolv.conf。これが何らかの形で機能する場合は、正確なシステムバージョンを知っておくと便利です。
0xC0000022L 2015

これをまっすぐにしましょう... / etc / network / interfacesからIPv6 DNSリゾルバーを使用し、どういうわけかそれらをファイルに追加しても機能しませんか?
Matei Cezar 2015

/etc/network/interfaces細かく追加できます。何も起こらないのは、彼らが本来ある/etc/resolv.confべきように転向することです。そして、私は自分が間違っていることを理解しようとしています、はい。
0xC0000022L 2015

まだ聞き取れませんか?/ etc / network / interfacesからのそれらのDNSエントリは/etc/resolv.confに転送されますか?インターフェースからのこれらのnamserversエントリは、/ etc / resolv.comに転送または書き込まれることはありません。それらは、そのNICから独自に動作し、システム全体に実装されていません。/etc/resolv.confファイルのDNSだけが、dnsnameserversエントリーのないインターフェースによって使用されます。
Matei Cezar 2015

申し訳ありませんが、それでも、このDNSネームサーバーエントリで何を達成しようとしているかわかりません。
Matei Cezar 2015

-1

リンクを使用した以前の回答で提案されているようにresolvconfベースファイルを編集して、これらのIPv6 DNSネームサーバーを/etc/resolv.confシステム全体のファイルに直接実装しても、ネットワークインターフェースファイルを引き続き使用しませんか?/etc/resolv.confにDNS IPv6ネームサーバーのセットを追加できます。特定のNICに他のIPv6ネームサーバーを使用する場合は、/ etc / network / interfacesでのみ使用します。


あなたがあなたの最後の文で述べたことは、私がresolvconfベース設定を使いたくない理由であり、それがまさに私試みていることです。さらにそれはまさに失敗しているものです。
0xC0000022L 2015

はい、分かりました!しかし、なぜこの方法で実装したいのですか?どちらの方法でも、システム全体でアクセスできるDNSネームサーバーのみが必要な場合、それらをネットワーク/インターフェイスからresolv.confに転送する理由はありますか?ファイルとあなたは終わった!?
bytelinux com 2015

管理しているマシンの数はわかりませんが、私にとっては、私の生活をより簡単にするために十分です。/etc/network/interfacesは仕事をすることになっているので、私は自分が間違っていることを理解しようとしています。
0xC0000022L 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.