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