Библиотека сайта rus-linux.net
Серверы Linux. Часть IV. Сервер DHCP
Оригинал: Introduction to DHCPАвтор: Paul Cobbaut
Дата публикации: 24 мая 2015 г.
Перевод: A.Панин
Дата перевода: 13 июля 2015 г.
Глава 6. Вводная информация о сервере DHCP
Протокол динамической настройки узла
(Dynamic Host Configuration Protocol
или кратко DHCP
) является стандартным протоколом из семейства протоколов TCP/IP, предназначенным для распределения IP-адресов между клиентскими системами. Протокол DHCP
описан в стандарте RFC 2131
(до выпуска данного стандарта он описывался в качестве дополнения к протоколу BOOTP
в стандартах RFC 1531/1541).
Альтернативой использованию протокола DHCP
является ручной ввод IP-адресов на каждом из клиентских компьютеров.
6.1. Четыре широковещательных передачи данных
Протокол DHCP
использует широковещательные передачи данных уровня 2 сетевой модели OSI. После запуска клиент DHCP отправляет широковещательный запрос обнаружения серверов DHCP
(DHCP discover
) по сети. Все серверы DHCP
(получившие необходимые данные) отправят в ответ предложение DHCP
(DHCP offer
). После этого клиент выберет одно из предложений серверов DHCP и отправит запрос DHCP
(DHCP request
), содержащий информацию о выбранном предложении. В большинстве случаев сервер DHCP отвечает на запрос подтверждением DHCP
(DHCP ack
(knowledge)).
Упомянутые широковещательные передачи данных в случае перехвата с помощью сниффера Wireshark выглядят следующим образом.
После окончания описанной процедуры клиент может использовать полученные данные конфигурации до момента истечения времени их действия
(lease time
).
6.2. Графическое изображение принципа работы протокола DHCP
В данном примере мы будем рассматривать небольшую сеть с двумя серверами DHCP
с именами DHCP-SRV1 и DHCP-SRV2, а также двумя клиентами (SunWS1 и SunWS2). Все компьютеры соединены с помощью хаба или коммутатора (изображенного в центре). От каждого из четырех компьютеров проведен кабель для подключения к хабу (кабели не показаны на иллюстрации).
-
Клиент с именем SunWS1 отправляет
запрос обнаружения серверов DHCP
по сети. Все компьютеры получают данный запрос ввиду использования широковещательной передачи данных. -
Оба сервера DHCP отправляют
предложение DHCP
в ответ. Сервер DHCP-SRV1 являетсявыделенным сервером DHCP
и отправляетпредложение DHCP
быстрее, чем сервер с именем DHCP-SRV2 (который также является файловым сервером). -
Клиент выбирает предложение сервера с именем DHCP-SRV1 и отправляет
запрос DHCP
с информацией о нем по сети. -
Сервер DHCP с именем DHCP-SRV1 отправляет
подтверждение DHCP
в ответ.
Все четыре описанных широковещательных передачи (или пять, если считать оба предложения DHCP) могут быть осуществлены на уровне 2 сетевой модели OSI с указанием MAC-адреса ff:ff:ff:ff:ff:ff
(Ethernet broadcast) и на уровне 3 сетевой модели OSI с указанием IP-адреса 255.255.255.255
(IP broadcast).
Аналогичный пример можно найти в стандарте RFC 2131
.
6.3. Установка сервера DHCP в дистрибутиве Debian/Mint
Ниже показан процесс установки сервера DHCP в дистрибутиве Debian/Mint.
debian5:~# aptitude install dhcp3-server Чтение списков пакетов Готово Построение дерева зависимостей Чтение информации о состоянии Готово Reading extended state information Initializing package states... Done Reading task descriptions... Done НОВЫЕ пакеты, которые будут установлены: dhcp3-server
После установки пакета программного обеспечения вы получите доступ к конфигурационному файлу с множеством примеров.
debian5:~# ls -l /etc/dhcp3/dhcpd.conf -rw-r--r-- 1 root root 3551 2011-04-10 21:23 /etc/dhcp3/dhcpd.conf
6.4. Установка сервера DHCP в дистрибутиве RHEL/CentOS
Установка осуществляется достаточно просто с помощью утилиты yum
.
[root@rhel71 ~]# yum install dhcp Загружены модули: product-id, subscription-manager Разрешение зависимостей --> Проверка сценария ---> Пакет dhcp.x86_64 12:4.2.5-36.el7 помечен для установки --> Проверка зависимостей окончена Зависимости определены ================================================================================ Package Архитектура Версия Репозиторий Размер ================================================================================ Установка: dhcp x86_64 12:4.2.5-36.el7 rhel-7-server-rpms 510 k Итого за операцию ================================================================================ Установить 1 пакет Объем загрузки: 510 k Объем изменений: 1.4 M Is this ok [y/d/N]: y Downloading packages: dhcp-4.2.5-36.el7.x86_64.rpm | 510 kB 00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Установка : 12:dhcp-4.2.5-36.el7.x86_64 1/1 Проверка : 12:dhcp-4.2.5-36.el7.x86_64 1/1 Установлено: dhcp.x86_64 12:4.2.5-36.el7 Выполнено! [root@rhel71 ~]#
После установки пакета программного обеспечения мы получим доступ к файлу конфигурации /etc/dhcp/dhcpd.conf
, в котором находится ссылка на пример файла конфигурации с именем dhcpd.conf.sample
.
[root@rhel71 ~]# cat /etc/dhcp/dhcpd.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page # [root@rhel71 ~]#
Таким образом, мы можем просто скопировать пример файла конфигурации и модифицировать его копию в соответствии с нашими реальными потребностями. Именем копии примера файла конфигурации будет /etc/dhcp/dhcpd.conf
.
[root@rhel71 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf [root@rhel71 ~]# vi /etc/dhcp/dhcpd.conf [root@rhel71 ~]# cat /etc/dhcp/dhcpd.conf option domain-name "linux-training.be"; option domain-name-servers 10.42.42.42; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 10.42.0.0 netmask 255.255.0.0 { range 10.42.200.11 10.42.200.120; option routers 10.42.200.1; } [root@rhel71 ~]#
Параметр 'routers' является действительным лишь для одной подсети, в то время, как параметр 'domain-name' является глобальным (действительным для всех подсетей).
Время запустить службу сервера. Помните о том, что для этого следует использовать команду systemctl start dhcpd
в дистрибутивах RHEL7/CentOS7 или команду service dhcpd start
в предыдущих версиях дистрибутивов RHEL/CentOS.
[root@rhel71 ~]# systemctl start dhcpd [root@rhel71 ~]#
Предыдущий раздел: | Оглавление | Следующий раздел: |
5.4. Пример: использование механизма изменения ответов сервера DNS в зависимости от источников запросов | 6.5. Резервирование конфигураций клиентов |