Я хочу настроить скрытый первичный DNS-сервер, т.е. я размещаю файлы зоны на своем собственном сервере, но все запросы должны поступать на вторичные DNS-серверы, размещенные выделенной DNS-компанией. Мой собственный DNS-сервер не должен использоваться рекурсивными преобразователями или конечными пользователями. Указанная компания скопирует файлы зон с моего сервера с переносом зоны. В идеале никто даже не должен знать, что мой сервер существует в этой настройке DNS.
Конечно все NS
записи в такой настройке будут указывать на серверы имен DNS-компании. Но я не уверен в SOA
запись.
Насколько я понимаю, эта настройка будет означать, что мой сервер является «началом полномочий», и поэтому мне придется указать его в SOA
- что сделает общедоступным, что мой сервер является настоящим основным сервером. В соответствии с еще один ответ на serverfault MNAME должен быть установлен на "the <domain-name>
сервера имен, который был исходным или основным источником данных для этой зоны ".
Если это возможно без особых проблем, я бы предпочел не указывать свой NS-сервер в SOA, а вместо этого указывать SOA на мою хостинговую компанию сервера имен.
Каковы будут последствия, если я на самом деле установлю company.example.com
как SOA вместо моего собственного сервера myserver.example.org
?
company.example.com
как сервер SOA, но myprivatemail@example.org
для почтового контакта?Использование внешних серверов имен (из другого домена) не является нарушением стандарта DNS, но это не похоже на скрытую первичную конфигурацию. NS дан как первичный в SOA
должен быть в пределах NS
записей, но на самом деле это не означает, что серверы должны быть настроены так, чтобы первичный сервер, представленный миру, был фактическим исходным источником данных.
Это могло бы, например, быть тем, что вы не хотите открывать миру первичный сервер с вашими личными ключами DNSSEC. Это особенно полезно, если публично объявленный первичный сервер имеет другие функции, которые может быть легче взломать, например некоторые веб-приложения.
Возьмем пример. Конфигурации предполагают BIND.
$ORIGIN example.com.
@ IN SOA ns1.example.com. hostmaster.example.com. (
2020053100 ; serial
7200 ; refresh (2 hours)
3600 ; retry (1 hour)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ IN NS ns3.example.com.
ns1 IN A 192.0.2.10
ns2 IN A 198.51.100.20
ns3 IN A 203.0.113.30
Скрытый мастер не указан в зоне.
172.16.10.40
.example.com.signed
.Он настроен как мастер для example.com
, разрешая передачу зон с общедоступного первичного сервера, но только с использованием LAN (или это также может быть VPN).
zone "example.com" {
type master;
file "/etc/bind/db/example.com.signed";
allow-transfer { 172.16.10.20; };
notify explicit;
also-notify { 172.16.10.20; };
};
Уведомление настраивается вручную с помощью notify explicit
& also-notify
, так как notify yes
будет уведомлять только серверы, указанные как NS
кроме того, который указан как основной в SOA
. Это просто не сработало бы из коробки.
Общественные первичные сервер ns1.example.com
192.0.2.10
и частный 172.16.10.20
.Это настроен как раб для зоны и позволяет передавать зоны от другого NS:
zone "example.com" {
type slave;
file "/etc/bind/db/example.com";
masters { 172.16.10.40; };
allow-transfer { 198.51.100.20; 203.0.113.30; };
notify yes;
};
Общественное вторичное серверы ns2.example.com
& ns3.example.com
.
В этом примере эти серверы находятся в другом месте, обеспечивая как обязательный сетевое разнообразие и геологическая избыточность.
Эти серверы выполняют передачу зон с публичного первичного сервера.
zone "example.com" {
type slave;
file "/etc/bind/db/example.com";
masters { 192.0.2.10; };
};