Вопрос: Можно ли комбинировать DNS-серверы?
В этом примере допустим, что я сдаю в аренду домен example.com
через службу (godaddy
, name.com
, и т.д)
У меня есть возможность указать этот домен и все его записи на другой сервер имен, но что, если я хочу сохранить этот сервер имен для таких вещей, как A
записи, но указывают поддомены с подстановочными знаками (*.example.com
) на другой сервер имен? Это возможно?
Я заглянул в NS
записи, однако они, похоже, предназначены только для балансировки нагрузки DNS на нескольких серверах.
Кроме того, "настраиваемый" сервер имен в этом примере будет node
применение (dnsd)
Хотя я не уверен, что это важно.
Чтобы объяснить немного больше (используя локальные IP-адреса для объяснения):
Мои требования следующие:
Эти записи размещены на name.com
например:
A - example.com to ns1.name.com nameserver
A - api.example.com to ns2.name.com nameserver
Эти записи размещены на dnsd
(другой сервер имен):
A - *.example.com to 192.168.0.32 nameserver
Потенциальным решением было бы определить сервер имен для example.com
(ns.example.com
), а затем укажите ns
запись *.example.com
к ns.example.com
?
Записи DNS представляют собой иерархию. Все, что находится на одном уровне (v1.example.com, v2.example.com и т. Д.), Будет разрешено записями NS, установленными для этого уровня (example.com).
Вы жестяная банка иметь разные серверы имен для разных уровней / поддоменов, если вы так склонны, например (например, example.com на godaddy, сетевые решения subdomain1.example.com, subdomain2.example.com dns made easy).
Это называется делегированием зоны.
Правильный способ сделать это - настроить кластер большего размера, но у вас может быть точка записи NS для таких поддоменов. Вы можете копать этот домен, но я не собираюсь держать его активным на этой виртуальной машине так долго.
$TTL 1m
$ORIGIN foobook.com.
@ IN SOA ns1.foobook.com. joeblownonesuch.foobook.com. (
2016081602
1m ; refresh
2m ; update
2m ; expiry
2m ; minimum
)
@ IN NS ns1
@ IN NS ns2
ns1 IN A 212.109.220.95 ; glue records
ns2 IN A 212.109.220.96
@ IN A 212.109.220.95 ; misc a records for testing
www IN A 212.109.220.96
mail IN A 212.109.220.95
test IN A 212.109.220.95
@ IN MX 10 mail.foobook.com.
sub.foobook.com. NS ns1.sedoparking.com.
www.foobook.com. NS ns1.sedoparking.com. ; overlaps with a record www.foobook.com.
Это даст вам следующие результаты:
[root@otherserver master]# dig +short @localhost test.foobook.com
212.109.220.95 [answer is from my server]
[root@cpc2-cosh11-2-0-cust725 master]# dig +short @localhost www.foobook.com
72.52.4.120 [answer is from ns1.sedoparking.com]
[root@otherserver master]# dig +short @localhost whatever.sub.foobook.com
72.52.4.120 [answer is from ns1.sedoparking.com]
[root@otherserver master]# dig +short @localhost mail.foobook.com
212.109.220.95 [answer is from my server]
[root@otherserver master]# dig +short @localhost ns1.foobook.com
212.109.220.95 [answer is from my server]
В любом случае 212. * - мой сервер, а 72. * означает, что за ним следует указатель NS на sedoparking (который для всего использует записи DNS с подстановочными знаками).
Что вам на самом деле следует сделать: в аналогичной ситуации я использовал множество сценариев bash, чтобы преобразовать файлы зоны в новый формат файлов зоны, затем я использовал сценарий с dig + short, чтобы сравнить выходные данные двух серверов для каждый поддомен.
Настройка разных серверов, предоставляющих информацию DNS для поддоменов, в основном полезна, когда вы хотите, чтобы другая компания или отдел управляли своим собственным поддоменом.