У меня есть маршрутизатор на основе OpenWRT, который имеет dnsmasq 2.59. Внутри моей локальной сети у меня есть привязка NS-сервера. Этот сервер имеет внутренние и внешние представления для пары моих доменов. Мой маршрутизатор перенаправляет порт 53 TCP и UDP с внешнего IP-адреса (маршрутизатор WAN) на этот сервер. Для внешних клиентов все работает отлично.
Чтобы организовать внутреннее представление, я решил добавить исключение в
/etc/dnsmasq.conf
server=/mydomain1.com/192.168.1.1
server=/mydomain2.com/192.168.1.1
server=/mydomain3.com/192.168.1.1
(192.168.1.1 - IP-адрес NS-сервера)
Согласно тексту dnsmasq manstrong:
More specific domains take precendence over less specific domains, so: --server=/google.com/1.2.3.4 --server=/www.google.com/2.3.4.5 will send queries for *.google.com to 1.2.3.4, except *www.google.com, which will go to 2.3.4.5
Предполагается, что это доменное имя со всеми поддоменами должно быть перенаправлено на мой NS-сервер.
Все работает (SOA, NS, MX, CNAME, TXT, SRV и т.д.), За исключением A-записи:
# nslookup -type=a mydomain1.com
Server: 192.168.1.100
Address: 192.168.1.100#53
*** Can't find mydomain1.com: No answer
192.168.1.100 - IP-адрес моего роутера (dnsmasq)
Однако я могу получить ответ на запрос TXT-записи:
# nslookup -type=txt mydomain1.com
Server: 192.168.1.100
Address: 192.168.1.100#53
mydomain1.com text = "v=spf1 include:mydomain1.com -all"
Когда я просто указываю локальный IP-адрес моего NS-сервера (прямой доступ к серверу без использования dnsmasq), тогда получаются следующие результаты:
# nslookup -type=a mydomain1.com 192.168.1.1
Server: 192.168.1.1
Address: 192.168.1.1#53
Name: mydomain1.com
Address: 192.168.1.1
Аналогичная ситуация с MX-записью:
C:\>nslookup -type=mx mydomain1.com
Server: router.lan
Address: 192.168.1.100
mydomain1.com MX preference = 10, mail exchanger = mail.mydomain1.com
mydomain1.com nameserver = ns.mydomain1.com
mail.mydomain1.com internet address = 192.168.1.1
ns.mydomain1.com internet address = 192.168.1.1
C:\>nslookup -type=a mail.mydomain1.com
Server: router.lan
Address: 192.168.1.100
*** No address (A) records available for mail.mydomain1.com
Это результат раскопок:
# dig +nocmd mydomain1.com any +multiline +noall +answer
mydomain1.com. 86400 IN SOA ns.mydomain1.com. hostmaster.mydomain1.com. (
121204007 ; serial
28800 ; refresh (8 hours)
7200 ; retry (2 hours)
604800 ; expire (1 week)
3600 ; minimum (1 hour)
)
mydomain1.com. 86400 IN NS ns.mydomain1.com.
mydomain1.com. 86400 IN A 192.168.1.1
mydomain1.com. 604800 IN MX 10 mail.mydomain1.com.
mydomain1.com. 3600 IN TXT "v=spf1 include:mydomain1.com -all"
Когда я пытаюсь пинговать:
# ping mydomain1.com
ping: cannot resolve mydomain1.com: Unknown host
Это ошибка dnsmasq 2.59? Как справиться с этой проблемой?