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