私はUbuntu 20.04を使用しており、systemd-resolvedを使用してDNSクエリを解決しています。機械は1つのインターフェイスに接続されます。
network:
ethernets:
eth0:
dhcp4: true
set-name: eth0
nameservers:
addresses: [11.2.3.4, 12.2.3.4]
search: [domain.first, domain.second]
version: 2
Resolvectlは、DNSサーバーの1つを現在のDNSサーバーとして選択します。私が直面している問題は、domain.firstに対するクエリのみを解決する11.2.3.4 DNSサーバーと、domain.secondに対するクエリのみを解決する別の12.2.3.4があることです。
Resolvectlが現在のDNSサーバーとして11.2.3.4を選択するたびに、domain.firstへのクエリは成功しますが、domain.secondへのクエリは失敗します(12.2.3.4で解決する必要があるため、これは明らかです)。
ドメイン検索とそのDNSサーバーに基づいてクエリを解決するようにresolvctlを設定する方法はありますか?つまり、検索ドメインに基づいて他のDNSサーバーを確認します。
私はバインド9がこの機能を提供していることを知っていますが、systemd-resolved解決プログラムを使用して同様のことを達成したいと思います。
ベストアンサー1
私が知っている最も近いsystemd-resolved
機能は「split dns」ですが、これは複数のネットワークインターフェイス(物理アダプタやVPNアダプタなど)でのみ機能すると思います。
dnsmasq
条件付き配信サーバーの目標を達成するためのいくつかの提案を見ました。
リンク
- https://fedoramagazine.org/systemd-resolved-introduction-to-split-dns/
- https://www.bertrandbc.com/blog/split-dns-with-systemd/
- https://blogs.gnome.org/mcatanzaro/2020/12/17/understanding-systemd-resolved-split-dns-and-vpn-configuration/
- https://stackoverflow.com/questions/29004054/dnsmasq-forwarding-on-特異的-domains