Содержание

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, а перед некоторыми — нет. Это слово задает параметры, которые передаются клиенту в сетевой конфигурации.

Для выделения конкретным клиентам фиксированного (статического) 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