Consulをサービス検出として使用しており、現在使用しているDNSサーバーを使用してDNSサーバーとして追加したいので、Dig ser.service.consul
を実行すると、領事から結果が得られます。
/etc/resolv.conf
に追加しようとしましたが、最初のサーバーが利用可能な場合にのみ最初のサーバーに移動し、最初のサーバーで見つからなかった場合はセカンダリDNSに移動しません。
一方にアドレスが見つからなかった場合に「デュアル」DNSサーバーを使用する方法はありますか?
関連する構成は、領事館のドキュメントにあります。
https://learn.hashicorp.com/consul/security-networking/forwarding
たとえば、dnsmasq
を使用する場合、次の行をdnsmasq.conf
に追加できます。
server=/consul/127.0.0.1#8600
これは基本的に、consul.
ドメインとそのサブドメインへのクエリは、127.0.0.1:8600
で利用可能なリゾルバーによって解決される必要があることを意味します。これは 領事の標準的な場所 です。
(それを微調整する必要がある場合は、dnsmasqの manpage -server=
を検索して-S, --local, --server=
行の構文を見つけることができます)。
次に、dnsmasq
(Sudo systemctl restart dnsmasq.service
)を再起動した後、ser.service.consul
へのクエリは領事によって解決され、他のすべてのクエリは通常どおり解決されます。
「bind」、「dnsmasq」、「unbound」などのDNSキャッシングサービスを使用することをお勧めします。 https://learn.hashicorp.com/consul/security-networking/forwarding#dnsmasq-setup を参照してください
または、DNSにconsulを排他的に使用するようにシステムを構成してから、consul構成ファイルに recursors オプションを指定して、すべての非.consul
要求を適切なDNSサーバーに転送することもできます。