DNS иерархия с привязкой

Я делаю проект из класса, в котором я хочу имитировать DNS-иерархию, которая работает как глобальная Интернет-DNS-иерархия. Структура выглядит так:

иерархия

Таким образом, все запросы будут отправлены на корневой сервер, который будет возвращать IP-адрес сервера edu, а тот будет возвращать ip сервера kevin или bech в зависимости от запроса.

Я настроил все серверы вручную с помощью bind:

$TTL    604800
@       IN      SOA     kevin.edu. root.kevin.edu. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;

        IN      NS      dns.kevin.edu.

www     IN      A       1.1.1.7
kgs     IN      A       1.1.1.8
dns     IN      A       1.1.1.5

Теперь моя проблема заключается в том, что я хочу решить это рекурсивно, хост будет знать только ip корневого сервера DNS, и когда он хочет узнать ip www.kevin.edu, сначала запросит idu edu к корню, затем kevin.edu для edu и, наконец, www.kevin.edu для kevin.

Есть идеи, как мне это сделать?

Редактировать:

Файл конфигурации корневого DNS-сервера:

$TTL    604800
@       IN      SOA     . root.kevin.edu. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;

        IN      NS      dns.

edu     IN      A       1.1.1.4
dns     IN      A       1.1.1.3

1 ответ

Решение

Ваша корневая зона, как показано в вопросе, не содержит никакой информации о делегировании для eduтолько A запись. По этому определению edu это не отдельная зона, а просто имя, являющееся частью корневой зоны.

Чтобы соответствовать вашему описанию того, что вы хотите, eduA запись не должна находиться в корневой зоне, вместо нее должна быть делегатская NS записи + клей A/AAAA записи, так что можно следить за делегированием.

Например что-то вроде этого:

edu.    IN  NS  ns.edu.    ; delegation
ns.edu. IN  A   1.1.1.4    ; glue

Соответствующие записи должны существовать в авторитетных зонах (edu зона в данном случае).

Убедившись, что на самом деле существует делегирование между всеми вашими зонами, будет достаточно просто настроить сервер распознавания для работы с вашим настраиваемым деревом DNS. Это просто вопрос предоставления корневых ссылок (NS + клей A/AAAA записи) для вашей пользовательской корневой зоны и, возможно, отключение / переопределение любых параметров dnssec, которые относятся к тому, как подписана настоящая корневая зона.

Другие вопросы по тегам