Назад | Перейти на главную страницу

Рекурсивная пересылка зоны в BIND

У меня есть VPS с настроенным BIND. Хорошо работает несколько месяцев.

Недавно я хочу настроить другую программу DNS для управления foo.example.org поддомен на этом VPS. Я установил их в dns.he.net:

foo.example.org. IN NS vps.exmaple.org.
vps.example.org. IN A  xx.xx.xx.xx

Поскольку BIND прослушивает 53 / udp, я настроил его для прослушивания порта 5353 и в named.conf:

zone "foo.example.org" {
 type forward;
 forwarders{ 127.0.0.1 port 5353; };
};

Я думаю, что эта конфигурация перенаправит все запросы для *.foo.example.org ко второй программе DNS. Но когда я это проверяю ...

На самом VPS:

dig bar.foo.example.org @127.0.0.1 -p5353 хорошо работает.

dig bar.foo.example.org @127.0.0.1 работает хорошо.

На моем ноутбуке:

dig bar.foo.example.org @vps.example.org -p5353 хорошо работает.

dig bar.foo.example.org @vps.example.org хорошо работает.

dig foo.example.org @8.8.8.8 -t ns работает хорошо.

dig bar.foo.example.org @8.8.8.8 возвращается SERVFAIL.

Замена 8.8.8.8 другими DNS-серверами дает те же результаты, и нет ничего плохого в TTL.

Кто-нибудь знает, что не так с моей конфигурацией? Вот дополнительная информация:

Другая конфигурация BIND9:

options {
  directory "/var/cache/bind";
  notify yes;
  allow-transfer { xx.xx.xx.xx; };
  dnssec-enable yes;
  dnssec-validation auto;
  auth-nxdomain no;    # conform to RFC1035
  listen-on-v6 { any; };
  recursion yes;
  allow-recursion { any; };
};

И, в частности, «вторая программа DNS» - это йод, который туннелирует IP через запросы DNS. Я следовал этому руководству, чтобы настроить его за BIND9: http://dev.kryo.se/iodine/wiki/TipsAndTricks#RunningiodinebehindBIND9

PS: Я пробовал другой сервер с настройкой dnsmasq и использую server=/foo.example.org/127.0.0.1#5353 тестировать. По-прежнему возникают ошибки.

Может ли кто-нибудь помочь? Заранее спасибо.

Прежде всего, я бы посоветовал вам использовать что-то другое, кроме 5353, в качестве альтернативного порта для DNS-серверов. 5353 конфликтует с zeroconf / mDNS.

Причина, по которой это работает только при использовании vps.example.org как рекурсивный преобразователь, потому что это единственный рекурсивный сервер, которому было сказано, что ему нужно перейти на специальный DNS-сервер на порту 5353, чтобы найти foo.example.org.

Поскольку вы не можете указать номер порта в NS записи, как правило, невозможно иметь авторитетный сервер на порту, отличном от 53. Все рекурсивные серверы имен в мире собираются найти запись NS для рассматриваемого домена и попытаются связаться с этим сервером на порту 53 Если вы хотите, чтобы они использовали другой порт, вам нужно было бы настроить для каждого из них зону пересылки, указывающую на порт 5353.

Кстати, непонятно, зачем вы хотите разместить foo.example.org на отдельном сервере имен на другом порту (или IP-адресе). Почему бы вам просто не добавить foo.example.org зона на тот же авторитетный сервер имен, который обслуживает example.org?