DHCP (протокол динамической конфигурации хоста) — это протокол, который автоматически предоставляет хосту Интернет-протокола (IP) его IP-адрес и другую соответствующую информацию о конфигурации, такую как маска подсети и шлюз по умолчанию. DHCP может использоваться в сетях, использующих TCP/IP для автоматического назначения IP-адреса.
Существует две версии DHCP: v1 и v2. Версия 1 предоставляла IP-адреса только хостам, а версия 2, которая используется в операционной системе Microsoft Windows 2000 и 2003 Server, предлагает больше возможностей. Хотя оба работают по одной и той же концепции, они имеют разные реализации конкретных опций поставщика (VSOP), классов пользователей, периодов аренды и т. д.
Самым большим преимуществом использования DHCP по сравнению со статической адресацией является простота обслуживания, когда ваша сеть растет или сокращается. У вас также есть возможность централизованно управлять своими IP-адресами, что является дополнительным преимуществом по сравнению со статической адресацией. База данных DHCP может быть расположена на DCE NetServer под управлением Windows 2000/2003 Server или размещена на отдельном компьютере с помощью службы динамического DNS, такой как ddclient (решение на основе Perl).
DHCP-сервер ожидает в сети от любого DHCP-клиента (хост-компьютера) запрос адреса и услуг. После того, как клиент запросил IP-адрес, параметры конфигурации и информацию об области действия, DHCP-сервер назначает ему доступный IP-адрес из пула адресов в области, указанной администратором.
Когда новый или существующий компьютер подключается к вашей сети, он будет транслировать пакет «DHCP Discover» в вашу локальную сеть или подсеть в поисках DHCP-сервера. Когда этот пакет входит в контакт с маршрутизатором вашей сети, а затем проходит через него, чтобы попасть в сегмент локальной сети, где он принимается одним или несколькими DHCP-серверами, настроенными в этом сегменте подсети/локальной сети, каждый сервер может видеть, разрешено ли им ответить с помощью их предложение IP-адреса клиенту.
DHCP-сервер, который получает широковещательный пакет «DHCP Discover» от нового или существующего ПК в своей подсети/сегменте LAN, должен предоставить предложение IP-адресов для этой подсети. Предложение содержится в пакете “DHCP Offer” и содержит такие сведения, как диапазон, продолжительность аренды и поля опций, а также другие опции конфигурации. Этот ответ также будет содержать параметры конфигурации TCP/IP для каждого хоста, включая: IP-адрес, маску подсети, шлюз по умолчанию (если есть), продолжительность аренды, DNS-серверы (если есть), имя домена и т. Д.
Затем клиент отправляет пакет DHCPREQUEST обратно на сервер в качестве положительного подтверждения предложения IP-адреса. Этот пакет также будет содержать свой аппаратный адрес (MAC) вместе с другими параметрами конфигурации, такими как DNS-серверы, имя домена и т. д.
Когда DHCP-сервер получает этот запрос, он отмечает пул адресов этого клиента в своей базе данных как «назначенный» и отвечает пакетом подтверждения (DHCPACK), который включает всю вышеуказанную информацию, а также любые определенные параметры, настроенные на этом сервере. Затем клиент настраивает свой сетевой интерфейс, используя эту информацию. Он сохранит продолжительность аренды и параметры, указанные администратором, в энергонезависимой ОЗУ, чтобы они были доступны в следующий раз при перезапуске системы, а существующие клиенты не должны запрашивать DHCP-сервер при каждом перезапуске.
К одному или нескольким хостам с уникальным локальным аппаратным адресом все время. Не на один или несколько хостов с разными глобальными IP-адресами при каждой загрузке. Это означает, что управление статическими адресами отдельных систем нелегко автоматизировать с помощью каких-либо клиентских программ DHCP: для этого вам нужно написать собственное программное обеспечение (в оболочке или Perl-скрипте). Большинство из них используют инструменты Berkeley NetUtils, которые можно найти здесь: https://netutils.com или продукты Microsoft, такие как команда netsh и утилита netshell для управления статической адресацией.
Эта статья покажет вам, как настроить DHCP-сервер с помощью пакета служебных программ DHCP-сервера ISC: DHCPD. Эта статья предназначена для серверов на базе Debian, работающих под управлением следующих ОС: Debian 6, 7, 8, 9,10.
Статический IP-адрес необходим, чтобы вы могли администрировать (добавлять, удалять, изменять) вашу базу данных DHCP (файл конфигурации DHCPD и его файл базы данных). Использование одного из текущих IP-адресов вашего ПК будет работать нормально, но это может вызвать некоторые проблемы в будущем при назначении IP-адресов клиентским компьютерам в вашей сети, поскольку вы не сможете подключиться к этому компьютеру из сети для удаленного администрирования DHCP-сервера. без подключения нового компьютера к сети и ненадолго выключения компьютера.
В этом руководстве предполагается, что вы, по крайней мере, знакомы с интерфейсом командной строки (CLI) ОС Linux. Если вы не знакомы с Linux CLI, ознакомьтесь с ним или попросите друга помочь настроить ваш DHCP-сервер вручную.
Поскольку это руководство предназначено для новичков, мы предполагаем, что в вашей системе еще не включен брандмауэр, поэтому вы можете выходить в Интернет из локальной сети. Это необходимо для загрузки и установки необходимых пакетов для вашего сервера.
Во-первых, мы должны убедиться, что в вашем дереве пакетов установлены последние версии программного обеспечения. Для этого введите в терминале следующую команду:
sudo apt-get update -y
Команда apt-get update обновит базу данных информации о пакетах, чтобы убедиться, что вы используете новейшее программное обеспечение.
-y флаг автоматически подтвердит любые запросы/подтверждения рекомендуемых действий, таких как продолжение любых доступных обновлений.
Теперь ваша система обновлена. Давайте установим утилиту DHCP-сервера в вашу систему, используя следующую команду:
sudo apt-get install isc-dhcp-server -y
Эта команда загрузит и установит пакет служебной программы DHCP-сервера из ваших репозиториев Debian. Этот процесс может занять несколько минут (в зависимости от производительности вашей системы), поэтому подождите, пока он не завершит свою задачу установки успешно.
Настройка DHCP-сервера
После успешного завершения установки мы настроим DHCP-сервер.
Главный файл конфигурации DHCP dhcpd.conf находится в каталоге/etc/dhcp/. Перед внесением изменений рекомендуется создать резервную копию исходного файла. Мы скопируем его с новым именем, отредактируем файл, а затем переименуем его обратно в исходное имя после того, как мы закончим редактирование.
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf_backup
Теперь откройте файл для редактирования с помощью любого редактора:
sudo nano /etc/dhcp/dhcpd.conf
Чтобы настроить параметры DHCP, вам необходимо понять, что это такое:
Все строки параметров заканчиваются точкой с запятой (;), чтобы DHCPD знал, что эта строка завершена. В образце файла конфигурации есть много строк параметров DHCP.
Некоторые параметры могут иметь одно и то же имя, но они разные и могут иметь разные функции. Некоторые параметры представляют собой трехбайтовые (XXX) шестнадцатеричные числа, а некоторые — обычные символы.
Некоторые параметры могут иметь более одного значения. В этом случае между значениями должна быть точка с запятой. Некоторые параметры имеют только одно значение без точки с запятой, например: interface «eth0».
Вот некоторые общие параметры конфигурации, которые вы можете настроить для своего DHCP-сервера
Во-первых, давайте определим интерфейсы в нашей системе, которые мы хотим, чтобы DHCPD слушал. В этом примере eth0 подключен к Интернету, а eth1 подключен к нашей локальной сети. Мы изменим конфигурацию так, чтобы DHCPD прослушивал оба интерфейса.
sudo nano /etc/default/isc-dhcp-server
Приведенная выше команда открывает и редактирует файл/etc/default/isc-dhcp-server.
Найдите на странице “INTERFACES =” и раскомментируйте его, удалив знак «#» перед ним. Должно получиться так: INTERFACES=”eth0 eth1″
Затем просто замените eth0 на свое устройство с интернет-интерфейсом (это может быть что угодно), чтобы оно выглядело так: INTERFACES=”eth1″
Сохраните файл, нажав Ctrl + X, затем нажмите Y, чтобы подтвердить сохранение, а затем нажмите Enter.
Наконец, после того, как вы внесли все изменения, сохраните их, а затем перезапустите DHCP, чтобы соответствующим образом применить любые новые конфигурации. Если все прошло успешно, статус службы должен показывать запущенный процесс DHCPD зеленым цветом с числом, указанным в скобках.
sudo systemctl перезапуск isc-dhcp-server sudo systemctl status isc-dhcp-server
Обратите внимание, что все используемые здесь параметры являются лишь примерами для описания функций различных линий и могут не работать в других дистрибутивах Linux. Всегда полезно регулярно читать файл dhcpd.conf и понимать, что делает каждая строка конфигурации. Возможно, вам даже понадобятся некоторые дополнительные конфигурации в зависимости от вашей сетевой среды, поэтому убедитесь, что вы знакомы с этими командами, прежде чем применять их в своей системе.
Вы можете захотеть установить здесь некоторые глобальные параметры конфигурации, такие как имя домена, серверы доменных имен и время аренды по умолчанию.
sudo nano /etc/dhcp/dhcpd.conf
Мы хотим, чтобы наш DHCP-сервер был авторитетным для всех IP-подсетей в нашей сети, и именно здесь мы определяем, что это за подсети. Он состоит из 4 значений, разделенных пробелами: сетевая маска, IP-адреса двух маршрутизаторов по обе стороны от него (шлюз) и, наконец, начальный и конечный адреса вашего сегмента локальной сети.
sudo nano /etc/dhcp/dhcpd.conf
В некоторых случаях вы можете захотеть ограничить назначение IP-адресов от определенных клиентов, используя фильтрацию MAC-адресов или даже собственный идентификатор клиента. Например, система с MAC-адресом «00: 11: 1A: 2B: 3C: 4D» получит IP 192.166.88.99.
Эта статья показывает вам базовую конфигурацию, которая поможет вам начать работу. Для получения подробной информации посетите вики-страницы isc-dhcp-server ( https://wiki.debian.org/DHCP_Server ).
Здравствуйте, у меня вопросы относительно настроек:
если у меня такой вывод?
== На сервере ==
isc-dhcp-server.service — LSB: DHCP server
Loaded: loaded (/etc/init.d/isc-dhcp-server; generated)
Active: failed (Result: exit-code) since Mon 2022-07-11 07:27:15 MSK; 40s ago
Docs: man:systemd-sysv-generator(8)
Process: 17857 ExecStart=/etc/init.d/isc-dhcp-server start (code=exited, status=1/FAILURE)
CPU: 29ms
Jul 11 07:27:15 31-31-203-167 dhcpd[17870]: before submitting a bug. These pages explain the proper
Jul 11 07:27:15 31-31-203-167 isc-dhcp-server[17870]: before submitting a bug. These pages explain the proper
Jul 11 07:27:15 31-31-203-167 dhcpd[17870]: process and the information we find helpful for debugging.
Jul 11 07:27:15 31-31-203-167 isc-dhcp-server[17870]: process and the information we find helpful for debugging.
Jul 11 07:27:15 31-31-203-167 dhcpd[17870]:
Jul 11 07:27:15 31-31-203-167 isc-dhcp-server[17870]: exiting.
Jul 11 07:27:15 31-31-203-167 dhcpd[17870]: exiting.
Jul 11 07:27:15 31-31-203-167 systemd[1]: isc-dhcp-server.service: Control process exited, code=exited, status=1/FAILURE
Jul 11 07:27:15 31-31-203-167 systemd[1]: isc-dhcp-server.service: Failed with result ‘exit-code’.
Jul 11 07:27:15 31-31-203-167 systemd[1]: Failed to start LSB: DHCP server.
~
——————————————————————————-
На ком-ре
Job for isc-dhcp-server.service failed because the control process exited with error code.
See «systemctl status isc-dhcp-server.service» and «journalctl -xe» for details.
invoke-rc.d: initscript isc-dhcp-server, action «start» failed.
● isc-dhcp-server.service — LSB: DHCP server
Loaded: loaded (/etc/init.d/isc-dhcp-server; generated)
Active: failed (Result: exit-code) since Mon 2022-07-11 07:30:43 MSK; 13ms ago
Docs: man:systemd-sysv-generator(8)
Process: 28507 ExecStart=/etc/init.d/isc-dhcp-server start (code=exited, status=1/FAILURE)
CPU: 40ms
июл 11 07:30:41 debian dhcpd[28523]: before submitting a bug. These pages explain the proper
июл 11 07:30:41 debian dhcpd[28523]: process and the information we find helpful for debugging.
июл 11 07:30:41 debian dhcpd[28523]:
июл 11 07:30:41 debian dhcpd[28523]: exiting.
июл 11 07:30:43 debian isc-dhcp-server[28507]: Starting ISC DHCPv4 server: dhcpdcheck syslog for diagnostics. …
июл 11 07:30:43 debian isc-dhcp-server[28533]: failed!
июл 11 07:30:43 debian isc-dhcp-server[28534]: failed!
июл 11 07:30:43 debian systemd[1]: isc-dhcp-server.service: Control process exited, code=exited, status=1/FAILURE
июл 11 07:30:43 debian systemd[1]: isc-dhcp-server.service: Failed with result ‘exit-code’.
июл 11 07:30:43 debian systemd[1]: Failed to start LSB: DHCP server.