Установка DHCP сервера

DHCP сервер для UNIX

Есть несколько DHCP серверов для U*X-подобных операционных систем, как коммерческих, так и бесплатных. Один из наиболее популярных DHCP серверов ‐ Paul Vixie/ISC DHCPd. На данный момент его последняя версия 2.0 (предлагаемая большинству пользователей), а версия 3.0 в стадии бэта-тестирования. Вы можете их получить с

ftp://ftp.isc.org/isc/dhcp/

Некоторые дистрибутивы предоставляют бинарные пакеты dhcpd, так что если вы устанавливаете его таким способом, вы можете пропустить следующую секцию.

После того как вы скачали пакет, распакуйте его. Затем войдите в каталог дистрибутива и наберите: ./configure

Для настройки потребуется немного времени. После этого наберите: make и make install.

Настройка DHCP сервера

После установки наберите ifconfig -a. Вы должны увидеть нечто подобное:

eth0      Link encap:10Mbps Ethernet  HWaddr 00:C0:4F:D3:C4:62
          inet addr:183.217.19.43  Bcast:183.217.19.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2875542 errors:0 dropped:0 overruns:0
          TX packets:218647 errors:0 dropped:0 overruns:0
          Interrupt:11 Base address:0x210
	  

Если вы не увидите MULTICAST, вам следует переконфигурировать ядро для добавления multicast поддержки. На большинстве систем вам это не потребуется.

Следующий шаг добавить маршрут для 255.255.255.255. Цитата из DHCPd README:

"Для корректной работы dhcpd с picky DHCP клиентами (например, Windows 95), нужно иметь возможность посылать пакеты с IP адресом назначения 255.255.255.255. К несчастью, Linux настаивает на замене 255.255.255.255 на локальный широковещательный адрес подсети (здесь 192.5.5.223). Это приводит к нарушению DHCP протокола, и в то время как многие DHCP клиенты не замечают этой проблемы, некоторые (такие как все Microsoft DHCP клиенты) замечают. Клиенты с этой проблемой как будто не видят DHCPOFFER сообщений с сервера."

Наберите: route add -host 255.255.255.255 dev eth0

Если вы получаете сообщение "255.255.255.255: Unknown host", вам следует попробовать добавить следующий элемент в ваш файл /etc/hosts :

255.255.255.255 all-ones

Затем, попробуйте:

route add -host all-ones dev eth0

или

route add 255.255.255.0 dev eth0

eth0 ‐ нужно заменить именем используемого вами сетевого интерфейса.

Опции DHCPd

Теперь вам нужно настроить DHCPd. Для этого вам необходимо создать и отредактировать файл /etc/dhcpd.conf. Для настройки dhcpd есть графическая утилита для KDE ( http://www.kde.org/ ) называемая kcmdhcpd, которая очень подобна DHCP конфигуратору в Windows NT. После выхода KDE 2.0 она должны идти в стандартной поставке, или вы можете загрузить ее прямо с:

ftp://ftp.us.kde.org/pub/kde/unstable/apps/network/

Если вы хотите настраивать вручную - читайте нижеприведенные инструкции.

Скорее всего, вы захотите назначать IP адреса случайным образом. Это можно сделать такими настройками:

# Простой /etc/dhcpd.conf
# (добавьте тут свои комментарии) 
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.org";

subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.10 192.168.1.100;
   range 192.168.1.150 192.168.1.200;
}

DHCP сервер будет выдавать клиентам IP адреса в диапазоне 192.168.1.10-192.168.1.100 или 192.168.1.150-192.168.1.200. Если клиент не запрашивает указанный временной диапазон, выделяемый адрес арендуется на 600 секунд. Иначе максимально-допустимое время аренды будет 7200 секунд. Также сервер "советует" клиенту использовать маску подсети 255.255.255.0, широковещательный адрес 192.168.1.255, адрес шлюза 192.168.1.254 и DNS сервера 192.168.1.1 и 192.168.1.2.

Если вы хотите указать WINS сервер для ваших Windows клиентов, вам следует включить опцию netbios-name-servers, например

option netbios-name-servers 192.168.1.1;

Также вы можете назначать клиентам определенные IP адреса в зависимости от их ethernet адреса, например

host haagen {
   hardware ethernet 08:00:2b:4c:59:23;
   fixed-address 192.168.1.222;
}

Клиенту с ethernet адресом 08:00:2b:4c:59:23 будет назначен IP адрес 192.168.1.222.

Вы можете пользоваться смешанной схемой назначения адресов, некоторым клиентам давать "статические" IP адреса (например, серверам), а другим распределять динамические IP (например, мобильным пользователям с ноутбуками). Также есть большое количество прочих опций, например адрес nis сервера, адрес сервера времени и т.д., если вам требуется какая-либо из этих опций ‐ прочтите dhcpd.conf man страницу.

Запуск сервера

Пред запуском сервера нужно сделать одну вещь. В большинстве случаев установка DHCP не создает файл dhcpd.leases. Этот файл используется DHCPd для размещения информации о текущих арендованных адресах. Его формат ‐ обычный текст, так что вы сможете его просматривать в процессе работы DHCPd. Для его создания dhcpd.leases наберите:

touch /var/state/dhcp/dhcpd.leases

Будет создан пустой файл (размер файла = 0). Некоторые старые версии dhcpd 2.0 помещают файл в /etc/dhcpd.leases. Вам не требуется делать никаких изменений в арендном файле, он будет контролироваться dhcpd. Если вы получите сообщение о том, что файл уже существует, просто проигнорируете его и переходите к следующему шагу.

Теперь вы можете запустить DHCP сервер. Просто наберите (или включите в загрузочные скрипты)

/usr/sbin/dhcpd

Это приведет к запуску dhcpd на устройстве eth0. Если вы хотите запускать его на другом устройстве, просто укажите его в командной строке, например

/usr/sbin/dhcpd eth1

Для проверки нормальной работы вам следует сначала включить режим отладки и запустить сервер не в фоновом режиме. Вы можете это сделать так

/usr/sbin/dhcpd -d -f

Затем загрузите один из ваших клиентов и проверьте консоль вашего сервера. Вы увидите некоторое количество отладочных сообщений. Если все работает нормально ‐ вы закончили. Выйдите из dhcpd и запустите его без ключа -d -f и аргументов. Если вы желаете загружать dhcpd в процессе загрузки, включите dhcpd например в

/etc/rc.d/rc.local

Другие интересные документы

В Апрельском выпуске Linux Magazine была очень хорошая статься под названием Network Nirvana: Как сделать настройку сети простой как DHCP, в которой обсуждается установка DHCP.