我正在使用Consul用于dns,dnsmasq充当代理(https://www.consul.io/docs/guides/forwarding.html)。
除了直接查询领事(nslookup my.service.consul
)之外,我还希望能够在没有.consul
后缀(nslookup my.service
)的情况下进行查询。
Ubuntu 16.04
search consul
nameserver 127.0.0.1
server=/consul/127.0.0.1#8600
server=8.8.8.8
server=8.8.4.4
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
我遇到的问题是my.service
的查询没有resolvconf附加的consul
搜索路径。
如果我将/etc/resolv.conf
更改为:
search consul service.consul
nameserver 127.0.0.1
然后只搜索my
(nslookup my
),service.consul
后缀正确地附加到查询成功,地址为my.service.consul
。
但是consul
<\ n> <{>} my.service
(nslookup my.service
),即使配置相同。这让我觉得搜索域不会附加到虚线查询。
我在dns-search
中尝试了/etc/network/interfaces
。没有区别。
我尝试使用dnsmasq的resolv-file
选项指定其他文件。仍然没有为点缀查询添加搜索后缀。
我已尝试过resolveconf ndots配置选项的各种选项,但这也不起作用。它正确地改变了是否实际尝试了点数不足的问题(根据官方的resolvconf文档),但它从未设法说服resolvconf将.consul
后缀添加到虚线查询中:my.service
。< / p>
(在我解决之前我尝试过这些文件和dnsmasq选项的其他组合的负载,这是问题......但这似乎不再相关。)
如何说服resolvconf为我的虚线查询consul
添加my.service
后缀以获取my.service.consul
?
还请记住,我希望在我的查询中手动指定service
,并且不要将它作为resolv.conf中dns搜索域的一部分。特别是因为consul有一个非常动态的数据中心dns搜索工具,如果我尝试指定所有允许的组合,我将很快达到resolv.conf中搜索条目的6域限制。
答案 0 :(得分:0)
在resolv.conf中:options ndots:2