===== BPI/BPI-M1+ установка isc-dhcp-server ===== ==== Как работает DHCP? ==== После загрузки подключенный к сети клиент (на котором настроено использование DHCP) отправляет DHCP-серверу пакет DHCPDISCOVER. Получив пакет запроса DHCPDISCOVER, DHCP-сервер отвечает пакетом DHCPOFFER. Клиент принимает пакет DHCPOFFER и отправляет серверу пакет DHCPREQUEST, подтверждая готовность принять сетевую конфигурацию, предоставленную в пакете. Получив от клиента пакет DHCPREQUEST, сервер отправляет пакет DHCPACK, который разрешает клиенту использование выделенного IP-адреса. ==== Установка ==== Для установки пакета DCHP-сервера, нужно выполнить следующую команду: $ sudo apt-get install isc-dhcp-server После завершения установки отредактируйте файл ///etc/default/isc-dhcp-server// для определения интерфейсов, которые будет использовать DHCPD для обработки DHCP-запросов, при помощи опции **INTERFACES**. Например, если вам нужно, чтобы демон DHCPD прослушивал eth0, задайте следующее значение: INTERFACES="eth0" Если нужна работа DHCPD на интерфейсе wlan0 и eth0.3 INTERFACES="wlan0 eth0.3" Для сетевого интерфейса на котором будет работать DHCP сервер, **должен** быть настроить статический IP-адрес. Основной файл конфигурации DHCP — ///etc/dhcp/dhcpd.conf//, в него нужно внести всю информацию, отправляемую клиентам. В файле конфигурации DHCP есть два типа данных: **параметры** – указывают, как выполнять задание (например, на какое время выделять адрес), выполнять ли его вообще (например, выделять ли адреса неизвестным клиентам) или какие параметры сетевой конфигурации отправлять DHCP-клиенту. **декларации** – определяют топологию сети, описывают клиентов и предоставляемые им адреса, или применяют группу параметров к группе деклараций. Все строки параметров в файле конфигурации dhcp заканчиваются точкой с запятой (;). Некоторые параметры могут иметь не одно значение, например, domain-name-servers, у которого два IP-адреса, разделенные запятой. Строки, начинающиеся с ‘#’, являются комментариями и не обрабатываются сервером dhcp. В начале файла указываются глобальные параметры, которые будут действовать для всех указанных ниже деклараций. Это имя домена domain-name, имена DNS-серверов domain-name-servers, время аренды по умолчанию в секундах default-lease-time (если клиент не запросил его сам), максимальное время аренды в секундах max-lease-time и параметр authoritative, означающий «авторитетность» сервера в сегменте сети. Данный параметр нужен на тот случай, если клиент запросит неправильный IP-адрес — в этом случае сервер ответит ему отказом и предложит получить новый адрес. ddns-update-style none; option domain-name "babana"; default-lease-time 600; max-lease-time 7200; authoritative; log-facility local7; subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.100 192.168.100.200; option routers 192.168.100.1; option broadcast-address 192.168.100.255; } subnet 192.168.101.0 netmask 255.255.255.0 { range 192.168.101.100 192.168.101.200; option routers 192.168.101.1; option broadcast-address 192.168.101.255; } Перед некоторыми параметрами указано слово option, а перед некоторыми — нет. Это слово задает параметры, которые передаются клиенту в сетевой конфигурации. * option routers — IP-адрес маршрутизатора по умолчанию * option subnet-mask — маска подсети * option domain-search — имя домена * option domain-name-servers — имена DNS-серверов * range — диапазон IP-адресов, выделяемый клиентам (можно указывать несколько диапазонов, но обязательно указать хотя бы один) Для выделения конкретным клиентам фиксированного (статического) IP-адреса нужно добавить в файл конфигурации секции следующего вида, где явно указаны MAC-адрес и статически выделяемый IP-адрес: host centos-node { hardware ethernet 00:f0:m4:6y:89:0g; fixed-address 192.168.10.105; } host fedora-node { hardware ethernet 00:4g:8h:13:8h:3a; fixed-address 192.168.10.106; } ==== Запуск ==== Запуск службы DHCP $ sudo /etc/init.d/isc-dhcp-server start ———— SystemD ———— $ sudo systemctl start isc-dhcp-server.service ———— SysVinit ———— $ sudo service isc-dhcp-server start Установка автоматического запуска DHCP при загрузке: $sudo update-rc.d isc-dhcp-server defaults ———— SystemD ———— $ sudo systemctl enable isc-dhcp-server.service ———— SysVinit ———— $ sudo service isc-dhcp-server enable Отключение автоматического запуска DHCP при загрузке: $sudo update-rc.d isc-dhcp-server disable ———— SystemD ———— $ sudo systemctl disable isc-dhcp-server.service ———— SysVinit ———— $ sudo service isc-dhcp-server disable Команда для перезапуска DHCP $ sudo /etc/init.d/isc-dhcp-server restart ———— SystemD ———— $ sudo systemctl restart isc-dhcp-server.service ———— SysVinit ———— $ sudo service isc-dhcp-server restart Создание правила для службы DHCP в брандмауэре (Демон DHCPD прослушивает UDP-порт 67): $ sudo ufw allow 67/udp $ sudo ufw reload $ sudo ufw show ==== Настройка клиентов ==== Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя/номер интерфейса): $ sudo vi /etc/network/interfaces Укажите следующие опции: auto eth0 iface eth0 inet dhcp Сохраните и закройте файл, а затем перезапустите сетевые службы или перезагрузите систему: ———— SystemD ———— $ sudo systemctl restart networking ———— SysVinit ———— $ sudo service networking restart Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера. Если понадобилось посмотреть, какие адреса были выданы, то: cat /var/lib/dhcp/dhcpd.leases Настройка DHCP-сервера завершена. Более подробную информацию о dhcpd и dhcpd.conf с описанием всех возможных опций можно получить в соответствующих man-страницах: $ man dhcpd $ man dhcpd.conf Ссылки:\\ https://itproffi.ru/nastrojka-dhcp-servera-v-linux\\ https://wiki.debian.org/ru/DHCP_Server\\ https://wiki.debian.org/ru/NetworkConfiguration