Я работаю над созданием домашней сети для меня и моих соседей по комнате. Моя идея заключается в том, что мы сможем хранить такие вещи, как прошлые счета за коммунальные услуги, в месте, более доступном, чем ящик на кухне и т. Д. В любом случае, у меня Apache 2 работает на Raspberry Pi, в моей локальной сети, и если я использую его IP-адрес, я могу получить доступ к страницам, обслуживаемых на Pi. Поскольку я больше занимаюсь этим проектом, чтобы узнать больше о сетевом взаимодействии и предоставлении услуг для моей квартиры, я подумал, что было бы здорово, если бы моя сеть могла обеспечить разрешение имени хоста для моей локальной сети. Поэтому вместо того, чтобы указывать в своем браузере 192.168.1.151IP-адрес Pi, я мог бы указать его oberon(его имя хоста) и просматривать веб-страницы, обслуживаемые Pi.
Теперь я знал, что я был не первым, кто хотел это сделать, поэтому я начал с Google. Этот вопрос, также касающийся Unix и Linux, очень помог мне: как сделать машину доступной из локальной сети, используя ее имя хоста . На данный момент, я попробовал все в проверенном ответе. Я думал об использовании hostsфайла, но это означало бы, что я должен был бы сказать своим соседям по комнате, чтобы они настраивали свои машины, что я не хочу, чтобы они делали. Я пытался зарезервировать аренду DHCP для Pi на моем маршрутизаторе (NETGEAR WNR1000v2 (он же N150)), и хотя резервирование работало, разрешение имени хоста не выполняется. Этот вид разочаровывает меня, потому что я сообщил маршрутизатору IP-адрес Pi и его имя хоста, но он по-прежнему не предоставляет эту информацию клиентам в моей локальной сети.
С этими двумя методами не работает, я решил установить dnsmasqна Pi. Это казалось простым в настройке, и я был бы счастлив изучить новый инструмент. Я установил и он работает нормально (кажется). Я могу digили nslookupпрозвища Пи (которые я предлагаю в /etc/hostsк oberonи homenet) и получить правильные результаты. Я могу сделать то же самое для имен в Интернете, таких как yahoo.comи получить правильные ответы, потому что я настроил Google 8.8.8.8и в 8.8.4.4качестве серверов резервного копирования в /etc/dnsmasq.conf. Посмотри это:
me@oberon~$ dig oberon
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> oberon
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10787
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;oberon. IN A
;; ANSWER SECTION:
oberon. 0 IN A 192.168.1.151
;; Query time: 10 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Oct 6 18:59:18 2013
;; MSG SIZE rcvd: 40
Обратите внимание, что SERVERis 127.0.0.1: oberonищет свой собственный IP-адрес сам по себе. Это то, что я ожидал увидеть. Вывод такой же, если я делаю dig oberon @localhost. Из-за этого вывода, я думаю, что dnsmasqработает нормально. Поэтому, чтобы вывести его на новый уровень, я хочу, чтобы все клиенты в моей локальной сети могли печатать oberonв своем браузере и переходить на oberonглавную страницу. Для этого я знаю, что мне нужно настроить мой маршрутизатор (извините, если это отклоняется от строго Unix & Linux территории).
У меня есть Netgear WNR1000v2, с которым я довольно хорошо знаком. Я настроил переадресацию портов, чтобы я мог подключаться по SSH к Pi, и я также изучил другие параметры. Я знаю, что до того, как я начал этот проект, я получал свои DNS-серверы от своего интернет-провайдера, но теперь я хочу использовать эти DNS-серверы в первую очередь, но также использовать 192.168.1.151в качестве последней проверки. Поэтому я изменил конфигурацию DNS моего маршрутизатора следующим образом:

Так что с этим конфигом я ожидал, что смогу сделать это nslookup oberonна своем (Windows) рабочем столе и получить результат 192.168.1.151. Но этого не происходит. Вот что происходит:
C:\Users\me>nslookup oberon
Server: UnKnown
Address: fe80::226:f2ff:fefa:bea
*** UnKnown can't find oberon: Non-existent domain
Сброс или dnsflushingсетевой адаптер на моем компьютере с Windows ничего не меняет.
Теперь вот почему я как бы рву свои волосы здесь:
C:\Users\me>nslookup oberon 192.168.1.151
Server: oberon.lan
Address: 192.168.1.151
Name: oberon
Address: 192.168.1.151
Понятно, dnsmasqработает просто отлично. Если я скажу своему окну Windows использовать 192.168.1.151для разрешения имени oberon, все будет хорошо ( .lanдомен был частью конфигурации dnsmasq, поэтому я ожидал увидеть его там). Если бы я мог просто заставить свой маршрутизатор сказать моей машине Windows, что она использует, 192.168.1.151когда она делает запросы DNS, я был бы хорош!
Поэтому мне кажется, что проблема в моем маршрутизаторе, но я просто не могу понять, что делать, кроме изменения DNS-серверов для включения, 192.168.1.151как у меня уже есть. Может ли кто-нибудь помочь мне здесь? Я постараюсь предоставить любую дополнительную информацию по желанию.