Konfigurowanie dnsmasq dla sieci lokalnej

18

Ja i niewielka grupa programistów właśnie przeprowadziliśmy się do nowego biura. Chciałbym skonfigurować dnsmasq na naszym serwerze programistycznym, więc kiedy wdrażamy tam aplikacje internetowe, nie musimy edytować własnych plików hostów. Mamy router pod adresem 192.168.3.1, do którego nie mamy dostępu. Pomyślałem, że zainstaluję serwer DNS na polu programistycznym i wszyscy rejestrujemy jego adres IP jako dodatkowy serwer DNS. Niestety staram się, aby to zadziałało.

Nazwa serwera deweloperskiego to devbox, jego adres IP to 192.168.3.99 i działa na nim najnowszy serwer Ubuntu (Karmic)

Na moim komputerze działa Ubuntu Desktop (Karmic)

Co chciałbym osiągnąć

Załóżmy, że mam trzy witryny: witryna1, witryna2, witryna3, działające w oknie programowania. Chciałbym uzyskać do nich dostęp za pomocą adresów URL:

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

Więc skonfigurowałem Apache na polu devel, zainstalowałem dnsmasq i umieściłem następujące wiersze w jego pliku hosts:

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

i edytowałem mój własny plik resolv.conf, aby dołączyć pole rozwijania jako serwer nazw:

nameserver 192.168.3.99 

Działa dobrze, mogę uzyskać dostęp do stron. Problem polega na tym, że nie skaluje się dobrze. Chciałbym, aby wszystkie domeny z rozszerzeniem .devbox były przekazywane do okna programistycznego i właśnie o to walczę.

Próbowałem umieścić

192.168.3.99 devbox

do pliku hosts i edycja linii w dnsmasq.conf:

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

Ale nie mogę tego uruchomić. Jeśli wypróbuję dowolny adres URL, który nie jest jawnie obecny w pliku hosts pola programowania, wyszukiwanie dns kończy się niepowodzeniem.

Czy lokalna dyrektywa dotyczy czegoś innego? Czy patrzę na złe miejsce?

K. Norbert
źródło

Odpowiedzi:

14

Zapoznaj się z dokumentacją DNSmasq , zwłaszcza na stronie podręcznika dnsmasq i przykładowym pliku konfiguracyjnym . Lokalny kluczowe mówi dnsmasq do wykonywania tych wyszukiwań domen z danych lokalnych. Wpływa to na przykład na żądania wysyłane do DNSmasq dla foo.localnet i bar.localnet . Nie sądzę, że tego właśnie chcesz.

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

Aby zmusić wyszukiwania hosta / subdomeny do rozwiązania pod konkretny adres, prawdopodobnie będziesz chciał użyć słowa kluczowego adres . Drugi przykład poniżej powinien zezwalać web1.devbox i web2.devbox i web73872.devbox na wszystkie rozpoznanie pod podanym adresem.

# 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

Używam DNSmasq w domu do obsługi prostych rzeczy DNS dla mojej sieci LAN; w takim przypadku odpowiednie są słowa kluczowe lokalna i powiązana z domeną i expand-hosts . Serwer DNSmasq jest moim głównym serwerem nazw, więc wszystkie żądania przechodzą przez niego; wszelkie adresy nielokalne są przekazywane z powrotem do serwera nazw usługodawcy internetowego. Jeśli to możliwe, możesz rozważyć tę konfigurację.

quack quixote
źródło
odpowiedź na inne pytanie wskazuje, że address=/.devbox/192.168.3.99może być bardziej odpowiednia składnia dla twoich celów.
szarlatan
Rany, powinienem po prostu przeczytać części, które wkleiłem z konfiguracji, było oczywiste, że nie jest to, czego potrzebuję. Dyrektywa adresowa rozwiązała problem, dziękuję!
K. Norbert,
Użyłem powyższego z niespodzianką: serwer web / dns / dhcp ma interfejs bezprzewodowy w trybie Adhoc. Chociaż podczas przechwytywania pakietów widzę żądanie mDNS ORAZ odpowiedź, nie mogę uzyskać dostępu do serwera według nazwy. Tak jakby treść odpowiedzi nigdy nie została zarejestrowana. Jakieś pomysły?
George