Isc dhcp server проверка работы. Установка и настройка DHCP сервера в Ubuntu

01.04.2019

Зачастую в больших сетях для упрощения работы с добавлением новых компьютеров и других устройств в сеть используют протокол динамического выделения адресов — DHCP. Это значительно упрощает настройку оборудования и экономит огромное количество времени. Используя DHCP нам не нужно производить настройку сети на каждом отдельном устройстве, нужно лишь подключить устройство к сети и DHCP сервер сделает все настройки автоматически. Каждый домашний WiFi роутер имеет в себе встроенный DHCP сервер, поэтому вам не нужно каждый раз при подключении к разным роутерам прописывать все настройки вручную, роутер делает это за вас.

DHCP сервер может автоматически присвоить клиенту:

  • Адрес ip;
  • Маску подсети;
  • IP адрес шлюза;
  • IP адрес DNS сервера;

В отдельных случаях:

  • Имя хоста;
  • Имя домена;
  • Адрес серверов времени(NTP);

Преимущество использования DHCP сервера заключается в том, что при огромных размерах сети в несколько тысяч устройств, её будет очень удобно и почти безболезненно настраивать. Представьте себе, если в сети нужно поменять ip адреса на персональных компьютерах сотрудников, принтерам выдать иные адреса, управляемому сетевому оборудованию еще назначить и свои. При размерах сети в несколько тысяч устройств, ручная настройка отняла бы у вас огромное количество времени. Другое дело когда в сети есть настроенный DHCP сервер, который выполнить настройку за вас и на это потребуется всего несколько минут. В дополнение к этому, сервер поддерживает возможность резервирования адресов, таким образом если клиенту(компьютеру,принтеру,коммутатору) нужно назначить фиксированный адрес, мы можем это указать в настройках DHCP сервера и при следующем запросе, клиент получит нужный ему адрес.

Установка и настройка DHCP сервера

В Ubuntu установка и настройка DHCP сервера выполняется всего в несколько шагов, быстро и продуктивно. Для того, чтобы начать использовать сервер нужно установить программное обеспечение на компьютер, делается это при помощи команды:

sudo apt-get install isc-dhcp-server

Минимальная настройка DHCP сервера включает в себя редактирование только 2х файлов.

Первый файл который мы с вами отредактируем, это nano /etc/default/isc-dhcp-server и добавляем/редактируем всего одну строку:

INTERFACES="eth3"

где «eth3» интерфейс к которому подключаются клиенты с внутренней сети и который будет слушать DHCP;

Теперь собственно и сама настройка DHCP сервера. Открываем файл nano /etc/dhcp/dhcpd.conf и удаляем все содержимое.
Сейчас мы с вами настроим сервер только для раздачи адресов всем устройствам, которые будут просить запрашивать у сервера адрес. Добавляем в файл строки:

Default-lease-time 7200; max-lease-time 43200; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; option routers 192.168.0.1; option domain-name-servers 192.168.0.1; }

Разберем по-порядку строки которые мы внесли в этот файл:

  • default-lease-time — время аренды(в секундах) адреса у сервера, если клиент не запросил другое;
  • max-lease-time максимальное время аренды адреса;
  • subnet — описывает сеть ip и её маску;
  • range — диапазон адресов с которых по запросу клиента будут предоставляться адреса;
  • option routers — адрес роутера. Это должен быть адрес интерфейса через который пользователи попадают в интернет.
  • option domain-name-servers — адрес DNS сервера. Указывает на то, что сервер расположен на этом же компьютере и слушает интерфейс с адресом 192.168.0.1

Роутером у нас должен выступать интерфейс который мы описали в файле INTERFACES="eth3" и там должен быть назначен адрес который мы описали в настройках DHCP сервера. Как настроить сеть в Ubuntu я описывал в статье — . Если у вас не установлен DNS сервер, можете использовать сервер от вашего ISP провайдера или публичные от google или yandex .

Для управления DHCP сервером используются команды:

  • /etc/ init . d / isc - dhcp - server start — запуск сервера;
  • /etc/ init . d / isc - dhcp - server stop — остановка сервера;
  • /etc/ init . d / isc - dhcp - server restart — перезапуск сервера;

Можно использовать команду service isc-dhcp-server {start|stop|restart} .

Если у вас возникнут вопросы по настройке или установке оставляйте ваши комментарии. В следующей статье я опишу более тонкую настройку DHCP сервера.

Протокол динамического выделения адресов (DHCP) - это сетевой сервис, который позволяет компьютерам в сети автоматически получать настройки с сервера вместо того, чтобы настраивать каждый сетевой хост вручную. Компьютеры, настроенные быть клиентами DHCP , не управляют тем, какие настройки они получат от DHCP сервера, и эта настройка совершенно незаметна для пользователя компьютера.

В общем случае настройки, передаваемые DHCP сервером DHCP клиентам включают:

    IP адрес и сетевую маску

    IP адрес шлюза по умолчанию

    IP адрес DNS серверов

Однако DHCP сервер может также предоставить такие параметры настройки, как:

    Имя хоста

    Имя домена

    Адрес сервера времени

    Адрес сервера печати

Преимущество использования DHCP заключается в изменчивости сети, например, изменение адреса DNS сервера потребует изменений только на DHCP сервере, а все сетевые хосты будут перенастроены в момент следующего запроса их DHCP клиента к DHCP серверу. Дополнительное преимущество заключается в простом подключении новых компьютеров к сети, поскольку не требуется проверять доступность IP адресов. Конфликты по выделенным IP адресам также минимальны.

DHCP сервер может предоставлять настройки, используя следующие методы:

Выделение вручную (по MAC адресу)
Этот метод подразумевает использование DHCP для определения уникального аппаратного адреса каждой сетевой карты, подключенной к сети, и затем продолжительного предоставления неизменной конфигурации каждый раз, когда DHCP клиент делает запрос на DHCP сервер, используя это сетевое устройство. Это гарантирует, что определенный адрес будет автоматически присваиваться этой сетевой карте на основе ее MAC адреса.

Динамическое выделение (пул адресов)
При этом методе, DHCP сервер будет выделять IP адрес из пула адресов (иногда называемым диапазоном или областью) на период времени (или в аренду), который настраивается на сервере, или пока клиент не проинформирует сервер, что больше вообще не нуждается в адресе. Таким образом, клиенты получают свои настройки динамически по принципу «первый пришел - первый обслужился». Когда DHCP клиент отсутствует в сети определенное время, настройка считается просроченной и возвращается в пул адресов для использования другими DHCP клиентами. Это означает, что адрес арендуется или выдается на определенный период времени. По истечении этого периода клиент должен повторно договариваться об использовании адреса с сервером.

Автоматическое выделение
Использую этот метод, DHCP автоматически присваивает постоянный IP адрес устройству, выбранный из пула доступных адресов. Обычно DHCP используется для выдачи временного адреса, но DHCP сервер может использовать бесконечное время аренды.

Два последних метода можно рассматривать, как автоматические, поскольку DHCP сервер выдает адреса без дополнительного вмешательства. Единственная разница заключается в том, насколько арендуется адрес, другими словами, когда истечет время использования адреса клиентом. Ubuntu поставляется вместе с DHCP сервером и клиентом. Сервером является dhcpd (сервис протокола динамического выделения адресов). Клиент, поставляемый с Ubuntu, - это dhclient и он может быть установлен на все компьютеры, требующие автоматических настроек. Обе программы просты в установке и настройке и автоматически стартуют при загрузке системы.

Установка

В теринале введите следующую команду для установки dhcpd:

Sudo apt-get install isc-dhcp-server

Возможно вам потребуется изменить настройку по умолчанию редактированием /etc/dhcp/dhcpd.conf для удовлетворения вашим потребностям и специфическим настройкам.

Вы также можете исправить /etc/default/isc-dhcp-server для определения интерфейсов, которые должен слушать dhcpd.

Обратите внимание, что сообщения dhcpd будут посылаться в syslog. Смотрите его для диагностики.

Настройка

Сообщение об ошибке в конце установки может немного смущать, но следующие шаги помогут вам настроить сервис:

В большинстве случаев, все что вам нужно сделать, это выделять случайный IP адрес. Это можно сделать следующими настройками:

# minimal sample /etc/dhcp/dhcpd.conf default-lease-time 600; max-lease-time 7200; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.150 192.168.1.200; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "mydomain.example"; }

В результате DHCP сервер будет выдавать клиентам IP адреса из диапазона 192.168.1.150-192.168.1.200. адреса будут предоставляться на 600 секунд, если клиенты не запросят специфический промежуток времени. При этом максимально разрешенное время аренды будет 7200 секунд. Сервер будет также «рекомендовать» клиентам использовать адрес 192.168.1.254 в качестве шлюза и 192.168.1.1 и 192.168.1.2 как DNS сервера.

После изменения настройки вам потребуется перзапустить dhcpd:

Sudo /etc/init.d/isc-dhcp-server restart

Следующий пункт настройки сервера — настройка DHCP, настраиваем автоматическую раздачу IP адресов сервером.

После чего проверяем на клиенте, успешную настройку DHCP сервера Ubuntu:

Ubuntu Server: Автоматическое получение зарезервированного IP адреса

Просмотр списка клиентов с назначенными адресами

После получения клиентами IP адресов от нашего созданного DHCP сервера, просмотреть этот список можно командой:

nano /var/lib/dhcp/dhcpd.leases

Ubuntu Server: Список арендованных IP адресов

Там же можно увидеть и соответствие MAC адресов с именами компьютеров вашей локальной сети.

Кстати, просматривать этот список может быть удобней в .

Большинство «не работает» вызвано невнимательностью! Внимательно проверяйте команды и не допускайте в файлах конфигурации лишних символов.

От автора:

Если проблема решена, один из способов сказать «Спасибо» автору — .

Если же проблему разрешить не удалось и появились дополнительные вопросы, задать их можно на нашем , в специальном разделе.

Здравствуйте, господа.
Занимаюсь самообразованием по администрированию Linux и недавно заинтересовался установкой и настройкой ddns-сервера (Dynamic DNS) под данной платформой, используя связку Bind + dhcpd . Чтение форумов, man и документации с сайтов дали вполне положительный результат и мне хотелось бы поделиться опытом с людьми. Надеюсь статья будет полезной.
Изначально мы имеем чистую ОС GNU/Linux Debian 6.0.1 , без графического окружения. После установки было произведено обновление и установлен минимальный набор программного обеспечения, такого как mc и sudo . Так же я заранее привел имя хоста к виду hostname.domainname . И так как я использую виртуальную машину VirtualBox и работаю не в «боевых» условиях, все действия производятся из-под root аккаунта. Всё необходимое программное обеспечение устанавливается из репозиториев с помощью пакетного менеджера apt-get .
Суммарная информация:
ОС - GNU/Linux Debian 6.0.1;
Имя сервера - ddnsagc01.agency.com;
Параметры сети - static 192.168.1.2/24;
Установка isc-dhcp-server
Итак, начнем мы с установки сервера dhcp.
# apt-get install dhcp3-server
После установки, останавливаем демон сервера командой:
# /etc/init.d/isc-dhcp-server stop
И идем править основной конфигурационный файл, который находится по адресу /etc/dhcp/dhcpd.conf . Для редактирования я буду использовать идущий в составе дистрибутива редактор nano :
# nano /etc/dhcp/dhcpd.conf
# При начальной настройке я отключаю опцию динамического обновления и подключу её позже.
ddns-update-style none;
# Базовая конфигурация для моего домена agency.com.
subnet 192.168.1.0 netmask 255.255.255.0 {
default-lease-time 21600; # Время на которое выдается адрес, сек.
max-lease-time 28800; # Принудительно забрать адрес через, сек.
option domain-name «agency.com»; # Имя домена.
option domain-name-servers 192.168.1.2; # Адрес dns сервера.
option subnet-mask 255.255.255.0; # Маска подсети.
option routers 192.168.1.1; # Шлюз.
range 192.168.1.1 192.168.1.100; # Диапазон выдаваемых адресов.
}
# Фиксированные адреса выдаваемые для машин по MAC-адресу.
Host adagc01 { # Контроллер домена.
hardware ethernet 08:00:27:19:c8:48;
fixed-address 192.168.1.3;
}
Host ddnsagc01 { # ddns сервер.
hardware ethernet 08:00:27:05:99:1a;
fixed-address 192.168.1.2;
}
Host squid01 { # Шлюз.
hardware ethernet 08:00:27:4f:78:1b;
fixed-address 192.168.1.1;
}
Следующий конфигурационный файл который нам предстоит поправить находится в директории /etc/default/ и называется isc-dhcp-server . Там нам нужно изменить всего одну строчку, указывающую DHCP серверу на каком интерфейсе ему работать:
INTERFACES = «eth0» # Сюда подставляем имя своего интерфейса.
После внесения всех изменений стартуем демон командой:
# /etc/init.d/isc-dhcp-server start
Проверяем работу, пытаясь получить адрес машиной из нашей сети и если всё в порядке сервер выдаст адрес из указанного диапазона и остальные указанные нами настройки.
Установка DNS-сервера Bind
Вместе с Bind полезно будет поставить еще и утилиты для работы с сетью (такие как nslookup и dig, входящие в пакет dnsutils):
# apt-get install bind9 bind9utils dnsutils
После установки останавливаем сервер:
# /etc/init.d/bind9 stop
Конфиги Bind хранит в /etc/bind . Там же лежат файлы корневых зон и зон прописанных по умолчанию - db.0, db.127, db.root и т.д. rndc.key - файл ключ сгенерированный при установке, он нам понадобится для обновления наших файлов-зон с помощью dhcp-сервера. Новый ключ генерируется с помощью утилиты rndc-confgen . Разработчики предлагают вам не вносить изменения в основной конфигурационный файл сервера named.conf, а подключать к нему свои конфигурационные файлы с помощью директивы include . Так, если открыть named.conf после установки там будет всего лишь пояснение, что это за файл и три строчки определяющих подключаемые конфиги:
# less /etc/bind/named.conf | grep include
include «/etc/bind/named.conf.options»;
include «/etc/bind/named.conf.local»;
include «/etc/bind/named.default-zones»;
Сперва я внес информацию из rndc.key в основной конфигурационный файл, добавив его опять же с помощью include:
# nano /etc/bind/named.conf
include «/etc/bind/rndc.key»;
Теперь нам необходимо прописать собственные прямую и обратные зоны. Разработчики предлагают использовать для этого файл named.conf.local , что мы и сделаем:
# nano /etc/bind/named.conf.local
zone «agency.com» { # Название прямой зоны.
type master;
file «db-agency.com»; # Имя файла зоны.

};

Zone «1.168.192.in-addr.arpa» { # Название обратной зоны.
type master;
file «db-1.168.192»; # Имя файла зоны.
allow-update { key rndc-key; }; # Разрешаем обновление зоны с ключом.
};
Далее нам необходимо создать указанные файлы. По умолчанию Bind предполагает их хранение в /var/cache/bind :
# touch /var/cache/bind/db-agency.com
# touch /var/cache/bind/db-1.168.192
Нам необходимо прописать некоторые параметры в только что созданные зоны.
Файл прямой зоны:

# nano /var/cache/bind/db-agency.com
$TTL 10800
agency.com. IN SOA ddnsagc01.agency.com. admin.agency.com. (
11 ; Порядковый номер.
10800 ; Обновление.
3600 ; Повторная попытка.
604800 ; Устаревание.
3600) ; Отрицательное TTL в 1 час.
;
; Укажем серверы имен.
;
agency.com. IN NS ddnsagc01.agency.com.
;
; Так же пропишем А запись для указанного сервера имен.
ddnsagc01 A 192.168.1.2
Файл обратной зоны:

$TTL 10800
1.168.192.in-addr.arpa. IN SOA ddnsagc01.agency.com. admin.agency.com. (
11 ; Порядковый номер
10800 ; Обновление
3600 ; Повторная попытка
604800 ; Устаревание
3600) ; Отрицательное TTL в 1 час
;
; Укажем серверы имен.
;
1.168.192.in-addr.arpa. IN NS ddnsagc01.agency.com.
;
; Так же пропишем PTR запись для указанного сервера имен.
2.1.168.192.in-addr.arpa. IN PTR ddnsagc01.agency.com.
Установим владельцем только что созданных файлов пользователя bind:
# chown bind:bind /var/cache/bind/db-agency.com
# chown bind:bind /var/cache/bind/db-1.168.192

Настройка динамического обновления зон
Bind настроен и теперь нам необходимо настроить dhcp сервер на обновление файлов зон bind. Для этого открываем для редактирования и меняем параметр ddns-update-style с none на interim в /etc/dhcp/dhcpd.conf:
ddns-update-style interim;
Прописываем rndc-key (который можно подключить и через include, но я предпочел прописать вручную):
key rndc-key {
algorithm hmac-md5;
secret «XXXXXXXXXXX»;
}
И наконец указываем какие зоны должен обновлять сервер:
zone agency.com {

key rndc-key;
}
zone 1.168.192.in-addr.arpa {
primary 127.0.0.1; # Адрес DNS сервера.
key rndc-key;
}
Перезапускаем демоны Bind и isc-dhcp-server и проверяем работу установленной связки:
# /etc/init.d/bind9 restart
# /etc/init.d/isc-dhcp-server restart
После перезапуска демонов и в том случае, если всё прописано верно - в каталоге /var/cache/bind появятся.jnl файлы (журналы) наших зон, указывающие на то, что зоны корректно обновляются. В моём случае Bind так же чуть изменил файлы зон, подкорректировав их таким образом, чтобы стали использоваться сокращения в виде символа «@» для подмены имени домена, заменил значения указанные в часах и неделях на секунды (как в приведенных мною конфигах) и некоторые другие.
Bind и isc-dhcp-server записывают информацию о своей работе в syslog , так что если что-то не заработало, идем в /var/log/syslog и ищем в чем загвоздка. Следует обращать внимание на знаки препинания при описании доменных зон. Так моя ошибка заключалась в том, что я пропустил точку при указании домена и никак не мог добиться обновления обратной зоны.
Спасибо за внимание, надеюсь статья окажется полезной.
При написании статьи использовалась книга "DNS и BIND " Крикета Ли и Пола Альбитца, man страницы и многочисленные форумы в сети Интернет.

P.S.

Всё описанное выше я оформил в виде pdf-файла, в котором т.ж. присутствует раздел по использованию настроенной связки для работы с сервером Active Directory. Этот раздел является практически копией статьи Алексеюя Кеда aka Lissyara (http://www.lissyara.su) и я не включаю его в данную публикацию. Но тем не менее, я выкладываю ссылку на данный PDF-документ, который немного отличается по форматированию и имеет небольшие дополнения.

DHCP или Dynamic Host Configuration Protocol – это используемый в сетях протокол посредством которого сетевое устройство может автоматически получать сетевые настройки необходимые для связи с другими устройствами во время загрузки. Использование DHCP-сервера в вашей локальной сети значительно упрощает администрирование сетевых устройств, а также позволяет централизовать точку управления сетей.
DHCP-сервер может предоставить IP-адрес устройства, маска сети, DNS-серверы, IP-адрес шлюза, широковещательный адрес сети, к которой вы принадлежите, адреса серверов точного времени и другие более экзотические настройки.

Если у вас всего 2-3 компьютера обычно предпочтение отдается ручной настройке сети. Но в настоящее время появилось множество сетевых устройств для каждого из которых настройка сетевых параметров может оказаться очень сложной, а иногда и невозможной вовсе. Это является основным фактором, который мы должны учитывать в пользу установки и настройки DHCP-сервера в нашей сети. DHCP-сервер может существенно упростить настройку сетевых устройств.
Однако ручное назначение IP-адресов всегда необходимо, если вы развертываете в своей сети серверы. Серверы всегда должны иметь статическимй IP-адрес.

Теперь давайте посмотрим, как работает DHCP-сервер в сети.
Сетевое устройство, которому необходимо назначить статический адрес, отправляет в сеть широковещательный запрос с сообщением «DHCP Discover». Отправленное сообщение от клиентского устройства также включает в себя его MAC-адрес. Клиенты отправляют это сообщение, чтобы определить, имеется ли сервер DHCP где-то в сети.

Слушающий DHCP-сервер принимает широковещательный кадр и отвечает клиенту сообщением «DHCP Offer»: ответ содержит сетевые настройки, необходимые для регистрации клиента в сети. Обычно это IP-адрес, маска подсети, шлюз по умолчанию и другие сетевые параметры.

После получения ответа от сервера клиент, если он удовлетворен полученными настройками, отправляет сообщение «DHCP Request» обратно на сервер DHCP и сообщает, что он согласен с формальными настройками сети. Сервер, отправивший предложение, фиксирует запрошенный IP-адрес за данным клиентом. Опять же, отправляется широковещательной запрос т.к. в сети могут быть другие DHCP-серверы и они должны быть в курсе появления нового устройства.

Наконец, сервер DHCP отвечает одноадресным сообщением «DHCP ACK». На этом этапе IP-адрес и все другие параметры сети отправляются на наше сетевое устройство, поскольку теперь они одобрены для использования клиентом.

Internet Software Consortium является основным автором и разработчиком самого распостраненного DHCP-сервера в Linux, который обычно называют сервером ISC DHCP. В Ubuntu / Debian соответствующий двоичный пакет называется isc-dhcp-server . Рассмотрим как установить и настроить DHCP-сервер.

Установка сервера ISC DHCP

Установим пакет.

Sudo apt install isc-dhcp-server

На всякий случай сделаем резервную копию конфигурационного файла

Cp /etc/dhcp/dhcpd.conf{,.backup} cat /dev/null > /etc/dhcp/dhcpd.conf

Настройка DHCP

nano /etc/dhcp/dhcpd.conf subnet 192.168.38.0 netmask 255.255.255.0 { range 192.168.38.100 192.168.38.254; option subnet-mask 255.255.255.0; option broadcast-address 192.168.38.255; option domain-name-servers 8.8.8.8, 8.8.4.4; option domain-name “workgroup”; option routers 192.168.38.1; default-lease-time 7200; max-lease-time 480000; }

Все строки параметров в файле конфигурации dhcp заканчиваются точкой с запятой (;). Некоторые параметры могут иметь не одно значение, например, domain-name-servers, у которого два IP-адреса, разделенные запятой. Строки, начинающиеся с ‘#’, являются комментариями и не обрабатываются сервером dhcp.

Некоторые общие параметры сервера DHCP:

subnet - Параметр объявляет подсеть (в нашем случае 192.168.38.0 с маской 255.255.255.0)

range – Диапазон выдаваемых адресов (от 192.168.38.100 до 192.168.38.254).

option subnet-mask – Маска сети. (255.255.255.0)

option broadcast-address – Широковещательный адрес. (192.168.38.255)

domain-name-servers – Адреса серверов DNS. (8.8.8.8, 8.8.4.4)

option domain-name – Доменное имя.(workgroup)

option routers – Определяет IP-адрес вашего шлюза или точки выхода в сеть.(192.168.38.1)

После того как вы отредактировали основной файл конфигурации и объявили диапазоны IP, откройте файл /etc/default/isc-dhcp-server и замените параметр INTERFACESv4 на имя сетевого интерфейса, который смотрит внутрь сети. Чтобы узнать его имя воспользуйтесь командами ipconfig или ip.

INTERFACESv4 = "enp1s8"

Наконец, после внесения всех изменений перезапустите сервер dhcp, чтобы применить новую конфигурацию и проверить статус службы, выполнив следующие команды:

Systemctl restart isc-dhcp-server systemctl status isc-dhcp-server

Настройка DHCP-сервера с резервированием IP-адреса.

Часто возникает необходимость зарезервировать за устройством (сервером, принтером и т.д.) постоянный IP-адрес. В этом случае вам нужно знать его MAC- адрес.

Nano /etc/dhcp/dhcpd.conf

Пример резервирования IP-адреса 192.168.38.5 за компьютером SERVER:

Subnet 192.168.38.0 netmask 255.255.255.0 { range 192.168.38.100…. .......................................... host SERVER { hardware ethernet 08:60:6e:d6:5e:ff; fixed-address 192.168.38.5;} }

После того, как вы внесли изменения в конфигурационный файл, перезапустите сервер DHCP следующей командой:

Systemctl restart isc-dhcp-server

Это все! Вы успешно установили и настроили DHCP-сервер.