web-dev-qa-db-ja.com

Ubuntu 17.04 systemd解決DNSルックアップがランダムに失敗する

私はUbuntu 17.04にアップグレードしました、そしてそれは今Ubuntu 16.10で最初に導入された 新しいDNSリゾルバメカニズム を持っているようです。

私は今DNSルックアップの失敗を50%の確率で受けています。 nslookupへの他の呼び出しはすべて失敗し、半分の呼び出しは問題なく解決され、半分はこれを解決します。

watch -n 1 nslookup google.com

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find google.com: SERVFAIL

私の理解したところでは、DNSサーバーのIPアドレスはsystemd解決を表すために使用されています。これは遅いDNSクエリ(または何か...)を避けるためにある種のメタルックアップを行います。私は先週17.04にアップグレードした2台のマシンでまったく同じ動作を見ています。

問題がここにあること、そしてそれに対処するための正しい方法が何かという考えはありますか?

アップグレード前は問題なく動作していました(16.04または16.10から、どちらを覚えているのかわかりません、申し訳ありません)。私は17.04 LTSリリースでしたが、今私は銃を飛ばしたことがわかり、4月まで安定しているとは考えられません。だから...ここにいるよ.

また、注目に値する...ブラウザは問題を起こしているようには見えないが、nslookup、ping、gitなどはしている。

37
moodboom

2017-04-18の時点で、Ubuntu 17.04はDNSSECをサポートするDNSサーバーを解決できません。このデーモンでDNSSECを無効にします。

Sudo mkdir -p /etc/systemd/resolved.conf.d
printf "[Resolve]\nDNSSEC=no\n" | Sudo tee /etc/systemd/resolved.conf.d/no-dnssec.conf

必要に応じてresolvconfを再設定します(「動的更新のために/etc/resolve.confを準備しますか?」というメッセージが表示された場合はyesと入力します)。

Sudo dpkg-reconfigure resolvconf

Systemd -olvedを再起動します。

Sudo systemctl restart systemd-resolved

あなたのDNSが働き始めるはずです。あなたはsystemd-resolve www.google.comを試して、応答を見ることで確認できます。

45
Sajad Bahmani

Systemd-resolvedと手動の/etc/resolv.conf管理を交互に切り替えてきましたが、systemd DNSリゾルバーのメカニズムがまだ安定していないことがわかりました。

Ubuntu 16.10には少なくとも1つの libnssバグ があり、17.04にはまだあります。 Ubuntu 16.10がsystemd-resolvedをオンにして以来、DNSの問題を抱えている人が多くいます。 here は1つの分析であり、 here は別の人の回避策です。 GoogleのDNSサーバーで/etc/resolv.confを手動で上書きするまで、それらのいずれも機能しませんでした。

nameserver 8.8.8.8   << or another if you don't trust google
nameserver 8.8.4.4

動的DNS構成が不要な場合、これは 完全に有効なソリューション です。必ずsystemd-resolvedを停止して無効にしてください:

Sudo systemctl disable systemd-resolved.service
Sudo service systemd-resolved stop
12
moodboom

Ubuntu 17.04と他のディストリビューションはsystemdを解決しています。これにはsystemd -olvedが含まれます。

  • SjBの回答で述べたように、DNSSECサポートは問題を引き起こす可能性があります。
  • systemd-resolvedはすべてのDNSリゾルバをpingし、最速のものを使えるようにします。これはより複雑な環境でVPNなどの問題を引き起こす可能性があります。
  • DNSサーバーの証明書が検証されました。時計がずれているとエラーが発生します。

私はそれが必ずしも悪い変更ではないと思います、それは変更の多くです。私はもっ​​と学ぶようにこの答えを更新して拡張しようとします。

4
moodboom

簡単に言えば、/etc/systemd/resolved.confの[Resolve]セクションに "DNSSEC = no"という行を追加するだけです。

https://bugs.launchpad.net/ubuntu/+source/systemd/++bug/1682499 /

3
John Ball

ネームサーバー/etc/systemd/resolved.conf DNS = 194.109.xxx.xxxを追加するだけです(ルーターでは、外部ネームサーバー)。

systemctl restart systemdに解決されました

randを3から2に変更する必要はなく、dnssec設定をoffに変更する必要もありません。

1
henk