私がやろうとしていること
DNSにConsulを使用しており、dnsmasqがプロキシとして機能しています(https://www.consul.io/docs/guides/forwarding.html)。
consul に直接クエリを実行する ( ) だけでなく、サフィックスnslookup my.service.consulなしでクエリを実行できるようにしたい( )。.consulnslookup my.service
環境
Ubuntu 16.04
設定
/etc/resolv.conf
search consul
nameserver 127.0.0.1
/etc/dnsmasq.conf
server=/consul/127.0.0.1#8600
server=8.8.8.8
server=8.8.4.4
/etc/ネットワーク/インターフェース
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.10.10.102
netmask 255.255.255.0
gateway 10.10.10.1
問題
私が抱えている問題は、クエリにresolvconf によって追加されmy.serviceた検索パスがないことです。consul
私が変更/etc/resolv.confした場合:
search consul service.consul
nameserver 127.0.0.1
my( nslookup my)だけを検索すると、service.consulサフィックスがクエリに正しく追加され、 のアドレスで成功しますmy.service.consul。
ただし、構成が同一であっても( ) にconsulは追加されません。これにより、検索ドメインがドット付きクエリに追加されていないと思います。my.servicenslookup my.service
私が試したこと
で試しdns-searchました/etc/network/interfaces。変わりはない。
dnsmasq のresolv-fileオプションを使用して別のファイルを指定しようとしました。ドット付きクエリに追加された検索サフィックスはまだありません。
resolveconf ndots 構成オプションのさまざまなオプションを試しましたが、これも機能しません。ドットが不十分なクエリが実際に試行されるかどうかは正しく変更されますが (公式の resolvconf ドキュメントに従って)、ドット付きクエリにサフィックスを追加するように resolvconf を説得することはできません.consul: my.service.
(そして、これが問題であることが判明する前に試した、これらのファイルと dnsmasq オプションの他の組み合わせの負荷...しかし、もはや関連性がないようです。)
だから私の質問は最終的に...
consulドット付きクエリのサフィックスを追加してmy.servicegetするように resolvconf を説得するにはどうすればよいmy.service.consulですか?
serviceまた、クエリで手動で指定する必要があり、resolv.conf の dns 検索ドメインの一部として指定したくないことにも注意してください。特に、consul にはデータセンターなどの非常に動的な dns 検索機能があり、許容されるすべての組み合わせを指定しようとすると、resolv.conf の検索エントリの 6 ドメイン制限にすぐに到達します。