Настройка dnsmasq для локальной сети

18

Я и небольшая группа разработчиков только что переехали в новый офис, и я хотел бы установить dnsmasq на нашем сервере разработки, поэтому при развертывании там веб-приложений нам не нужно редактировать собственные файлы хостов. У нас есть маршрутизатор 192.168.3.1, к которому у нас нет доступа. Я решил установить DNS-сервер в блоке разработки, и мы все записываем его IP как вторичный DNS-сервер. К сожалению, я изо всех сил пытаюсь сделать эту работу.

Имя сервера devel - devbox, его IP - 192.168.3.99, и он работает под управлением последней версии Ubuntu Server (Karmic).

Мой компьютер работает под управлением Ubuntu Desktop (Karmic)

Чего бы я хотел достичь

Допустим, у меня есть три веб-сайта, website1, website2, website3, работающие на панели разработки. Я хотел бы получить доступ к ним по URL:

http://website1.devbox
http://website2.devbox
http://website3.devbox

Итак, я настроил Apache на devel box, установил dnsmasq и поместил следующие строки в его файл hosts:

192.168.3.99 website1.devbox
192.168.3.99 website2.devbox
192.168.3.99 website3.devbox

и отредактировал мой собственный файл resolv.conf, добавив поле devel в качестве сервера имен:

nameserver 192.168.3.99 

Работает нормально, я могу получить доступ к сайтам. Проблема в том, что он плохо масштабируется. Я хотел бы, чтобы все домены, заканчивающиеся на .devbox, были перенаправлены в коробку разработки, и это то, с чем я борюсь.

Я пытался положить

192.168.3.99 devbox

в файл hosts и редактируем строку в dnsmasq.conf:

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/devbox/

Но я не могу заставить его работать. Если я попробую какой-либо URL-адрес, который явно не присутствует в файле hosts блока разработки, поиск DNS не удастся.

Является ли местная директива для чего-то еще? Я смотрю не на то место?

К. Норберт
источник

Ответы:

14

Обратитесь к документации по DNSmasq , особенно к man- странице dnsmasq и образцу файла конфигурации . Местное ключевое слово говорит Dnsmasq для выполнения этой Lookups доменов с локальными данными. Это влияет на запросы, отправленные в DNSmasq для foo.localnet и bar.localnet , например. Я не думаю, что это то, что вы хотите.

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/localnet/

Чтобы заставить поиск хостов / поддоменов разрешаться по определенному адресу, вы, вероятно, захотите использовать ключевое слово address . Второй пример ниже должен позволять web1.devbox и web2.devbox и web73872.devbox все разрешать по указанному адресу.

# Add domains which you want to force to an IP address here.
# The example below send any host in doubleclick.net to a local
# webserver.
address=/doubleclick.net/127.0.0.1

# for your example
address=/devbox/192.168.3.99

Я использую DNSmasq дома, чтобы обрабатывать простые вещи DNS для моей локальной сети; в этом случае подходят локальные и связанные ключевые слова домена и расширения-хостов . Сервер DNSmasq - это мой основной сервер имен, поэтому все запросы проходят через него; любые нелокальные адреса передаются обратно на сервер имен провайдера. Вы можете рассмотреть эту конфигурацию, если это возможно.

шарлатан
источник
ответ на другой вопрос указывает, что address=/.devbox/192.168.3.99может быть более подходящим синтаксисом для ваших целей.
шарлатан-кихот
Ну и дела, я должен был просто прочитать части, которые я вставил из конфигурации, было очевидно, что это не то, что мне нужно. Адресная директива решила проблему, спасибо!
К. Норберт
Я использовал вышесказанное с изюминкой: сервер web / dns / dhcp имеет беспроводной интерфейс в режиме Adhoc. Хотя во время захвата пакетов я вижу запрос и ответ mDNS, я не могу получить доступ к серверу по имени. Как будто содержание ответа никогда не регистрируется. Есть идеи?
Джордж