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


38

Ubuntu 17.04にアップグレードしたところ、Ubuntu 16.10で最初に導入された新しいDNSリゾルバーメカニズムがあるようです。

現在、50%の時間でDNSルックアップエラーが発生しています。 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-resolvedを表すために使用されるようになりました。過去1週間に17.04にアップグレードした2台のマシンでまったく同じ動作が見られます。

ここに問題が何であるか、それを解決する正しい方法はありますか?

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

また、注意してください...ブラウザは問題を呈していないようですが、nslookup、ping、gitなどはそうです。


2
未来へのヒント:Ubuntuバージョンは、.リリースされる月にリリースされる年です。(だからあなたの場合にはそれがになります04/ 17
timotree

systemd-resolvedがディストリビューションに侵入するような音は、他の人々にも問題を引き起こしています。
ムードブーム16

回答:


46

Ubuntu 17.04は、2017-04-18の時点で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を準備しますか?」とはい)

sudo dpkg-reconfigure resolvconf

systemd-resolvedを再起動します。

sudo systemctl restart systemd-resolved

DNSが機能し始めます。systemd-resolve www.google.com応答を試行して確認することで確認できます。


答えてくれてありがとう-それが何をするのか説明できますか?
-bertieb

Ubuntu 17.04は(ここまで)DNSSECをサポートするDNSサーバーを解決できません。このデーモンでDNSSECを無効にします。
サジャドバーマニ

ありがとう、あなたの答えにその説明を編集できますか?:)
ベルティエブ

この解決策は私にとってはうまくいきませんでした-これを設定した後、最初にルックアップを行うたびに、何度か試行が成功し、結果がキャッシュされた後、SERVFAILエラーが発生します。
グス

1
@samuelL。Tシャツに関しては、何かを印刷し、同時にファイルに送信するのはただのおしゃれな方法です。通常、> [より大きい記号]を使用して出力をファイルにリダイレクトできますが、出力は表示されません。Teeは両方の場所に行きます。Resolvconfは「解決を構成します」。
moodboom

12

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

Ubuntu 16.10には少なくとも1つのlibnssバグがあり、17.04にはまだあるようです。systemdに分解オンのUbuntu 16.10以降のDNSの問題を持つ多くの人々がありますが、ここでは 1回の分析で、ここでは他の人の回避策です。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

resolveconfに変更しても問題は解決しませんでしたが、systemd-resolvedの使用に戻るにはどうすればよいですか?(ありがとう)
エドワードモフェット

1
試してみてください:systemctl enable systemd-resolved.service && systemctl start systemd-resolved.service
moodboom

1
おい、あなたはmaシステムを救っただけだ!BRAVO
革命的な

18.04で問題なく動作した
アンドレM.ファリア

4

Ubuntu 17.04およびその他のディストリビューションはsystemdを採用しています。systemdにはsystemd-resolvedが含まれており、ユーザーにかなり手間のかかるDNS解決を要求します。

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

私はそれが必ずしも悪い変更だとは思わない、それはただのたくさんの変更だ。詳細がわかり次第、この回答を更新および拡張してみます。



1

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

systemctl restart systemd-resolved

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


残念ながら、これだけでは「他のリクエストが失敗する」という問題を解決することはできません。
moodboom

@moodboomに同意しますが、これも私には解決しません。
アンドレ・M・ファリア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.