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
это не отдельная зона, а просто имя, являющееся частью корневой зоны.
Чтобы соответствовать вашему описанию того, что вы хотите, edu
A
запись не должна находиться в корневой зоне, вместо нее должна быть делегатская NS
записи + клей A
/AAAA
записи, так что можно следить за делегированием.
Например что-то вроде этого:
edu. IN NS ns.edu. ; delegation
ns.edu. IN A 1.1.1.4 ; glue
Соответствующие записи должны существовать в авторитетных зонах (edu
зона в данном случае).
Убедившись, что на самом деле существует делегирование между всеми вашими зонами, будет достаточно просто настроить сервер распознавания для работы с вашим настраиваемым деревом DNS. Это просто вопрос предоставления корневых ссылок (NS
+ клей A
/AAAA
записи) для вашей пользовательской корневой зоны и, возможно, отключение / переопределение любых параметров dnssec, которые относятся к тому, как подписана настоящая корневая зона.