Из коробки мои контейнеры 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
.