Налаштування dnsmasq для локальної мережі


18

Я і невелика група розробників щойно переїхали до нового офісу, і я хотів би встановити dnsmasq на нашому сервері розробки, тому коли ми розгортаємо там веб-додатки, нам не потрібно редагувати власні файли хостів. У нас є маршрутизатор на 192.168.3.1, до якого ми не маємо доступу. Я подумав, що встановлю DNS-сервер у вікні розробки, і всі ми записуємо його IP як вторинний DNS-сервер. На жаль, я намагаюся зробити цю роботу.

Ім'я сервера devel - це devbox, його IP - 192.168.3.99, і він працює на останньому сервері Ubuntu (Karmic)

На моєму комп’ютері працює Ubuntu Desktop (Karmic)

Чого я хотів би досягти

Скажімо, у мене на вікні розробки працює три веб-сайти: website1, website2, website3. Я хочу отримати доступ до них за URL-адресами:

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

Тож я налаштував Apache на вікні розробки, встановив dnsmasq і помістив у файл хостів наступні рядки:

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

і редагував власний файл resolutionv.conf, щоб включити поле розробки як сервер імен:

nameserver 192.168.3.99 

Це добре працює, я можу отримати доступ до сайтів. Проблема полягає в тому, що він не масштабується добре. Мені б хотілося, щоб усі домени, що закінчуються .devbox, переслані у вікно розробки, і це те, з чим я боюся.

Я спробував поставити

192.168.3.99 devbox

у файл хостів та редагування рядка в dnsmasq.conf:

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

Але я не можу працювати. Якщо я спробую будь-який URL, який явно не присутній у файлі хостів вікна розробки, пошук dns не вдається.

Чи є місцева директива для чогось іншого? Я дивлюся в неправильне місце?

Відповіді:


14

Зверніться до документації Dnsmasq , особливо 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/

Щоб змусити пошук хостів / піддоменів вирішити певну адресу, ви, ймовірно, захочете використовувати ключове слово адреси . Другий приклад нижче повинен дозволяти 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-запит І відповідь, я не можу отримати доступ до сервера по імені. Наче вміст відповіді ніколи не реєструється. Якісь ідеї?
Джордж
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.