4

我正在尝试做的事情

我将 Consul 用于 dns,dnsmasq 充当代理(https://www.consul.io/docs/guides/forwarding.html)。

除了直接查询 consul ( nslookup my.service.consul),我还希望能够不带.consul后缀 ( nslookup 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

问题

我遇到的问题是查询my.service没有consulresolvconf附加的搜索路径。

如果我/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 选项的其他组合......但似乎不再相关。)

所以我的问题最终是......

如何说服 resolvconfconsul为我的虚线查询添加后缀my.serviceget my.service.consul

还请记住,我确实希望service在我的查询中手动指定它,并且不希望它作为 resolv.conf 中 dns 搜索域的一部分。特别是由于 consul 为数据中心等提供了相当动态的 dns 搜索工具,如果我尝试指定所有允许的组合,我将很快达到 resolv.conf 中搜索条目的 6 个域限制。

4

1 回答 1

0

在 resolv.conf 中:options ndots:2

于 2016-09-02T13:36:15.027 回答