Я хотел бы понять, как работает процесс разрешения записи CNAME. Допустим, у меня есть запись на DNS-сервере NS1
proxy.example.com IN CNAME proxy.example1.com
NS1 не является авторитетным для example1.com. На сервере NS2 есть запись
proxy.example1.com IN A 1.2.3.4
proxy.example1.com
разрешается только из клиентской сети, а не из сети, в которой расположен NS1.
Если клиент просит proxy.example.com
, будет ли сервер NS1 пытаться разрешить всю цепочку от имени клиента или он вернет имя proxy.example1.com
? И если он попытается разрешить всю цепочку, что произойдет, если он потерпит неудачу, потому что NS2 недоступен из NS1? Какой ответ он отправит клиенту?
Спасибо.
Нет, авторитетный сервер будет отвечать только теми данными, которые у него есть.
Вместо этого ожидается, что сервер распознавания скроет конечный результат в случае такого межзонального псевдонима.
В вопросе не подробно описываются какие-либо странности в настройке DNS (кроме странного отсутствия связи, но это, вероятно, не имеет отношения к делу), поэтому я просто опишу, как обычно предполагается, что все будет работать:
____________________
| |
+----->| a.root-servers.net |
| | zone: . |
| |____________________|
|
| ____________________
| | |
+----->| a.gtld-servers.net |
______________________ __________ | | zone: com |
| | | | | |____________________|
| Client/stub resolver |<--->| Resolver |<--+
|______________________| |__________| | ____________________
| | |
+----->| "NS1" |
| | zone: example.com |
| |____________________|
|
| ____________________
| | |
+----->| "NS2" |
| zone: example1.com |
|____________________|
Ваш сценарий (без кеширования, для простоты):
proxy.example.com. IN A
a.root-servers.net
для proxy.example.com. IN A
com
(ссылаясь на a.gtld-servers.net
)a.gtld-servers.net
для proxy.example.com. IN A
example.com
(ссылаясь на "NS1"
)"NS1"
для proxy.example.com IN A
proxy.example.com. IN CNAME proxy.example1.com.
a.root-servers.net
для proxy.example1.com. IN A
com
(ссылаясь на a.gtld-servers.net
)a.gtld-servers.net
для proxy.example1.com. IN A
example1.com
(ссылаясь на "NS2"
)"NS2"
для proxy.example1.com. IN A
proxy.example1.com. IN A 1.2.3.4
proxy.example.com. IN CNAME proxy.example1.com.
proxy.example1.com. IN A 1.2.3.4