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

Для начала следует напомнить, что из себя представляет служба DHCP. Предположим, что в процессе подготовки класса уже сделаны маршрутизация и трансляция сетевых адресов. Теперь возникает необходимость настроить рабочие машины класса для работы в локальной сети и доступа в Интернет. Есть два пути:

  1. Вручную прописывать все необходимые настройки (как минимум IP-адрес, маршрутизатор по умолчанию и DNS) на всех клиентских машинах
  2. Использовать службу DHCP

Работает эта служба на нескольких уровнях, и, вообще говоря, ее возможности шире чем просто выдача IP-адреса, адреса маршрутизатора по умолчанию и адресов DNS --- например с помощью DHCP можно организовать загрузку бездискового клиента по сети или автоматическое определение параметров прокси-сервера клиентами.

Установим dhcp-сервер

# apt-get install dhcp-server

Существует несколько вариантов поведения сервера DHCP. Далее рассмотрим два наиболее распространенных.

Динамическое распределение IP-адресов

Клиенту выдается адрес из указанного администратором диапазона. По истечении определенного времени -- срока аренды(leasing), клиент обязан снова запросить настройки у сервера, причем новые настройки могут не совпадать с предыдущими. Сервер считает свободными IP-адреса, для которых истек срок аренды. Алгоритм выбора сервером IP-адреса обычно следующий: по первому запросу выдается последний адрес диапазона, по второму -- предпоследний, и т. д. Клиенту, запрашивающему адрес не в первый раз, выдается, если возможно, тот же адрес, что у него был. У такого алгоритма есть хорошее свойство -- если появляется новый клиент, то ему, по возможности, выдается ранее не использовавшийся адрес.

Итак, рассмотрим настройку динамического распределения IP-адресов с помошью службы DHCP.

Скопируем файл /etc/dhcpd.conf.sample в /etc/dhcpd.conf и отредактируем его. Файл /etc/dhcpd.conf.sample в ALTLinux создается автоматически, если отсутствует правильный конфигурационный файл для DHCP. В результате файл /etc/dhcpd.conf должен выглядеть так:

# See dhcpd.conf(5) for further configuration

ddns-update-style none;

subnet 172.16.0.0 netmask 255.255.255.0 {
        option routers                  172.16.0.1;
        option subnet-mask              255.255.255.0;

        option domain-name              "demo.class.altlinux.ru";
        option domain-name-servers      10.0.2.3;

        range dynamic-bootp 172.16.0.10 172.16.0.90;
        default-lease-time 21600;
        max-lease-time 43200;

}

Кроме того, в dhcpd.conf необходимо перечислить все сети, в которые есть доступ с данного компьютера. В нашем случае достаточно добавить строку

subnet 10.0.0.0 netmask 255.0.0.0 {}

Осталось лишь запустить службу DHCP. Для этого на сервере необходимо выполнить:

# services dhcpd start

На клиенте:

# dhcpcd eth0

Dynamic DNS update

Так как разработкой DHCP и bind занимаются одни и те же люди, между этими этими проектами существует тесная связь. Например, поддерживается автоматическое обновление имени и IP-адреса в DNS-зоне -- это и называется dynamic DNS update. В отдельных случаях подобное может быть удобно, но обычно рекомендуется отключить это функцию.

Распределение IP-адресов по MAC-адресам

Существует также возможность выдать определенный IP-адрес компьютеру с определенным MAC-адресом. Для этого достаточно прописать в dhcpd.conf, например:

host lite {
 fixed-address 172.16.0.98;
 hardware ethernet 08:00:27:b7:69:b9
}

И выполнить на соотвествующем клиенте:

# cd /etc/net/ifaces
# mkdir eth0
# cd eth0
# cat > options
DISABLED=no
BOOTPROTO=dhcp

Заметим, что выдаваемый таким образом IP-адрес должен лежать вне диапазона адресов распределяемых динамически.

Такой вариант удобен, если есть необходимость знать, какой адрес получит конкретный клиент. Подобная схема работоспособна, так как в большинстве случаев MAC-адреса уникальны. Узнать список MAC-адресов компьютеров сети можно либо посмотрев адреса вручную на каждом из клиентов, либо используя файл /var/lib/dhcp/dhcpd/state/dhcpd.leases, в котором записана информация, в том числе MAC-адреса, всех клиентов, которым когда либо выдавались в аренду IP-адреса.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

50

1

1

1

1

ConstantinYershow, Allena, VsevolodKrishchenko