Resolvconf не добавляет поисковые домены к запросам с точками

Что я пытаюсь сделать

Я использую 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, если попытаюсь указать все допустимые комбинации.


person Alastair Brayne    schedule 01.09.2016    source источник
comment
Я не могу воспроизвести это поведение (хотя и в CentOS),   -  person Dusan Bajic    schedule 02.09.2016


Ответы (1)


В resolv.conf: options ndots:2

person Calle Dybedahl    schedule 02.09.2016
comment
Я намекал на это в своем исходном посте. Но чтобы быть ясным; функция ndots НЕ влияет на добавление поисковых суффиксов к исходному запросу. Это влияет только на то, будет ли первоначальный поиск предпринят первым; см. linux.die.net/man/5/resolv.conf. - person Alastair Brayne; 02.09.2016
comment
И я пробовал это тоже, так что не просто теоретически. Это не сработало. - person Alastair Brayne; 02.09.2016