Чтение этого вопроса заставило меня задуматься:

Я хочу разместить DNS-сервер для своего домашнего веб-сайта из своего дома (который имеет статический IP-адрес), что мне нужно сделать?

Я хорошо разбираюсь в DNS и в том, как он работает, но этот вопрос ведет меня по пути, который я раньше не рассматривал.

Предположим, я размещаю DNS-сервер для своего собственного домена (example.com) в 1.2.3.4 , и этот DNS-сервер объявляет следующую (упрощенную) зону:

@   NS ns.domain.com.
@   A  1.2.3.4
ns  A  1.2.3.4

Затем я регистрирую ns.example.com качестве сервера имен example.com у своего регистратора.

Мы не можем разрешить адрес ns.example.com не зная, кто несет ответственность за example.com .

Как только мы узнаем, что ns.example.com является сервером имен для example.com , мы не застрянем? Конечно, нет никакого способа связаться с ns.example.com потому что запись A, идентифицирующая их IP-адрес, хранится на том же сервере ...?

Предположительно есть шаг, который я пропускаю при поиске ...


Прочитав это, мое понимание подтвердилось, но я все еще озадачен ...

Похоже, это возможно, так как google.com настроен таким образом (как описано в связанной статье).

Не пропущен ли шаг между 5 и 6?

Шаг 5: [...] Сервер gTLD .com отвечает со списком всех записей NS google.com. В этом случае у Google есть четыре сервера имен, от ns1.google.com до ns4.google.com.

Шаг 6. Наконец, распознаватель DNS запрашивает у одного из серверов имен Google IP-адрес «www.google.com».

... да, но нам нужно знать IP-адрес одного из этих серверов имен, чтобы запрашивать их, эффективно заменяя запрос www.google.com на промежуточный запрос ns1.google.com .


Что мне здесь не хватает?

2 ответа2

1

В этой ситуации в родительской зоне имеется копия соответствующих записей A/AAAA. Когда вы запрашиваете в зоне .com записи NS, сервер включает эти "склеенные" записи в дополнительный раздел ответа.

Корневая зона (общедоступная для загрузки) имеет много таких делегаций со связующими записями:

lt.             172800  IN  NS      a.tld.lt.
lt.             172800  IN  NS      b.tld.lt.
a.tld.lt.       172800  IN  A       195.8.218.131
b.tld.lt.       172800  IN  A       194.0.20.1
b.tld.lt.       172800  IN  AAAA    2001:678:19:0:0:0:0:1

Если вы попытаетесь просмотреть записи NS, используя dig lt. ns @a.root-servers.net , вы увидите те же адреса в разделе "ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ".

0

Шаг 5 этой статьи говорит:

[...] У сервера gTLD .com нет IP-адресов для google.com, но он знает расположение серверов имен google.com. Сервер gTLD .com отвечает со списком всех записей NS google.com.

Если я не ошибаюсь, хотя на сервере gTLD .com нет записей для IP-адресов google.com, зная расположение сервера имен google.com, он может запрашивать IP-адреса и отвечать на них.

Возможно , делать некоторые эксперименты с использованием dig +trace и +norecurse в несколько этапов может выяснить , что происходит.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .