/run/systemd/resolve/stub-resolv.confと/run/systemd/resolve/resolv.confの違いは何ですか?

/run/systemd/resolve/stub-resolv.confと/run/systemd/resolve/resolv.confの違いは何ですか?

新しい Kubuntu 19.10 ラップトップでカスタム DNS サーバーを構成するには、以下を追加するだけでは不十分です/etc/systemd/resolved.conf

DNS=77.88.8.7 77.88.8.3 #YandexのDNS、Googleイメージにもポルノコンテンツなし

私もシンボリックリンクを変更する必要がありました/etc/resolv.conf

$ ls -l /etc/resolv.conf 
lrwxrwxrwx 1 root root 37 oct 26 01:48 /etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf
$ sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

/run/systemd/resolve/stub-resolv.confISP指定のDNSのみがあり、カスタムDNSは/run/systemd/resolve/resolv.conf

見るとき:

man systemd-resolved.service

推奨ファイルとは言いますが、/run/systemd/resolve/stub-resolv.conf違いはわかりません(例:わかりやすく簡単説明は許可されている答えでなければなりません。

ノート:WiFi接続数が多いラップトップでは、説明した内容を達成する方法を説明する多くのWebサイトで提案されているように、接続ごとにDNSを設定することは不可能です。

気になる方のための追加情報:

/run/systemd/resolve/$ diff stub-resolv.conf resolv.conf 
3,8c3,4
< # This is a dynamic resolv.conf file for connecting local clients to the
< # internal DNS stub resolver of systemd-resolved. This file lists all
< # configured search domains.
< #
< # Run "resolvectl status" to see details about the uplink DNS servers
< # currently in use.
---
> # This is a dynamic resolv.conf file for connecting local clients directly to
> # all known uplink DNS servers. This file lists all configured search domains.
17,18c13,17
< nameserver 127.0.0.53
< options edns0
---
> nameserver 77.88.8.7
> nameserver 77.88.8.3
> nameserver 200.49.130.40
> # Too many DNS servers configured, the following entries may be ignored.
> nameserver 200.42.4.207

答え1

resolv.confオーバーライドを使用すると、stub-resolv.confDNS応答キャッシュ、インターフェイス固有のDNS設定、DNSSecの実行など、systemdが検証する多くの設定をバイパスします。

説明する:

を使用すると、stub-resolv.confアプリケーションはアドレス 127.0.0.53 で systemd が提供する DNS スタブリゾルバに DNS 要求を送信します。スタブリゾルバは、DNS要求をに設定されたアップストリームDNSリゾルバにプロキシし、systemd-resolvedその要求と応答にキャッシュなどの目的のロジックを適用します。

を使用すると、resolv.confアプリケーションはに設定されている「実際」(アップストリームとも呼ばれる)DNSリゾルバに直接DNS要求を送信しますsystemd-resolved。この場合、DNSリゾルバ自体ではなくsystemd-resolved「管理者」の役割のみを実行します。resolv.conf

源泉:systemd-resolvedマンページ

関連情報