web-dev-qa-db-ja.com

Dhclientが/etc/resolv.confを更新しない

Linux Mintで/etc/resolv.confファイルを表示すると、最初のコメントは/etc/resolv.confファイルがresolvconf(8)によって生成されることを示しています。

~ $ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

Resolvconf(8)のmanページを言い換えると、「resolvconfプログラムは、dhclientなどのDHCPクライアントによって実行されます」。

Dhclient wlan0を実行しています。

~ $ dhclient wlan0

Dhclientはresolvconfプログラムに/etc/resolv.confを更新させるべきです。 /var/lib/dh​​cp/dhclient.leasesファイルは、ネームサーバーのIPアドレス(192.168.0.6)をリースできることを確認します。

~ $ cat /var/lib/dhcp/dhclient.leases 
lease {
  interface "wlan0";
  . . .
  option domain-name-servers 192.168.0.6;
  . . .
}

ただし、/ etc/resolv.confファイルは更新されません。 /etc/resolv.confファイルにはネームサーバー127.0.1.1があります。

~ $ 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 127.0.1.1
search software.eng.apl

/ etc/network/interfacesにリストされているネームサーバーはありません。

~ $ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

DHCPサーバーからリースされているネームサーバーを使用して/etc/resolv.confファイルを更新するために、ここで何が欠けているのかわかりません。 DHCPサーバーは、DHCPDを使用するLinux CentOSマシンです。

5
JeremyCanfield

Mintやその他の最新のディストリビューションにはデフォルトでmdnsが付属しており、通常のパブリックDNSをローカルの「分散型」ラッパーでラップし、ローカルネットワークのzeroconfサポートを有効にします。基本的に、ローカルDNSサーバーは、発見したローカルネットワーク内の名前を解決し、パブリックインターネット解決のために(現在プロキシされている)パブリックDNSにフォールバックします。つまり、ローカルネットワーク外の名前を使用します。

多くの言葉で、あなたのresolv.confは正しく、このシナリオに適しています。mdnsがISPのネームサーバーへのアクセスに問題がある場合は、内部its設定を確認する必要があります-もちろん、zeroconfのサポートを気にしない場合は、mdns(およびおそらくAvahi)を無効にすると、resolv.conf伝統的な方法で。

も参照してください。 https://help.ubuntu.com/community/HowToZeroconf

8
tripleee

OPで説明されているのと同じ問題がありましたが、以前の回答のどれもうまくいきませんでした。 Linux Mint 18を実行していますが、Dockerコンテナー内でネットワーク機能を使用しようとしたときにこの問題を発見しました。 Dockerは/etc/resolv.confからのDNS値を解決することを期待していました。しかし、リストされている唯一のネームサーバーは127.0.1.1だったので、Dockerネットワーキングは失敗しました。

別の解決策がaskubuntuで見つかりました。ここでは、誰かを助けるために相互参照として投稿しています。


NetworkManagerは、(resolvconfユーティリティを介して)アドレス127.0.1.1をresolv.confに挿入するプログラムです。 NetworkManagerは、dnsmasqプログラムのインスタンスを起動してローカル転送ネームサーバーとして機能するように構成されている場合にのみ、そのアドレスを挿入します。そのdnsmasqインスタンスは、アドレス127.0.1.1でクエリをリッスンします。

ローカル転送ネームサーバーを使用しない場合は、dnsmasqインスタンスを開始せず、そのアドレスを挿入しないようにNetworkManagerを構成します。 /etc/NetworkManager/NetworkManager.confでは、行dns=dnsmasqをコメント化してください

Sudo vim /etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

networkManagerサービスを再起動します。

Sudo service network-manager restart

このモードでは、NetworkManagerは/etc/resolv.confを(まだresolvconfを介して)更新して、NetworkManagerがアクティブな接続用に持つネームサーバーアドレスを含めます。

Resolv.confを更新するためのresolvconfメカニズムを無効にして、静的なresolv.confファイルを使用する場合は、次のようにします。

Sudo rm -f /etc/resolv.conf  # Delete the symbolic link
Sudo vim /etc/resolv.conf   # Create static file
0
axiopisty