systemd-resolvedはローカルドメインのDNSサーバーを照会しません


12

17.04にアップグレードしてから、ローカルネットワーク(silvesternet.local)のアドレスを解決できなくなりました。私は次の応答を受け取ります:

$ systemd-resolve edgerouter
edgerouter: resolve call failed: No appropriate name servers or networks for name found

ジャーナルには、このルックアップに関連するトランザクションのタイムアウトのレポートのみがあります。

Wiresharkを使用してネットワークトラフィックをスニッフィングしましたが、名前を検索することさえ試みていないようです。DNSトラフィックは一切ありません。別の外部ドメインを検索しても問題ありません。

同じトピックに関する多くの問題がnsswitch.confの変更に言及していますが、それは何も解決しないようです。私の現在の設定は次のとおりです。

hosts:          files mdns4_minimal dns [NOTFOUND=return] resolve [!UNAVAIL=return] mdns4

1
走ったsudo apt update && sudo apt full-upgrade?リリースイメージのバグが...固定しまった
Zanna

systemd-networkdインターフェースの設定に使用している場合、ファイルUseDomains=true[DHCP]セクションを追加する必要があり.networkます:wiki.archlinux.org/index.php/systemd-networkd#.5BDHCP.5D
quixotic

確かに、ドメインに近い。実際には、dhcp応答でドメインを設定しなかったedgerouterファームウェアのバグでした。
ロブファンデル

回答:


10

これは仕様によるものだと思います。

Ubuntu 17.04は名前解決のためにsystemd-resolvedに切り替えており、単一ラベルの名前解決にはLLMNR(マルチキャスト名前検索)のみを使用しています。詳細については、次のリンクを参照してください:https : //www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

この決定の背景にある理由については、このバグレポートのpoetteringの返信をご覧くださいhttps : //github.com/systemd/systemd/issues/2514

UPD:この問題は、ローカルネットワークのドメインを使用することで回避できます。ネットワークインターフェースが(手動またはDHCPにより)検索ドメインを使用するように設定されている場合、systemd-resolvedはこのドメインを単一ラベル名に追加し、ユニキャストDNS経由で検索します。

明らかに、これらのドメインを認識するようにローカルDNSサーバーを再構成する必要があります。/ etc / hostsからローカルホストとIPのペアを読み取るdnsmasqの場合、次の指示をdnsmasq.confに追加することで実現できます。

domain=mydomain.net
local=/mydomain.net/
expand-hosts

UPD2:または/ubuntu//a/911432/692094で説明されているように、dnsmasqに戻すことができます


そして、いくつかの説明を含むもう1つのバグページ:github.com/systemd/systemd/issues/4821
ish-west

ここではドメイン名が問題でした。実際には、edgerouterファームウェアのバグも原因でした。構成からのdomain-nameオプションは、dhcp構成に適切に保存されませんでした。そのため、クライアントは検索するドメインを取得しませんでした。
ロブファンデル

8

Ubuntu 18.04でもDNSのsystemd-resolvedを使用しているのと同じ問題が発生しました。デフォルト設定では、DNSによる単一ラベルのホスト名または.localドメインのホスト名は解決されませんが、LLMNRまたはmDNSによる解決がそれぞれ行われます。

DNSによってローカルの単一ラベルホスト名または.localドメインホスト名を解決するには、systemd-resolved.serviceのマニュアルページで説明されている「/etc/resolv.confを処理する4つのモード」を有効にしました。

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

ここで同様の答えが与えられました。また、デフォルトの背後にある理由については、このバグレポートの poetteringの回答を参照してください。


2

18.04にアップグレードした後、ファイル/etc/systemd/resolved.confを構成してDomainsパラメーターをドメイン(ローカルまたは私の場合はmydomain.local)に変更することでうまくいきました。DNSパラメーターも変更しましたが、関係ないと思われましたが、それが事実でない場合に備えて言及しています。詳細については、https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.htmlにアクセスしてください

さらに、私はavahi設定(/etc/avahi/avahi-daemon.conf)を変更して、サーバーセクション内のドメインパラメーターをローカル(デフォルト)からこのフォーラムで指摘されている他の何かに変更しました。

上記の変更により、ドットなしの名前を使用してマシンにアクセスできます。たとえば、マイコンピューターにpingを実行すると、マシンに正常に接続されます。ただし、mycomputer.mydomain.localにpingしても機能しない場合、FQDNは期待どおりに解決されません。

これがいくつかの場合に役立つか、より一般的な解決策につながることを願っています。


0

構成の誤りが原因でこの問題に直面しましたnsswitch.conf12.04次の文字列が期待どおりに機能したため。ドメインのないホスト名は正常に解決されます。

ただし、17.04nssシステムを構成するための古いテンプレートを使用したubuntuの新しいバージョン(およびバージョン16.10)は、以前のようには機能しません。

不適切に設定されたバージョンhostsの古いUbuntuのバージョンから、: hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

hostsたとえば、17.04からの正常な動作バージョン: hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

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