Добрый день, эта статья будет посвящена установке и настройке DHCP на сервере Ubuntu 14.04. В прошлой статье мы говорили о том, как настроить DNS. DHCP очень часто работает в связке с DNS. DHCP раздает адреса, а DNS записывает символьное представление IP-адреса.
И так, приступим. Как всегда я предполагаю, что у Вас установлен сервер Ubuntu 14.04 и он полностью обновлен. Теперь устанавливаем службу DHCP, выполнив команду:
sudo apt-get install isc-dhcp-server
Служб DHCP в ubuntu привиликое множество, я не буду рассказывать про них. Я предпочитаю именно isc-dhcp-server. После установки рекомендую остановить DHCP службу командой:
sudo service isc-dhcp-server stop
Это делается для того, что если у Вас сервер находится в рабочей сети, то чтоб не начал раздавать адреса. Теперь заходим в файл /etc/default/isc-dhcp-server
sudo nano /etc/default/isc-dhcp-server
В этом фале находим строку INTERFACES=”” и между кавычек вписываем название сетевого интерфейса на котором будут раздаваться адреса. Чтоб посмотреть какие названия сетевых интерфейсов у Вас есть, выполните команду:
ifconfig
После того как впишите название сетевого интерфейса, у Вас должно получится что то вроде этого:
# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/isc-dhcp-server by the maintainer scripts
#
# This is a POSIX shell fragment
#
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"
Далее идем в файл /etc/dhcp/dhcpd.conf, в котором нам необходимо прописать настройки.
sudo nano /etc/dhcp/dhcpd.conf
В этом файле нам необходимо указать диапазон адресов, которые будут выдавать нашим серверов. Сделайте по примеру
subnet 192.168.0.0 netmask 255.255.255.0 { //указываем подсеть range 192.168.0.2 192.168.0.254; //диапазон выдачи option domain-name-servers 192.168.0.1; //указываем DNS option domain-name "workgroup"; //Доменное имя option routers 192.168.0.1; //Шлюз по умолчанию option broadcast-address 192.168.0.255; //Широковещательный адрес default-lease-time 604800; //время аренды в секундах (7дней) max-lease-time 604800; //максимальное время аренды в секундах (7дней) }
Всё готово, можем запустить:
sudo service isc-dhcp-server stop
Проверим что адреса выдаются, если всё в порядке, перейдем к связке с DNS. Для связки с DNS нам понадобится ключ. Ключ можно сгенировать следующей командой
dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DHCP_UPDATER
Ключ сгенирован, и для того чтоб его увидеть воспользуемся командой:
cat Kdhcp_updater.*.private|grep Key
Ключ необходимо записать, он нам понадобится в двух конфигурационных файлах. Теперь открываем /etc/dhcp/dhcpd.conf и в любом месте добавляем:
key DHCP_UPDATER { //Описание ключа, его алгоритмы algorithm HMAC-MD5.SIG-ALG.REG.INT; secret "ЗДЕСЬ ЗАПИСАННЫЙ КЛЮЧ"; } zone workgroup. { //зона которую DHCP должен обновлять primary 127.0.0.1; key DHCP_UPDATER; } zone 0.168.192.in-addr.arpa. {//обратная зона которую DHCP должен обновлять primary 127.0.0.1; key DHCP_UPDATER; }
Готово, теперь DHCP будет обновлять DNS. Теперь в файле DNS надо разрешить это обновление указав ключ. Открываем файл /etc/bind/named.conf.local и добавляем в него:
key DHCP_UPDATER { //Описание ключа, его алгоритмы algorithm HMAC-MD5.SIG-ALG.REG.INT; secret "ЗДЕСЬ ЗАПИСАННЫЙ КЛЮЧ"; }
Ищем в этом же фале описание зон workgroup и 0.168.192.in-addr.arpa и в их описание добавляем строку allow-update { key DHCP_UPDATER; }; Должно получится примерно так:
zone "workgroup" { type master; file "/etc/bind/db.example.com"; allow-update { key DHCP_UPDATER; }; }; zone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/db.0.168.192"; allow-update { key DHCP_UPDATER; }; };
Теперь перезапустим службы DNS и DHCP
sudo service isc-dhcp-server restart
sudo service bind9 restart
Всё готво, теперь все компьютеры получившие адреса от DHCP будут попадать в DNS.