Доменное имя моей организации - example.com. Серверы имен организации называются ns1.example.com и ns2.example.com.
Я являюсь администратором поддомена project.example.com. Наше пространство IP-адресов - 10.0.0.0/22 (10.0.0.0 - 10.0.3.255).
У меня есть один основной сервер имен и один дополнительный сервер имен (ns1.project.example.com (10.0.0.2) и ns2.project.example.com (10.0.1.2), соответственно).
Этими серверами имен является Bind 9.10.3, работающий под Debian 9.5.
Я настроил эти зоны (для которых я либо уполномочен, либо делегирую полномочия:
- project.example.com
- 0.0.10.in-addr.arpa
- 1.0.10.in-addr.arpa
- 2.0.10.in-addr.arpa
- 3.0.10.in-addr.arpa
Серверы имен моей организации направляют (не делегируют) запросы в пространство имен project.example.com моим серверам имен.
Для запросов имен, для которых я не являюсь уполномоченным, не делегирую, не пересылаю и не кэширую, я использую режим "Только пересылка" для пересылки запроса на ns1.example.com / ns2.example.com.
Я разделил часть своего пространства имен на поддомен sub.project.example.com. Пространство IP-адресов для этого субдомена 10.0.3.0/24.
Существует только один сервер имен для sub.project.example.com. Его имя хоста - ns1.sub.project.example.com (10.0.3.2).
Этот сервер имен - Bind 9.9.4, работающий под CentOS 7.3.
Для прямого поиска в sub.project.example.com я делегирую ns1.sub.project.example.com (10.0.3.2). У меня есть требуемая клейкая запись на месте.
Для обратных поисков в 3.0.10.in-addr.arpa я пересылаю (не делегирую) на ns1.sub.project.example.com (10.0.3.2). Я не могу делегировать, так как я не контролирую 0.10.in-addr.arpa.
Эта проблема
Есть один конкретный случай, когда вещи не работают. Этот случай возникает, когда я выключаю свой основной сервер имен, чтобы проверить дополнительный сервер имен.
Предположим, я открываю командную строку на своем настольном компьютере с Windows - my-host.example.com. Я не могу запросить host-1.sub.project.example.com. Время ожидания запроса истекло.
Когда я запускаю tcpdump на дополнительном сервере имен ns2.project.example.com (10.0.1.2), я вижу запрос, поступающий с ns1.example.com. Однако вместо того, чтобы делегировать его ns1.sub.project.example.com, он перенаправляет его обратно на ns1.example.com.
Чтобы перефразировать первый абзац этого раздела, запрос выполняется успешно, если работает мой основной сервер имен ns1.project.example.com (10.0.0.2) . Если основной сервер имен не работает, а дополнительный сервер имен ns2.project.example.com (10.0.1.2) получает запрос , это случай сбоя.
Я включил мои файлы конфигурации ниже.
Как я могу решить эту проблему?
Конфигурация зоны (NS Records)
; project.example.com
@ NS ns1
@ NS ns2
sub NS ns1.sub
; Forward 3.0.10.in-addr.arpa rather than delegate it
; We can't delegate since we don't own 0.10.in-addr.arpa.
; That's why the line below is commented out.
; 203.240.10.in-addr.arpa. NS centos-s1.ipa
; Glue record
ns1.sub A 10.0.3.2
project.example.com Первичная конфигурация сервера имен
controls {};
acl "internal-hosts" { 10.0.0/22; 127/8; };
acl "external-hosts" { 10/8; 192.168/16; 172.16/12; };
view "internal-view" {
match-clients { "internal-hosts"; };
zone "project.example.com" {
type master;
file "db.project.example.com_internalView";
forwarders { };
};
zone "0.0.10.in-addr.arpa" {
type master;
file "db.10.0.0";
forwarders { };
};
zone "1.0.10.in-addr.arpa" {
type master;
file "db.10.0.1";
forwarders { };
};
zone "2.0.10.in-addr.arpa" {
type master;
file "db.10.0.2";
forwarders { };
};
zone "3.0.10.in-addr.arpa" {
type forward;
forwarders { 10.0.3.2; };
};
// Internal-only zone
zone "31.172.in-addr.arpa" {
type master;
file "db.172.31";
forwarders { };
};
};
view "external-view" {
match-clients { "external-hosts"; };
zone "project.example.com" {
type master;
file "db.project.example.com_externalView";
forwarders { };
};
zone "0.0.10.in-addr.arpa" {
type master;
file "db.10.0.0";
forwarders { };
};
zone "1.0.10.in-addr.arpa" {
type master;
file "db.10.0.1";
forwarders { };
};
zone "2.0.10.in-addr.arpa" {
type master;
file "db.10.0.2";
forwarders { };
};
zone "3.0.10.in-addr.arpa" {
type forward;
forwarders { 10.0.3.2; };
};
};
project.example.com Конфигурация вторичного сервера имен
controls {};
acl "internal-hosts" { 10.0.0/22; 127/8; };
acl "external-hosts" { 10/8; 192.168/16; 172.16/12; };
masters "my-master" { 10.0.0.2; };
view "internal-view" {
match-clients { "internal-hosts"; };
zone "project.example.com" {
type slave;
file "bak.project.example.com_internalView";
masters { my-master; };
forwarders { };
};
zone "0.0.10.in-addr.arpa" {
type slave;
file "bak.10.0.0";
masters { my-master; };
forwarders { };
};
zone "1.0.10.in-addr.arpa" {
type slave;
file "bak.10.0.1";
masters { my-master; };
forwarders { };
};
zone "2.0.10.in-addr.arpa" {
type slave;
file "bak.10.0.2";
masters { my-master; };
forwarders { };
};
zone "3.0.10.in-addr.arpa" {
type forward;
forwarders { 10.0.3.2; };
};
// Internal-only zone
zone "31.172.in-addr.arpa" {
type slave;
file "bak.172.31";
masters { my-master; };
forwarders { };
};
};
view "external-view" {
match-clients { "external-hosts"; };
zone "project.example.com" {
in-view "internal-view";
};
zone "0.0.10.in-addr.arpa" {
in-view "internal-view";
};
zone "1.0.10.in-addr.arpa" {
in-view "internal-view";
};
zone "2.0.10.in-addr.arpa" {
in-view "internal-view";
};
zone "3.0.10.in-addr.arpa" {
// in-view "internal-view";
type forward;
forwarders { 10.0.3.2; };
};
};