ローカル ネットワーク インターフェイスの構成ファイル (名前パターン /etc/systemd/network/*.network に一致するファイル) ) DHCP= を使用して、DHCP サーバーからローカル DNS サーバーのアドレスを取得するように指定する必要があります。 オプション:
[Network]
DHCP=yes
または DNS= を使用してそのアドレスを明示的に指定します オプション:
[Network]
DNS=10.0.0.1
さらに、Domains= を使用して (同じセクションで) ローカル ドメインを指定する必要があります。 オプション
Domains=domainA.example domainB.example ~example
ローカル ドメイン domainA.example domainB.example を指定します 次の動作を取得します (systemd-resolved.service、systemd-resolved から) マニュアルページ):
インターフェースごとのドメインの 1 つで終わるホスト名のルックアップは、一致するインターフェースに排他的にルーティングされます。
こちら hostX.domainA.example 排他的に解決されます
~example で指定します example で終わるすべてのドメイン 次の動作を取得するために、ルートのみのドメインとして扱われます (このコミットの説明から):
ルート専用ドメインを持つ DNS サーバーは、指定されたドメインにのみ使用する必要があります。
こちら hostY.on.the.internet 排他的に解決されます グローバルなリモート DNS サーバーによって。
注意
理想的には、DHCP プロトコルを使用する場合、ローカル ドメイン名は、上記のネットワーク インターフェイスの構成ファイルで明示的に指定するのではなく、DHCP サーバーから取得する必要があります。 UseDomains= を参照 オプション。ただし、この機能にはまだ未解決の問題があります。systemd-networkd DHCP 検索ドメイン オプションの問題を参照してください。
リモート DNS サーバーをグローバルなシステム全体の DNS サーバーとして指定する必要があります。 /etc/systemd/resolved.conf でこれを行うことができます ファイル:
[Resolve]
DNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
構成をリロードしてサービスを再起動することを忘れないでください:
$ sudo systemctl daemon-reload
$ sudo systemctl restart systemd-networkd
$ sudo systemctl restart systemd-resolved
注意!
上記の保証は、名前が systemd-resolved によって解決されている場合にのみ適用されます – nss-resolve、libnss_resolve.so.2 のマニュアル ページを参照 systemd-resolved.service、systemd-resolved の man ページ。
参照:
- systemd 関連の man ページのルーティング ルックアップ リクエストの説明が不明確です
- systemd-resolved で DNS をトラブルシューティングする方法は?
参照:
- systemd-resolved.service、systemd-resolved のマニュアル ページ
- resolved.conf、resolved.conf.d のマニュアル ページ
- systemd-network の man ページ
@piotrDobrogost の優れた回答を拡張するために、 /etc/nsswitch.conf を構成することを忘れないでください systemd-resolved を使用するには DNS 解決ソースとして。あなたの hosts 特定の使用例では、ディレクティブは次のようになります:
/etc/nsswitch.conf
hosts: files resolve dns
したがって、解像度を Domains で指定されたドメインのみに制限すると、 /etc/systemd/resolved.conf のディレクティブ 上記の Piotr の詳細のように、次に DNS は、/etc/nsswitch.conf で指定された名前解決ソースの順序で参照する必要があります。 ドメインが NOT の場合 Domains で見つかりました ディレクティブ:
次のリンクは、resolve を指定する要件を参照しています。 /etc/nsswitch.conf で だから systemd-resolved 名前解決中に参照されます:
https://github.com/systemd/systemd/issues/940
私が見つけたSystemDのドキュメントは悲惨なものです。上記の Piotr の回答を含め、複数のリンクから理解をまとめる必要がありました;-)