Генерация записей для диапазонов адресов BIND

DNS

Часто в ответах на обратные запросы можно увидеть адреса вроде 192.0.2.10.customers.example.com. Такие записи удобны для админов других сетей — из вывода traceroute или tcpdump сразу понятно, какой компании принадлежит адрес. Как они делаются?

Генерация записей для диапазонов адресов в BIND

Можно сгенерировать их скриптом и записать в файл зоны, но в BIND для этой цели есть встроенный механизм — директива $GENERATE.

Для примера сгенерируем записи вида 192.0.2.X.users.example.com для диапазона адресов 192.0.2.1–100.

Сначала добавим обратную зону для сети 192.0.2.0/24 в /etc/named.conf.

Затем создадим файл зоны.

Применим изменения командой rndc reload или перезапуском сервиса. Для начала убедимся, что зона работает, и запросим PTR к настроенному вручную 192.0.2.200.

Теперь проверим адрес, для которого нет явной записи.

Как видим, все работает как ожидалось.

Разберем директиву на части. Первый аргумент ( 1-100) — это диапазон значений счетчика. Символ $ при генерации записей заменяется на текущее значение счетчика. В нашем случае BIND сгенерирует 99 правил от $=1 до $=100.

Второй аргумент — имя записи. Для записей типа PTR это номер хоста в сети, и он совпадает со счетчиком, потому и просто $. Третий аргумент — тип записи. Наконец, последний аргумент — ее значение.

Увы, в BIND нет способа исключить из автоматической генерации адреса, для которых уже есть явные записи, так что для клиентов со статическими адресами нужно либо выделить отдельный диапазон, либо смириться с двумя записями для одного адреса — явной и автоматически сгенерированной (что, впрочем, не принесет никакого вреда).

Директива $GENERATE обрабатывается при загрузке зоны и генерирует все записи в памяти. Таким образом, с ее помощью можно сэкономить время админа и число строк в файле зоны, но требования к памяти останутся теми же.

РЕКОМЕНДУЕМ:
Защита почтового сервера без антивируса

Автоматически сгенерированные записи обычно ассоциируются с обратными зонами, но не ограничиваются ими.

Предположим, у тебя есть пять веб-серверов с адресами 203.0.113.10–15. Ты хочешь создать для них записи вида www[1-5].example.com. Это вполне можно сделать автоматически. Добавь вот такую запись в файл зоны example.com:

Здесь 10 это константа, которая добавляется к значению счетчика, 0 — число ведущих нулей в значении (мы генерируем IP-адрес и дополнение нулями нам не нужно), d — десятичный формат вывода.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий