Назад | Перейти на главную страницу

Настройте LXC для использования определенного DNS-сервера вместо DNSMASQ

Из коробки мои контейнеры LXC подключаются к работающему экземпляру dnsmasq, который запускается с lxc-net служба.

В моем случае я использую локальный несвязанный DNS-сервер, который подключается к объекту под названием ncdns, который позволяет мне просматривать домены .bit, зарегистрированные через Namecoin.

Два этих конфликта. Мои контейнеры lxc зависят от dnsmasq для DNS, который работает на порту 53. В то же время мой unbound сервер должен работать на порте 53, чтобы я мог получить доступ к доменам .bit. (см. комментарии к эта почта из-за маловероятности возможности включения сервера имен в resolv.conf с использованием нестандартного порта; Я также спросил по каналу IRC и в основном узнал, что указать resolv.conf на DNS-сервер на нестандартном порту в принципе невозможно).

Итак, что мне нужно сделать, так это создать комбинированный DNS-сервер, который поддерживает материал LXC, а также может разрешать домены .bit и запускать THAT на порту 53.

Можно предположить, что мои unbound сервер рекурсивно разрешает домены .bit и перенаправляет все остальные домены на мой маршрутизатор, чтобы он мог эффективно разрешать все домены.

Вопросы следующие:

1: Как сообщить lxc-net НЕ запускать dnsmasq?

2: Я предполагаю unbound не будет работать просто как DNS-сервер для моих контейнеров LXC без дополнительной настройки. Как мне настроить unbound так что он делает то, что dnsmasq делает для моих контейнеров lxc? (Ответом на этот вопрос может быть либо расположение файлов конфигурации dnsmasq, которые он использует при запуске lxc-net (который я еще не нашел), чтобы я мог попытаться скопировать эту конфигурацию без привязки, либо другая документация, которая имеет ту же информацию, что и файлы конфигурации dnsmasq, используемые lxc-net)

Ладно, думаю, я понял. Я приму этот ответ, но пометьте свои слова, я опубликую еще один вопрос, если в будущем это не сработает.

У меня на этом компьютере еще 3 (!) DNS сервера: dnsmasq как было с LXC (не совсем так, как было, см. ниже), вместе с ncdns DNS-сервер Namecoin и unbound.

Опять же, я могу запустить только 1 DNS-сервер на 53-м порту, поэтому мне нужно выбрать один или другой для этого порта. Я могу взять свой unbound настроить и расширить его, чтобы dnsmasq делает, или наоборот. Поскольку dnsmasq, похоже, уже замысловато настроен для работы с LXC, а также служит DHCP-сервером, который не может быть несвязанным, я решил взять его за отправную точку.

Я создал /etc/dnsmasq.conf файл со следующим содержанием:

listen-address=127.0.0.1
resolv-file=/etc/resolv.dnsmasq.conf
server=/bit./127.0.0.1#5301

Первая строка позволяет dnsmasq прослушивать мой локальный адрес, разрешая имена не только для контейнеров LXC, но и для моего ПК. Вторая строка указывает dnsmasq использовать специальный файл resolv, который я скопировал и вставил из resolv.conf (и который, если кому-то интересно, указывает на IP-адрес моего маршрутизатора). Третья и последняя строка добавляет .bit тупиковый домен, запросы на который перенаправляются на мой unbound сервер работает на порту 5301.

Я также изменил свой файл resolv.conf на просто

nameserver 127.0.0.1

так что все запросы DNS выполняются dnsmasq.