У меня проблемы с настройкой dnsmasq. Все, что я хочу, это разрешить определенные имена хостов по определенным IP-адресам для любой машины в моей сети. Точнее говоря, я пытаюсь разрешить всем устройствам в моей сети доступ к некоторым машинам в моей сети, используя только указанное имя хоста. Я думаю, что, должно быть, мне не хватает чего-то важного, потому что, несмотря на то, что он заработал один раз, после перезагрузки моего DNS-сервера он перестал пересылать запросы на серверы вне локальной сети.
Вот мои настройки: (все IP-адреса имеют только последнюю цифру адреса IPv4)
Apple Airport Extreme настроен в режимах DHCP и NAT (на этом маршрутизаторе не может быть только NAT, поэтому для получения NAT я установил диапазон DHCP 253-254 и зарезервировал некоторые поддельные mac-адреса для этих IP-адресов). В моей сети это IP-адрес 1
Raspberry PI работает распбиан и dnsmasq. Это имеет IP-адрес 4 и имеет имя хоста "пи"
Машина под названием «башня» в 3
Dnsmasq настроен, чтобы быть сервером DNS и DHCP. Все машины, которые подключаются к сети, получают IP-адрес в правильном диапазоне, который я указал в dnsmasq, и Raspberry Pi (IP 4) автоматически назначается в качестве DNS-сервера. Dnsmasq также настроен на пересылку любых запросов, которые он не может найти, на другие общедоступные DNS-серверы. Вот полные мои DNS-серверы с полными отредактированными IP-адресами:
/etc/dnsmasq.conf:
# Dnsmasq.conf for raspberry pi
# Full examples found here:
# http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq.conf.example
# Set up your local domain here
domain=hyrule.home
# Example: The option local=/localnet/ ensures that any domain name query which ends in .localnet will be answered if possible from /etc/hosts or DHCP, but never sent to an upstream server
# don't forward requests (andrewoberstar.com/blog/2012/12/30/raspberry-pi-as-server-dns-and-dhcp)
local=/hyrule.home/
#resolv-file=/etc/resolv.dnsmasq
resolv-file=/etc/resolv.conf
#min-port=4096
## DNS SERVERS
#openNic california
server=173.230.156.28
#openNic Washington
server=23.226.230.72
#google public DNS
server=8.8.8.8
server=8.8.4.4
# Max cache size dnsmasq can give us
cache-size=10000
# Use the hosts file on this machine
expand-hosts
# ethernet - ip address mappings from /etc/ethers file
read-ethers
# Below are settings for dhcp.
dhcp-range=XXX.XXX.X.10,XXX.XXX.X.200,12h
dhcp-option=3,XXX.XXX.X.1
dhcp-authoritative
log-queries
/etc/resolv.conf:
domain hyrule.home
#search hyrule.home
#nameserver 8.8.8.8
/ и т.д. / хосты
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 raspberrypi
XXX.XXX.X.3 tower
XXX.XXX.X.4 pi
И файл /etc/ethers содержит mac-адреса интерфейсов ethernet соответствующих машин.
Я вижу, что dnsmasq регистрирует запросы, и все выглядит нормально, все запросы выглядят как
Nov 2 17:29:21 raspberrypi dnsmasq[2067]: query[AAAA] time.apple.com.hsd1.ca.comcast.net from 10.0.1.1
Nov 2 17:29:21 raspberrypi dnsmasq[2067]: forwarded time.apple.com.hsd1.ca.comcast.net to 173.230.156.28
Nov 2 17:29:21 raspberrypi dnsmasq[2067]: forwarded time.apple.com.hsd1.ca.comcast.net to 23.226.230.72
Nov 2 17:29:21 raspberrypi dnsmasq[2067]: forwarded time.apple.com.hsd1.ca.comcast.net to 8.8.8.8
Nov 2 17:29:21 raspberrypi dnsmasq[2067]: forwarded time.apple.com.hsd1.ca.comcast.net to 8.8.4.4
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: query[A] north-america.pool.ntp.org from 10.0.1.59
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: forwarded north-america.pool.ntp.org to 8.8.4.4
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: forwarded north-america.pool.ntp.org to 8.8.8.8
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: forwarded north-america.pool.ntp.org to 23.226.230.72
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: forwarded north-america.pool.ntp.org to 173.230.156.28
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: query[TXT] push.apple.com from 10.0.1.3
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: forwarded push.apple.com to 8.8.8.8
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: forwarded push.apple.com to 23.226.230.72
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: forwarded push.apple.com to 173.230.156.28
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: forwarded push.apple.com to 8.8.4.4
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: query[AAAA] time.apple.com.hyrule.home from 10.0.1.14
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: config time.apple.com.hyrule.home is NXDOMAIN-IPv6
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: query[A] time.apple.com.hyrule.home from 10.0.1.14
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: config time.apple.com.hyrule.home is NXDOMAIN-IPv4
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: query[AAAA] time.apple.com from 10.0.1.14
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: forwarded time.apple.com to 8.8.4.4
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: forwarded time.apple.com to 8.8.8.8
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: forwarded time.apple.com to 23.226.230.72
Nov 2 17:29:24 raspberrypi dnsmasq[2067]: forwarded time.apple.com to 173.230.156.28
РЕДАКТИРОВАТЬ: Я решил просто сбросить пи в Rasbian по умолчанию, потому что я много экспериментировал на нем, поэтому я хотел удалить любые другие переменные. Я пошел вперед и загрузил минибьян и установил dnsmasq. Я отредактировал свой resolv.conf так, чтобы он выглядел так (спасибо @Chuck Kollars за указание, что этот файл действительно делал):
domain hyrule.home
search hyrule.home
nameserver XXX.XXX.X.4
и только установите мой dnsmasq.conf для запроса к этим серверам имен (по умолчанию читая мой файл hosts):
server=/localnet/192.168.0.1 <--- still have the feeling this isn't right
## DNS SERVERS
#openNic california
server=173.230.156.28
#openNic Washington
server=23.226.230.72
В моем файле hosts у меня также были псевдонимы, настроенные как предложенный @Chuck Kollars , с форматом
<ipv4> <subdomain> <fqdn>
В этот момент у меня все еще были проблемы, и я заметил, что всякий раз, когда я пинговал что-то вроде "башни", dnsmasq пытался разрешить «tower.hsdn.comcast.com» или что-то в этом роде, перенаправляя его на внешние серверы имен потому что это не решило внутренне. Часть comcast выглядела знакомой, поэтому в моей утилите аэропорта (5.6.1) на вкладке Интернет в разделе TCP/IP этот же адрес был заполнен в поле "Имя домена" (ghosted, как будто он был унаследован), поэтому я изменил его также быть hyrule.home, и все работало, как ожидалось!
Я все еще не понимаю, почему это имя домена должно быть в маршрутизаторе, и почему оно не учитывается в файле resolv.conf ...