16.10 DNSの解決に失敗する


34

16.04-installationを16.10にアップグレードした後、DNSに問題があります。

まず、イーサネットで動作している間に、WiFiに接続すると数回問題が発生しました。今ではWiFiでも動作するようです。理由はわかりませんが、それが今直面している問題に何らかの形で関連しているのであれば:

VPNホストに接続する場合のCisco AnyConnectのVPN、それは「/etc/resolv.confの」内の行を追加します。Ubuntuは現在systemd-resolveを使用ていることを理解しており、manページには/etc/resolv.confを処理するための3つの異なるモードがあると書かれています。私の/etc/resolv.confはシンボリックリンクではなく、127.0.0.53をDNSサーバーとしてリストしていません。そのため、systemd-resolvedが「DNS構成データを読み取る」べきだと理解しています。しかし、それは気にしないようです。

掘る

(私にとって)奇妙なことdig host.customer.tldは、要求されたホストのIPを示すANSWER SECTIONでいい答えを返し、VPNクライアントによってSERVERとして/etc/resolv.confに追加されたDNSサーバーを参照することです。VPN接続が無効になっていると、応答がありません。つまり、digは/etc/resolv.confを読み取ります

ping

一方、ブラウザは/etc/resolv.confにアクセスせず、ホスト名を解決できません。ちなみに、どちらもping / curlではありません。

nmcli

関連する投稿を見つけて、実行してみました

nmcli device show <interfacename> | grep IP4.DNS

ただし、cscotun0デバイスのDNSはリストされません。(ただし、16.04でも同じではありません。)また、nmcliは、私のdhcpサーバー(ルーター)をeth / wlan接続のIP4.DNSホストとしてリストします。dig @192.168.0.1 xxxパブリックドメインに使用しても問題ありません。

構成

/run/systemd/resolve/resolv.confにリストされている他のDNSサーバーがいくつかあります。

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
# Too many DNS servers configured, the following entries may be ignored.
nameserver 2001:4860:4860::8844

これらは私のDHCPサーバーによって提供されません。ファイル/etc/systemd/resolved.confには、セクションヘッダーを除くコメント行のみが含まれます。

[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844

manページresolved.confはと言います

DNS =システムDNSサーバーとして使用するIPv4およびIPv6アドレスのスペース区切りリスト。...互換性の理由から、この設定が指定されていない場合、/ etc / resolv.confにリストされたDNSサーバーが代わりに使用されます(そのファイルが存在し、サーバーが構成されている場合)。この設定のデフォルトは空のリストです。

FallbackDNS =フォールバックDNSサーバーとして使用するIPv4およびIPv6アドレスのスペース区切りリスト。systemd-networkd.service(8)から取得したリンクごとのDNSサーバーは、DNS = aboveまたは/etc/resolv.confで設定されたサーバーと同様に、この設定よりも優先されます。したがって、この設定は、他のDNSサーバー情報が不明な場合にのみ使用されます。このオプションが指定されていない場合、代わりにDNSサーバーのコンパイル済みリストが使用されます。

私の場合、フォールバックは/run/systemd/resolve/resolv.confで終わるようです。

編集:私は問題が何であるか確信がありませんでしたし、正直に言うと、これがどのように機能するのかまだ正確にはわかりませんが、少なくとも私の場合の解決策systemd-resolvedサービスを無効にすることでした。私は、サービスが必要であり、それがすべてのローカルアプリケーションにDNSサービスを提供するコンポーネントであると考えましたが、明らかにその仕事をしている何かがそこにあります。


VPNを使用していない場合、DNSに問題がありますか?
マークストースバーグ

16.04で適用される可能性のあるAnyConnectの問題に対してこのソリューションを試しましたか?
マークストースバーグ

3
16.10のAnyconnectでまったく同じ問題に直面していることに注意してください。VPNサービスに複数回接続すると一時的に修正されるようですが、ある時点でDNSが再び機能しなくなります。
jmartinez

2
16.04には存在しなかった同様のDNS解決の問題があります。私の提案は、/ etc / resolv.confを削除(バックアップ)することから始めることです。resolvconfパッケージをアンインストールします。リブート; そして、VPNの有無にかかわらず、dig、systemd-resolveを使用して、何が機能しているかを確認します。
フィルコルボーン

1
このバグレポートを比較してください:bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317
jdthood

回答:


15

USB Wifiドングルを追加するなど、同様の問題が発生しました。最初に、上記のようにnetworkmanagerでdnsmasqを無効にし、dnsmasqを停止しました(service dnsmasq stop)

VPN接続中に問題を解決すると、ルーティングテーブルが少し異なって見えることに気付きました(routeコマンドの出力)。ゲートウェイの名前は、動作しない場合はDD-WRTであり、動作する場合は単に「ゲートウェイ」です。この出力は変更されませんでした。

nmcli device show wlp1s0 | grep IP4.DNS

ルーターのIPが表示され続けました。しばらく動作させるための回避策は、systemd-resolvdを再起動することです。

sudo service systemd-resolved restart

dnsmasqは式から外れているため、問題の原因であるsystemd-resolvd、またはルーティングテーブルを変更するもののいずれかです。

だから、これは私が見る唯一の違いです:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    601    0        0 

動作します。そして、これが機能しないとき:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         DD-WRT          0.0.0.0         UG    601    0        0 wlp1s0

そして、VPN回線上の同じ名前の違い:

vpn-dns.name gateway         255.255.255.255 UGH   0      0        0 wlp1s0

ルーティングテーブルに何が影響を与えるかを誰が知っていますか?バグレポートを提出できるようにこれを特定できれば素晴らしいと思います。私はこれらのバグをすべて追跡することにうんざりしておりますが、将来のユーザーと私たちが幸せになるように修正したいと思います:)。

[更新] systemd-resolvedを停止すると、これが修正され、他のものに悪影響を与えないようです。あなたはそれを試して、それが何かを壊すかどうかを知らせることができます。デバッグでsystemd-resolvdを実行すると、壊れたときに見た:

Removing scope on link wlp1s0, protocol llmnr, family AF_INET
Removing scope on link wlp1s0, protocol llmnr, family AF_INET6
Removing scope on link *, protocol dns, family *

無効にするには:

sudo systemctl disable systemd-resolved.service

Ubuntuレポートを提案して更新しました。[/ update]追加:注:バグレポート:https : //bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317に は、17.04のパッチがいくつかの問題についてあります。バグレポートを確認し、可能であればパッチをテストしてください。ありがとうございました!

[更新]

上記のバグレポートを確認してください。問題は17.10で解決されているようで、簡単なコマンドでDNSリークも無効にできます。

[/更新]


徹底的な報告をありがとう!私はあなたとは異なるルーティングテーブルの変更を見ています-私のVPNは、それらが使用されているときに動的に多くのルートを追加するようです、私は疑っています。ただし、systemd-resolvedを無効にすると、私の問題でも非常にうまくいきました!
アウェイベル16

最終的には、ルーティングテーブルの名前は重要ではなく、systemdで解決され、DNSの解決が何らかの形で混乱していたと思います。また、dnsmasqサービスを無効にして、サービスが開始されないようにしなければなりませんでしたが、現在はすべて動作します。誰かがそれをすべて正しく動作させるために必要なパッケージ間の依存関係の適切なセットを修正することを期待しましょう。それは、対処するのが面倒なバグです。
ビンセントジェリス

systemdで解決されたサービスを再起動しても何の効果もありませんでしたが、完全に無効にし、問題はもうありませんでした。
fd8s0

ただ、繰り返しに、私は、ここしばらくの間、ほとんどの作業をほとんどの回答を試してみました16.10から17.04へのアップグレード以来、数日間のネットワークの問題を持っていたし、問題はどのような最終的に働いたことは使用にsystemd-解決を無効にして再び作物sudo systemctl disable systemd-resolved.service DNSの設定します/etc/resolv.confの中8.8.8.8へ
ヤペテOngeri - inkalimeva

この単純な行は私のために解決しました:sudo service systemd-resolved restart、ありがとう!
セルヒオアブレウ

36

OpenVPN接続中のDNSの動作は、ubuntuforumsの提案に従うとすぐに改善されました。

  1. /etc/NetworkManager/NetworkManager.confルート権限を持つエディターで開きます。
  2. #読み取る行を削除(またはハッシュでコメントアウト)しますdns=dnsmasq
  3. NetworkManagerを再起動します sudo service NetworkManager restart

ありがとう。今これを試してみましたが、うまくいきませんでした。実際、DNSは正常に機能しています。ただし、Cisco VPNクライアントを起動すると、シンボリックリンク/etc/resolve.confがプレーンテキストファイルに置き換えられます。
アウェイベル16

1
この修正はうまくいきました。OpenVPNでDNSの問題がありました。この変更の後、私の/etc/resolve.confが変更されました。dnsmasqもインストールしていないので、とても奇妙です。
ポストフューチャー主義者

これはNMおよびopenvpnの問題に対して機能する可能性がありますが、少なくとも接続が遅くなります。ここで推測されるように
BairDev

3

同じ問題に遭遇しました。どういうわけか、私はいくつかのアプリケーションでDNSmasqをインストールする必要があります。dnsmasqを削除するだけで問題は解決しました。

sudo apt-get remove dnsmasq 

それ以降、接続が切断されたり、一部のサイトがロードできなくなったりしません(他のサイトは機能していましたが、Gmailのロードで問題が発生しました。つまり、Gmailに突然接続できませんでした)。


削除しようとしたときのdnsmasq-ベースパッケージを、適性は、それがで必要とされていることを私に伝え、ネットワーク管理者Ubuntuのファン、そしてそれが削除されている追加パッケージの多くになります削除...
aweibell

どのディストリビューションとバージョンですか?私はUbuntu 16.10を使用していますが、削除しても問題はありませんでした。そうでなければ、私はそれを投稿しなかっただろう:)
ニタイ

私もUbuntu 16.10を使用しています!奇妙な。 apt remove dnsmasq-base...The following packages will be REMOVED: account-plugin-ubuntuone checkbox-converged checkbox-gui dnsmasq-base indicator-network network-manager network-manager-gnome network-manager-openconnect network-manager-openconnect-gnome network-manager-openvpn network-manager-openvpn-gnome network-manager-pptp network-manager-pptp-gnome network-manager-vpnc pay-service plainbox-provider-checkbox plainbox-provider-resource-generic ubuntu-desktop ubuntu-fan ubuntu-push-client ....
aweibell

ここでも16.10。と同じです。他のすべてのパッケージも削除する必要があります。
デイブキンケイド

先日また切断されました。どういうわけか、1つのアプリでdnsmasqを再度再インストールする必要がありました。いずれにせよ、今回は単にsystemdで無効にしました。これまでのところ、それはもう実行されておらず、切断も発生しません。
ニタイ

1

編集/etc/nsswitch.confと変更

hosts:          files mdns4_minimal [NOTFOUND=return] dns

hosts:          files dns mdns4_minimal [NOTFOUND=return]

編集:

私はかなり長い間同じ問題を抱えていました。VPNからドメイン名を解決できましたが、それらをpingまたはカールしたり、他のアプリケーションで使用したりできませんでした。上記の変更はそれを解決しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.