Рекурсивная пересылка зоны в 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:

зона "foo.example.org" {
 введите вперед;
 экспедиторы { 127.0.0.1 порт 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:

опции {
  каталог "/var/cache/bind";
  уведомить да;
  allow-перевод { xx.xx.xx.xx; };
  dnssec-включить да;
  dnssec-валидация авто;
  auth-nxdomain нет;    # соответствует RFC1035
  listen-on-v6 {любой; };
  рекурсия да;
  allow-рекурсия {любая; };
};

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

PS: я пробовал другой сервер с настройкой и использованием dnsmasq server=/foo.example.org/127.0.0.1#5353 тестировать. Все еще получает ошибки.

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

1 ответ

Решение

Прежде всего, я бы предложил вам использовать что-то кроме 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?

Другие вопросы по тегам