nsupdate
используется для отправки запросов на обновление динамического DNS серверу имен в соответствии со стандартом RFC 2136. С ее помощью можно добавлять или удалять записи ресурсов из зоны без необходимости правки зонного файла вручную. Один запрос на обновление может содержать запросы на добавление или удаление нескольких записей ресурсов.
nsupdate
:
nsupdate [-dDi] [-L level] [-l][-g | -o | -y keyname:secret | -k keyfile] [-v] [-V] [-P] [-T] [-4 | -6] [filename]
Таблица 6.6. Опции команды nsupdate
Ключ
|
Описание
|
---|---|
-4
|
Использовать только IPv4
|
-6
|
Использовать только IPv6
|
-d
|
Включить режим отладки
|
-D
|
Включить дополнительный режим отладки
|
-i
|
Принудительно включить интерактивный режим, даже если стандартный ввод не является терминалом
|
-k keyfile
|
Позволяет указать файл, содержащий ключ аутентификации TSIG. Файлы могут быть в двух форматах: один файл, содержащий оператор ключа named.conf-format, который может быть автоматически сгенерирован ddns-confgen; или пара файлов, имена которых имеют формат K{name}.+157.+{random}.key и K{name}.+157.+{random}.private, которые могут быть сгенерированы dnssec-keygen. Параметр
-k также может использоваться для указания ключа SIG(0), используемого для аутентификации запросов на обновление Dynamic DNS. В этом случае указанный ключ не является ключом HMAC-MD5
|
-l
|
Установить режим локального хоста. Адрес сервера будет установлен на на localhost (отключая сервер, чтобы адрес сервера не мог быть переопределен). Подключения к локальному серверу используют ключ TSIG, найденный в
/var/run/named/session.key , который автоматически генерируется named, если какая-либо локальная первичная зона установила update-policy на local. Расположение этого файла ключа можно переопределить с помощью опции -k
|
-L level
|
Установить уровень отладки ведения журнала. Если 0, ведение журнала отключено
|
-p port
|
Установить порт для подключения к серверу имен. Значение по умолчанию — 53
|
-P
|
Вывести список частных типов записей ресурсов BIND, формат которых понимает nsupdate
|
-r udpretries
|
Установить количество повторных попыток UDP. Значение по умолчанию — 3. Если 0, выполняется только один запрос на обновление
|
-t timeout
|
Установить максимальное время, которое может занять запрос на обновление, прежде чем он будет прерван. Значение по умолчанию — 300 секунд. Если 0, тайм-аут отключен
|
-T
|
Вывести список стандартных типов записей ресурсов IANA, формат которых понимает nsupdate. nsupdate завершает работу после вывода списков. Параметр
-T можно комбинировать с параметром -P .
Другие типы можно ввести с помощью TYPEXXXXX, где XXXXX — это десятичное значение типа без начальных нулей. Rdata, если они присутствуют, анализируются с использованием формата UNKNOWN rdata (<обратная косая черта> <хэш> <пробел> <длина> <пробел> <шестнадцатеричная строка>)
|
-u udptimeout
|
Задать интервал повтора UDP. Значение по умолчанию — 3 секунды. Если равно 0, интервал вычисляется из интервала тайм-аута и количества повторов UDP
|
-v
|
Указывает, что TCP следует использовать даже для небольших запросов на обновление. По умолчанию nsupdate использует UDP для отправки запросов на обновление на сервер имен, если только они не слишком велики для того, чтобы поместиться в запрос UDP, в этом случае используется TCP. TCP может быть предпочтительнее, когда выполняется пакет запросов на обновление
|
-V
|
Вывести номер версии
|
-y [hmac:]keyname:secret
|
Задает буквальный ключ аутентификации TSIG. keyname — имя ключа, а secret — общий секрет в кодировке base64. hmac — имя алгоритма ключа; допустимые варианты: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384 или hmac-sha512. Если hmac не указан, по умолчанию используется hmac-md5 или, если MD5 отключен, hmac-sha256.
Примечание
Использование опции -y не рекомендуется, поскольку общий секрет предоставляется как аргумент командной строки в виде открытого текста.
|
nsupdate
считывает входные данные из filename или стандартного ввода. Каждая команда предоставляется ровно в одной строке ввода. Некоторые команды предназначены для административных целей; другие — это либо инструкции по обновлению, либо проверки предварительных условий содержимого зоны. Эти проверки устанавливают условия, что некоторое имя или набор записей ресурсов (RRset) либо существует, либо отсутствует в зоне. Эти условия должны быть выполнены, чтобы весь запрос на обновление был успешным. Обновления отклоняются, если тесты на предварительные условия не пройдены.
send
) приводит к отправке накопленных команд как одного запроса на обновление Dynamic DNS на сервер имен.
Таблица 6.7. Форматы команд и их значения
Команда
|
Описание
|
---|---|
server servername port
|
Отправить все динамические запросы на обновление на сервер имен servername. Если не указано ни одного оператора сервера, nsupdate отправляет обновления на основной сервер правильной зоны. Поле MNAME записи SOA этой зоны определяет основной сервер для этой зоны. port — это номер порта на servername, куда отправляются динамические запросы на обновление. Если номер порта не указан, используется номер порта DNS по умолчанию 53.
Примечание
Эта команда не действует, если используется GSS-TSIG.
|
local address port
|
Отправить все динамические запросы на обновление, используя локальный адрес. Если локальный оператор не указан,
nsupdate отправляет обновления, используя адрес и порт, выбранные системой. port также может использоваться для принудительного поступления запросов с определенного порта. Если номер порта не указан, система назначает его
|
zone zonename
|
Указывает, что все обновления должны быть сделаны в зоне zonename. Если оператор zone не указан,
nsupdate пытается определить правильную зону для обновления на основе остальной части ввода
|
class classname
|
Указывает класс по умолчанию. Если класс не указан, класс по умолчанию — IN
|
ttl seconds
|
Указывает время жизни по умолчанию в секундах для добавляемых записей. Значение none очищает TTL по умолчанию
|
key hmac:keyname secret
|
Указывает, что все обновления должны быть подписаны TSIG с использованием пары keyname-secret. Если указан hmac, он устанавливает используемый алгоритм подписи. Значение по умолчанию — hmac-md5; если MD5 отключен, то по умолчанию используется hmac-sha256. Команда key переопределяет любой ключ, указанный в командной строке с помощью
-y или -k
|
gsstsig
|
Эта команда использует GSS-TSIG для подписи обновлений. Это эквивалентно указанию
-g в командной строке
|
oldgsstsig
|
Эта команда использует версию GSS-TSIG для Windows 2000 для подписи обновлений. Это эквивалентно указанию
-o в командной строке
|
realm [realm_name]
|
При использовании GSS-TSIG эта команда указывает использование realm_name вместо realm по умолчанию в krb5.conf. Если realm не указан, сохраненная realm очищается
|
check-names [yes_or_no]
|
Включить или выключить обработку check-names для добавляемых записей. Check-names не влияет на предварительные условия или удаляемые записи. По умолчанию обработка check-names включена. Если обработка check-names завершается неудачей, запись не добавляется в сообщение UPDATE
|
prereq nxdomain domain-name
|
Эта команда требует, чтобы не существовало ни одной записи ресурса любого типа с именем domain-name
|
prereq yxdomain domain-name
|
Эта команда требует, чтобы существовал domain-name (как минимум одна запись ресурса любого типа)
|
prereq nxrrset domain-name class type
|
Эта команда требует, чтобы не существовало ни одной записи ресурса указанного типа, класса и domain-name. Если class не указан, предполагается IN (Интернет)
|
prereq yxrrset domain-name class type
|
Для этой команды требуется, чтобы существовала запись ресурса указанного типа, класса и доменного имени. Если class не указан, предполагается IN (Интернет)
|
prereq yxrrset domain-name class type data
|
С помощью этой команды данные из каждого набора предварительных условий этой формы, имеющих общий тип, класс и доменное имя, объединяются для формирования набора RR. Этот набор RR должен точно соответствовать набору RR, существующих в зоне с указанным типом, классом и доменным именем. Данные записываются в стандартном текстовом представлении RDATA записи ресурса
|
update delete domain-name ttl class type data
|
Удалить все записи ресурсов с именем domain-name. Если указаны type и data, удаляются только соответствующие записи ресурсов. Если class не указан, предполагается класс Internet. TTL игнорируется и допускается только для совместимости
|
update add domain-name ttl class type data
|
Добавить новую запись ресурса с указанным ttl, class и data
|
show
|
Отобразить текущее сообщение, содержащее все предварительные условия и обновления, указанные с момента последней отправки
|
send
|
Отправить текущее сообщение (эквивалентно вводу пустой строки)
|
answer
|
Отобразить ответ
|
debug
|
Включить отладку
|
version
|
Вывести номер версии
|
help
|
Вывести список команд
|
Примечание
nsupdate
для динамического обновления DNS-записей в доменных средах AD, необходимо использовать механизм аутентификации GSS-TSIG, который использует Kerberos-билет для аутентификации машины в домене. Kerberos-билет используется при обновлении DNS-записей с помощью nsupdate
с флагом -g
.
nsupdate -g
необходимо получить Kerberos-билет для машинного аккаунта с помощью команды:
# kinit -k 'MACHINENAME$'
Примечание
hostname -s
. В команде kinit
имя машинного аккаунта нужно указывать в верхнем регистре со знаком $, например:
#hostname -s
comp01 #kinit -k 'COMP01$'
nsupdate
для добавления и удаления записей ресурсов из зоны test.alt.
# nsupdate -g
> update delete oldhost.test.alt A
> update add newhost.test.alt 86400 A 192.168.0.195
> send
Новая запись будет имеет TTL 1 день (86400 секунд).
# nsupdate -g
> prereq nxdomain nickname.test.alt
> update add nickname.test.alt 86400 CNAME somehost.test.alt
> send
Предварительное условие позволяет серверу имен проверить, нет ли записей о ресурсах любого типа для nickname.test.alt. Если в зоне есть записи ресурсов, запрос на обновление не выполняется. Если этого имени не существует, добавляется CNAME.