Что я пытаюсь сделать
Я использую Consul для DNS, а dnsmasq действует как прокси (https://www.consul.io/docs/guides/forwarding.html).
Помимо прямого запроса консула (nslookup my.service.consul
), я также хочу иметь возможность запрашивать без суффикса .consul
(nslookup my.service
).
Окружающая среда
Убунту 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
не имеют пути поиска consul
, добавленного resolvconf.
Если я изменю /etc/resolv.conf
на:
search consul service.consul
nameserver 127.0.0.1
а затем выполните поиск только для my
(nslookup my
), суффикс service.consul
правильно добавляется к запросу с адресом для my.service.consul
.
Но consul
не добавляется к my.service
(nslookup my.service
), хотя конфигурация идентична. Это заставляет меня думать, что поисковые домены не добавляются к точечным запросам.
Вещи, которые я пробовал
Я пробовал dns-search
в /etc/network/interfaces
. Нет разницы.
Я попытался использовать параметр resolv-file
dnsmasq, чтобы указать другой файл. К точечным запросам по-прежнему не добавляются поисковые суффиксы.
Я пробовал различные варианты параметров конфигурации resolveconf ndots, но это тоже не работает. Он правильно изменяет, действительно ли выполняются запросы с недостаточным количеством точек (согласно официальной документации resolvconf), но ему никогда не удается убедить resolvconf добавить суффикс .consul
к точечному запросу: my.service
.
(И множество других комбинаций этих файлов и параметров dnsmasq, которые я пробовал еще до того, как понял, что это проблема... но которые больше не кажутся актуальными.)
Итак, мой вопрос в конечном итоге...
Как мне убедить resolvconf добавить суффикс consul
к моему пунктирному запросу my.service
, чтобы получить my.service.consul
?
Также имейте в виду, что я ДЕЙСТВИТЕЛЬНО хочу, чтобы service
указывался вручную в моих запросах, и НЕ хочу, чтобы он был частью поискового домена dns в resolv.conf. В частности, поскольку consul имеет довольно динамичное средство поиска DNS для центров обработки данных и т. д., и я быстро достигну предела в 6 доменов для записей поиска в resolv.conf, если попытаюсь указать все допустимые комбинации.