dnsmask и resolv.conf (проблема курицы и яйца)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21488
Статус: nulla salus bello
ОС: Debian GNU/Linux

dnsmask и resolv.conf

Сообщение Bizdelnick »

Имеем: машину, получающую DNS-серверы по DHCP, на ней - кучка виртуалок за NAT, которые обслуживает dnsmasq. Надо, чтобы на хостовой машине резолвились имена виртуалок через dnsmasq, и при этом, естественно, имена из внешнего мира. Напрашивается решение жёстко прописать server в конфиге dnsmasq, а в resolv.conf - локалхост, однако если когда-то внешние DNS сменятся, придётся править конфиг dnsmasq снова. Есть ли какая-то возможность решить проблему, не отказываясь от получения адресов вышестоящих DNS-серверов по DHCP?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: dnsmask и resolv.conf

Сообщение skeletor »

У виртуалок имена как-то привязаны к какой-то зоне (например, virt1.local, virt2.local)?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21488
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: dnsmask и resolv.conf

Сообщение Bizdelnick »

Ну вообще этим делом рулит ganeti, который требует, чтобы у всех виртуалок был FQDN (то бишь с привязкой к зоне). Кроме него ни у кого особых предпочтений на этот счёт нет. :-)
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: dnsmask и resolv.conf

Сообщение skeletor »

Для внешнего резолвинга можно заюзать такую опцию

Код: Выделить всё

resolv-file=/etc/resolv.conf

Для локального резолвинга

Код: Выделить всё

local=/localdom/

где localdom - общий домен для виртуалок. А имена виртуалок придётся прописывать в /etc/hosts, так как там будет их искать dnsmasq.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21488
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: dnsmask и resolv.conf

Сообщение Bizdelnick »

skeletor писал(а):
11.02.2015 14:02
имена виртуалок придётся прописывать в /etc/hosts, так как там будет их искать dnsmasq.

На данный момент они прописываются в отдельные файлы каталога, заданного опцией hostsfile. Писать всё в один файл, тем более в /etc/hosts, не хотелось бы, потому что это затруднительно (и опасно) автоматизировать. Если же их не будет в hosts, а в resolv.conf будут внешние серверы, то хост не сможет найти виртуалки.
Однако опция resolv-file действительно может пригодиться, если в ней указать не /etc/resolv.conf, а другой файл, который будет формироваться хуком dhclient. Так что спасибо за наводку.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21488
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: dnsmask и resolv.conf

Сообщение Bizdelnick »

Итак, окончательное решение. Debian Wheezy, установлен пакет resolvconf.
В /etc/network/interfaces:

Код: Выделить всё

allow-hotplug eth0
iface eth0 inet dhcp
    nameserver localhost

В /etc/dhcp/dhclient-enter-hooks.d/dnsmasq_resolv:

Код: Выделить всё

RESOLVCONF=/etc/dnsmasq/resolv.conf

if [ -n "$new_domain_name_servers" ] ; then
    : > "$RESOLVCONF"
    for srv in $new_domain_name_servers ; do
        echo nameserver $srv >> "$RESOLVCONF"
    done
fi

В /etc/dnsmasq.conf:

Код: Выделить всё

resolv-file=/etc/dnsmasq/resolv.conf
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: