web-dev-qa-db-ja.com

16.10 DNSの解決に失敗する

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

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

Cisco Anyconnect VPNを使用して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を含むNice応答を返し、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は、eth/wlan接続のIP4.DNSホストとして、dhcpサーバー(ルーター)をリストします。パブリックドメインに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

resolved.confのmanページには、

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サービスを提供するコンポーネントであると考えましたが、明らかにその仕事をしている何かがそこにあります。

34
aweibell

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リークも無効にできます。

[/更新]

15
Vincent Gerris

OpenVPN接続中のDNSの動作は、ubuntuforumsで 提案 を実行するとすぐに改善されました。

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

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

Sudo apt-get remove dnsmasq 

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

3
Nitai

/etc/nsswitch.confを編集して変更

hosts:          files mdns4_minimal [NOTFOUND=return] dns

hosts:          files dns mdns4_minimal [NOTFOUND=return]

編集:

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

1
PaL