GNU/Linux >> Linux の 問題 >  >> Linux

ローカル ドメインの解決にローカル DNS サーバーを使用し、リモート ドメインの解決にリモート DNS サーバーを使用するように systemd-resolved と systemd-networkd を構成する方法を教えてください。

ローカル ネットワーク インターフェイスの構成ファイル (名前パターン /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 のディレクティブ 上記の Pi​​otr の詳細のように、次に DNS は、/etc/nsswitch.conf で指定された名前解決ソースの順序で参照する必要があります。 ドメインが NOT の場合 Domains で見つかりました ディレクティブ:

次のリンクは、resolve を指定する要件を参照しています。 /etc/nsswitch.conf で だから systemd-resolved 名前解決中に参照されます:

https://github.com/systemd/systemd/issues/940

私が見つけたSystemDのドキュメントは悲惨なものです。上記の Pi​​otr の回答を含め、複数のリンクから理解をまとめる必要がありました;-)


Linux
  1. 自動化のためにAnsibleとanacronを使用する方法

  2. Ubuntu 18.04にWordPressをインストールし、リモートデータベースを使用するように構成する方法

  3. Windows Server2008R2でRDPを構成する方法

  1. BIND DNSサーバーログを有効にしてクエリを監視し、トラブルシューティングを行うにはどうすればよいですか?

  2. DNSサーバーをセットアップするためのバインドをインストールおよび構成する方法は?

  3. Debian11にTelnetをインストールして使用する方法

  1. Ubuntu / DebianにDNSサーバー(バインド9)をインストールして構成する方法

  2. Debian 10 /Debian9でDNSサーバーを設定する方法

  3. リモートDNSサーバーのソフトウェア名とそのバージョンを識別する方法は?