Версия для печати
Вторник, 29 декабря 2020 15:33

Автоматическое обновление ДНС записей ПК под управлением Linux

Автор
Оцените материал
(118 голосов)

Работая в домене Windows на компьютерах под управлением Windows, мы зачастую даже не задумываемся о том, что при любом изменении параметров ПК (будь то имя или IP адрес) все изменения автоматически регистрируются на DNS сервере. Так устроен Windows и, как правило, не требуется никаких ручных действий. В ОС Linux автоматический механизм обновления записей ДНС отсутствует. Исключение составляет тот случай, когда клиент работает в домене FreeIPA (при условии, что DNS сервер развернут на том же сервере FreeIPA). Там этот механизм реализован клиентом FreeIPA. Работая же в домене Windows (или совсем без домена) клиенты Linux такой возможности лишены.  Но тем не менее и там тоже можно его реализовать, хотя и понадобится приложить некоторые усилия. Речь пойдет об утилите nsupdate

 NSUPDATE - утилита, предназначенная для обновления записей в ДНС. Утилита интерактивная, но можно написать небольшой скрипт и запускать его по расписанию.

Содержание скрипта с коментариями:

#!/bin/sh
# Определяем IP адрес необходимого нам сетевого интерфейса (в данном случае ens33)
ADDR=`/sbin/ifconfig ens33 | grep 'inet ' | awk '{print $2}' | sed -e s/.*://`
# Еще один способ определения адреса
#ADDR=$( ip -o a s | awk '$1 !~ /lo/ && $2 !~ /lo/' | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}\/[0-9]+' | awk -F'/' '{print $1}' )
# Определяем переменную для обновления обратной зоны
RADDR=$( echo ${ADDR} | tr '.' '\n' | tac | tr '\n' '.' )in-addr.arpa
# Определяем имя узла
HOST=`hostname`

# Обновление записей на DNS сервере. Первым делом удаляется предыдущая A запись и вставляется новая с переменными $HOST и $ADDR.
# Затем удаляется запись в обратной зоне и вставляется новая с переменными $HOST и $PADDR
nsupdate <<EOF
update delete $HOST A
update add $HOST 86400 A $ADDR
send
update delete $RADDR PTR
update add $RADDR 86400 PTR $HOST.
send
EOF

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

Важное замечание. Соответствующие зоны DNS сервера должны быть настроены на динамическое обновление.

Дополнительная информация

Прочитано 8125 раз Последнее изменение Вторник, 29 декабря 2020 16:36
Андрей Иванов

Последнее от Андрей Иванов

Авторизуйтесь, чтобы получить возможность оставлять комментарии