Настройка DHCP-сервера
Для начала следует напомнить, что из себя представляет служба DHCP. Предположим, что в процессе подготовки класса уже настроены маршрутизация и трансляция сетевых адресов. Теперь возникает необходимость настроить рабочие машины класса для работы в локальной сети и доступа в Интернет. Есть два пути:
- вручную прописывать все необходимые настройки (как минимум это IP-адрес, маршрутизатор по умолчанию и DNS) на всех клиентских машинах;
- использовать службу DHCP.
Работает служба DHCP на нескольких уровнях стека TCP/IP, и, вообще говоря, ее возможности шире чем просто выдача 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 |
|
|