nsupdate: динамический редактор зон DNS
nsupdate: динамический редактор зон DNS.
Содержание
1 Общая информация
- nsupdate используется для внесения изменений в динамический DNS без необходимости редактирования файлов зоны и перезапуска DNS-сервера.
2 Обновление зоны по ключу
2.1 Создание ключа
- Создадим ключ для зоны
example.com
: - Файл
/etc/named/keys/example.com.key
будет иметь следующий вид:
2.2 Настройка DNS Bind
- Настройка происходит в файле
/etc/named.conf
. - Ключ скопируем на хост с DNS-сервером (если это другой сервер).
- Поместим его в файл
/etc/named/keys/example.com.key
. - Подключим ключ:
1include "/etc/named/keys/example.com.key";
- Разрешим обновление зон:
- Поправим права доступа:
3 Использование nsupdate
3.1 Вызов nsupdate
- При запуске
nsupdate
вы попадете в базовую среду командной строки для отправки команд обновления в DNS. - Опции запуска:
-v
: связь с DNS должна осуществляться по протоколу TCP, а не UDP;-k
: указывает на файл ключа.
- Вызов
nsupdate
:1nsupdate -v -k /etc/named/keys/example.com.key
- Чтобы выйти из сеанса nsupdate, просто нажмите
CTRL-D
или введитеquit
и нажмитеRETURN
.
3.2 Удаление записи
- Безоговорочное удаление записи DNS (например, записи CNAME www.example.com).
- В командной строке
nsupdate
введите: - Когда вы вводите
send
и нажимаетеRETURN
, запрос на обновление создаётся, подписывается и отправляется на соответствующий DNS-сервер. - Если ключ был авторизован для выполнения запроса, DNS обновит свою базу данных, обновит файлы журнала, увеличит серийный номер записи SOA и отправит уведомление об изменении всем подчиненным DNS.
- Подчинённые устройства запустят AXFR (или IXFR) для сбора обновлений с главного DNS.
3.3 Несколько обновлений
- Чтобы сэкономить время и уменьшить DNS-трафик, можно одновременно отправить несколько запросов на обновление в одном пакете:
- Все обновления в одном пакете
send
должны относиться к одной и той же зоне. - Особенности реализации: из-за фиксированного входного буфера более 2000 запросов за раз иногда не проходят.
3.4 Добавление записей
- Добавим записи
A
,CNAME
иPTR
. При добавлении необходимо указатьTTL
— время жизни записи в секундах:
3.5 Неинтерактивное использование
- Неинтерактивный запуск: можно указать файл, содержащий пакет команд, или просто передать их по STDIN.
3.5.1 С помощью файла
- Например, создадим файл
batch.txt
: - Запустите его, выполнив:
1nsupdate -v -k /etc/named/keys/example.com.key batch.txt
3.5.2 Удалить все записи A, начинающиеся с www, в зоне example.com
- Удалить все записи
A
, начинающиеся сwww
, в зонеexample.com
:1( host -t a -l example.com | grep -i '^www' | awk '{ print "update delete "$1" a" }' ; echo send ) | nsupdate -v -k /etc/named/keys/example.com.key
3.5.3 Добавить хост
- Добавим хост
www.example.com
:1echo -e "update add www.example.com 86400 a 192.168.1.1\nshow\nsend" | nsupdate -v -k /etc/named/keys/example.com.key
4 Материалы
- Скрипт для упрощения использования nsupdate
- Репозиторий: https://github.com/perryflynn/nsupdate-interactive