ゲートウェイ経由でインターネットにアクセスできるローカルエリアネットワークに接続しています。ローカルネットワークには、ローカルネットワークからコンピュータのホスト名を解決できるDNSサーバーがあります。
systemd-resolvedとsystemd-networkdを構成して、ローカルホスト名のルックアップ要求がローカルDNSサーバーにのみ転送(ルーティング)され、他のすべてのルックアップ要求がルーティングされるようにしますホスト名は、別のリモートDNSサーバーのみに送信されます。
構成ファイルの場所がわからない、またはファイルを追加する必要があるかどうか、および回答でそれらのパスを指定する必要があるかどうかを想定します。
ローカルネットワークインターフェイスの構成ファイル(名前パターン/etc/systemd/network/*.network
に一致するファイル)で、DHCPサーバーから DHCP=
オプション を使用してローカルDNSサーバーアドレスを取得することを指定する必要があります。 =:
[Network]
DHCP=yes
または DNS=
option を使用してアドレスを明示的に指定します:
[Network]
DNS=10.0.0.1
さらに Domains=
option を使用して(同じセクションで)ローカルドメインを指定する必要があります
Domains=domainA.example domainB.example ~example
ローカルドメインdomainA.example domainB.example
を指定して、次の動作を取得します(systemd-resolved.service、systemd-resolvedのマニュアルページから):
インターフェイスごとのドメインの1つで終わるホスト名の検索は、一致するインターフェイスに排他的にルーティングされます。
このようにして、hostX.domainA.example
はローカルのDNSサーバーによって排他的に解決されます。
~example
を使用して、example
で終わるすべてのドメインをルートのみのドメインとして扱い、次の動作を実現することを指定しています( this commitの説明から):
ルートのみのドメインを持つ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のマニュアルページ 。
以下も参照してください。
参照: