Приведу пример установки isc-dhcp-server в Ubuntu Server.
Откроем первый файл конфигурации:
Укажем в нем имя инетерфейса с которого будут раздаваться IP-адреса (например eth0):
Предположим что этому интерфейсу прописан статический адрес в /etc/network/interfaces:
Сделаем резервную копию второго файла конфигурации:
И внесем в него например следующие параметры:
Чтобы зарезервировать IP-адрес конкретному устройству добавим после «max-lease-time 7200;» (до закрытия кавычки «>»):
Несколько хостов удобнее указывать по одной строке:
Проверить запущен ли dhcp сервер можно командами:
Перезапустим сервер чтобы изменения в файлах конфигурации вступили в силу:
Посмотреть выданные IP можно командой:
Логи пишутся в syslog (log-facility local7), чтобы отделить их, откроем файл конфигурации syslog в текстовом редакторе:
И в конце добавим:
После этого они буду писаться и в /var/log/syslog и в /var/log/dhcp-server.log
Проверим запущен ли DHCP сервер:
Пример ловли пакетов для анализа проблем через tcpdump:
В реальном времени можно смотреть логи так:
The Dynamic Host Configuration Protocol (DHCP) is a network service that enables host computers to be automatically assigned settings from a server as opposed to manually configuring each network host. Computers configured to be DHCP clients have no control over the settings they receive from the DHCP server, and the configuration is transparent to the computer’s user.
note: this package was called dhcp3-server in versions prior to precise 12.04 LTS.
At a terminal prompt, enter the following command to install dhcpd:
You will probably need to change the default configuration by editing /etc/dhcp3/dhcpd.conf to suit your needs and particular configuration.
You also need to edit /etc/default/isc-dhcp-server to specify the interfaces dhcpd should listen to. By default it listens to eth0.
Also, you have to assign a static ip to the interface that you will use for dhcp. If you will use eth0 for prov >
The error message the installation ends with might be a little confusing, but the following steps will help you configure the service:
Most commonly, what you want to do is assign an IP address randomly. This can be done with settings as follows:
This will result in the DHCP server giving a client an IP address from the range 192.168.1.10-192.168.1.100 or 192.168.1.150-192.168.1.200. It will lease an IP address for 600 seconds if the client doesn’t ask for a specific time frame. Otherwise the maximum (allowed) lease will be 7200 seconds. The server will also «advise» the client that it should use 255.255.255.0 as its subnet mask, 192.168.1.255 as its broadcast address, 192.168.1.254 as the router/gateway and 192.168.1.1 and 192.168.1.2 as its DNS servers.
Настройка DHCP-сервера на Ubuntu
В этой статье мы рассмотрим установку и начальную настройку DHCP сервера на Ubuntu. В моем случае установка будет производиться на дистрибутив Ubuntu 14.04.3 LTS, однако, подобным образом DHCP можно установить и настроить на любом дистрибутиве. В моем случае сервер существует достаточно давно и в качестве DNS/DHCP на нем был установлен dnsmasq, который не был настроен и никогда не работал. Поскольку на данный момент dnsmasq входит в число неподдерживаемых дистрибутивом пакетов, было принято решение избавиться от него и настроить все несколько иначе. Если у Вас на сервере нет установленного DHCP-сервера, первый шаг можно пропустить.
Удаление dnsmasq
Тут ничего сложного, просто пишем в консоль:
И дожидаемся его полного удаления. После этого в системе, вероятно, остались ненужные более пакеты, от которых зависел dnsmasq, следует удалить и их тоже:
После этого можно приступать к настройке DHCP сервера с нуля.
Установка DHCP сервера isc-dhcp-server
Как обычно, для начала следует обновить установленные в системе пакеты:
sudo apt-get update && sudo apt get upgrade -y
Теперь установим непосредственно сам DHCP сервер:
sudo apt-get install isc-dhcp-server

Сервер должен сразу запуститься, но нам предстоит настроить его под свои нужды.
Открываем и редактируем файл /etc/default/isc-dgcp-server. В нем нужно указать сетевой интерфейс, который будет использоваться для раздачи IP-адресов. В моем случае один и тот же интерфейс смотрит как в локальную сеть, так на шлюз (который в той же локальной сети), поэтому я указываю его.
В большинстве случаев я предпочитаю сохранять оригинальные конфигурационные файлы, но в данном случае это лишнее, так как мы изменим в нем всего один параметр.
Параметру INTERFACES присваиваем значение ethXN, где ethXN — адаптер для локальной сети. Получиться должно примерно следующее:

Узнать, какой интерфейс в Вашем случае используется для локальной сети можно выполнив:

Теперь займемся редактированием основных настроек DHCP
Откроем для редактирования /etc/dhcp/dhcpd.conf:
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.dist && sudo nano -w /etc/dhcp/dhcpd.conf
Обратите внимание, что сначала мы делаем копию оригинального файла настроек на случай, если что-то пойдет не так. Так как это первый и на данный момент единственный DHCP-сервер в сети, то раскомментируем строку authoritative. Так же в этом файле сразу содержатся строки:
Их можно либо удалить, либо построить вокруг них секцию для своей подсети. Если не уверены, как это сделать, то проще будет просто стереть их или закомментировать знаком #, а потом добавить на их место такое содержимое:
subnet 192.168.0.0 netmask 255.255.255.0 <
range 192.168.0.200 192.168.0.250;
option domain-name «ordaupfin.local»;
option domain-name-servers 192.168.0.231, 192.168.0.1;
option routers 192.168.0.231;
option broadcast-address 192.168.0.255;
default-lease-time 604800;
max-lease-time 604800; >
Рассмотрим эту секцию подробнее:
- Задаем подсеть 192.168.0.0 с маской 255.255.255.0, Вы, естественно, адаптируете все это под свои нужды. Обратите внимание, что все нижеследующие опции включены в секцию этой подсети (заключены в фигурные скобки);
- Range задает диапазон выдаваемых адресов. В моей сети большинство клиентов имеют статические адреса, поэтому я выделяю небольшой диапазон;
- option domain-name добавляет имя домена к имени клиента, например подключенному клиенту HOME-PC будет присвоено имя HOME-PC.ordaupfin.local;
- option domain-name-servers задает адреса DNS серверов, у меня в сети их 2, можно указать внешний DNS, например Google Public DNS A — 8.8.8.8;
- option routers задает шлюз по-умолчанию;
- option broadcast-address задает широковещательный адрес подсети;
- default-lease-time и max-lease-time задают срок аренды по умолчанию и максимальный срок аренды IP-адреса в секундах соответственно. У меня это 7 дней.
Вот как это выглядит в nano:

Теперь перезапускаем DHCP сервер командой:
sudo service isc-dhcp-server restart
Если вы увидели в терминале сообщение:
isc-dhcp-server stop/waiting
isc-dhcp-server start/running, process 30456
Значит, все хорошо и компьютеры в сети могут получать адреса по DHCP. Если демон после правки конфигов не запускается, значит внимательно смотрим конфигурационные файлы на предмет ошибок/опечаток. В этом может помочь syslog, если посмотреть его сразу после неудачной попытки запуска:
Листать лог вверх-вниз можно сочетанием клавиш Shift+PgUp/Shift+PgDwn, выход из просмотра Ctrl+C.
В моем случае все прошло удачно. При включении WiFi и подключении к сети успешно был получен IP адрес и все остальные настройки:

Спасибо за внимание!
Если статья показалась полезной, поделитесь ей в соц сетях, кнопки которых расположены ниже
Предложения и обсуждения данной статьи ведется в комментариях


