Настройка связки DNS и DHCP |
Обновлено: 15.06.2025 - 22:20
Предположим, что сами сервера уже установлены и даже немного настроены. Для начала необходимо с теми зонами что необходимо динамически обновлять.
Для примера возьмем подсеть 192.168.7.0/24.
Домен наш назовем.... Ну... training, к примеру.
В конфиге dhcpd.conf прописываем:
option domain-name "training";
option domain-name-servers 192.168.7.1;
# Это адрес нашего dns-сервера
authoritative;
ddns-update-style interim;
zone training. {
primary 127.0.0.1;
key rndc-key;
}
zone 7.168.192.IN-ADDR.ARPA. {
primary 127.0.0.1;
key rndc-key;
}
Генерим ключ для обновления зоны командой
#dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER
И добавляем в тот же конфиг полученный ключ
key rndc-key {
algorithm hmac-md5;
secret "qGTAAXo/UfC+2HFGzese0C==";
};
Теперь беремся за настройку Bind.
Начинаем править named.conf.local
для начала забиваем тот же самый ключ.
key rndc-key {
algorithm hmac-md5;
secret "qGTAAXo/UfC+2HFGzese0C==";
};
Добавляем описание зон
zone "7.168.192.in-addr.arpa" IN {
type master;
check-names ignore;
file "/etc/bind/db.7.168.192";
allow-update { key rndc-key; };
};
zone "training" {
type master;
check-names ignore;
file "/etc/bind/db.training";
allow-update { key rndc-key; };
notify no;
};
Опция check-names ignore взялась совсем не от фонаря. Если в имени машины встретится запрещенный символ, например "_", а такое бывает часто, bind будет долго ругаться.
Теперь надо создать файлы зон db.7.168.192 и db.training
Создаем db.7.168.192. В нем пишем что-то типа
$ORIGIN .
$TTL 604800 ; 1 week
7.168.192.in-addr.arpa IN SOA training. root.training. (
894 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
NS localhost.
$ORIGIN 7.168.192.in-addr.arpa.
1 PTR server.training.
Теперь создаем db.training
$ORIGIN .
$TTL 604800 ; 1 week
training IN SOA training. root.training. (
1295 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
NS server.training.
$ORIGIN training.
server A 192.168.7.1
Теперь осталось перестартовать сервисы и, по идее, все должно работать.
Если что-то пошло не так - надо смотреть логи.
Небольшое примечание
При установке на Ubuntu Server возникают проблемы с невозможностью обновления зоны.
В syslog идут записи о недостатке прав для создания файла журнала.
named[17774]: /etc/bind/db.training.jnl: create: permission denied
Это можно решить двумя путями:
1. (Мне не нравится) Файлы наших зон хранить где-то за пределами /etc/bind
2. В файле /etc/apparmor.d/usr.sbin.named поменять строку "/etc/bind/** r," на "/etc/bind/** rw," и перезапустить apparmor
При получении внешнего адреса по DHCP периодически будет отпадать обновление зоны.
Это связано с тем, что в файл /etc/resolv.conf прописываются dns-сервера только от провайдера.
Что бы там постоянно был и наш собственный dns-сервер, в файле
/etc/dhcp3/dhclient.conf
прописываем строку
prepend domain-name-servers 127.0.0.1;
Если сервер подключен по DSL, становится еще интереснее.
Файл /etc/resolv.conf обновляется демоном pppd и настройки в /etc/dhcp3/dhclient.conf никакого эфекта не дадут.
Что бы исправить ситуацию, вообще запретим изменение /etc/resolv.conf
Для этого в файле конфигурации соединения с провайдером (например /etc/ppp/peers/dsl-provider)
закомментируем параметр usepeerdns
Тогда все будет работать постоянно и бесперебойно.
Дополнение к статье
Хосты, заданные в dhcpd.conf статически (с явным соответствием ip-MAC) могут не добавляться в bind.
В таком случае надо в dhcpd.conf добавить опцию:
update-static-leases on;
Дополнение сделано Костинским Юрием. kuroneko@koneko.org.ua
------------------------
Восстановление сайтов из Вебархива
Размещение по доскам объявлений России
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Категория: Компьютерные советы
Комментарии |