ローカル ネットワーク インターフェイスの構成ファイル (名前パターン /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 の回答を含め、複数のリンクから理解をまとめる必要がありました;-)