- About Dynamic Host Configuration Protocol (DHCP)
- DHCP configuration
- Manual allocation (MAC address)
- Dynamic allocation (address pool)
- Automatic allocation
- Available servers
- References
- Настройка DHCP-сервера в Linux
- Как работает DHCP?
- Шаг 1: Установка DHCP-сервера
- Шаг 2: Настройка DHCP-сервера
- Шаг 3: Настройка статических IP-адресов для машин клиентов
- Шаг 4: Настройка машин клиентов
- Похожие записи:
- Установка и базовая настройка DHCP сервера на Ubuntu
- Установка и настройка
- Возможные проблемы
- Not configured to listen on any interfaces!
- Читайте также
About Dynamic Host Configuration Protocol (DHCP)
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.
The most common settings provided by a DHCP server to DHCP clients include:
- IP address and netmask
- IP address of the default-gateway to use
- IP addresses of the DNS servers to use
However, a DHCP server can also supply configuration properties such as:
The advantage of using DHCP is that any changes to the network, such as a change in the DNS server address, only need to be changed at the DHCP server, and all network hosts will be reconfigured the next time their DHCP clients poll the DHCP server. As an added advantage, it is also easier to integrate new computers into the network, as there is no need to check for the availability of an IP address. Conflicts in IP address allocation are also reduced.
DHCP configuration
A DHCP server can provide configuration settings using the following methods:
Manual allocation (MAC address)
This method uses DHCP to identify the unique hardware address of each network card connected to the network, and then supplies a static configuration each time the DHCP client makes a request to the DHCP server using that network device. This ensures that a particular address is assigned automatically to that network card, based on its MAC address.
Dynamic allocation (address pool)
In this method, the DHCP server assigns an IP address from a pool of addresses (sometimes also called a range or scope) for a period of time (known as a lease) configured on the server, or until the client informs the server that it doesn’t need the address anymore. This way, the clients receive their configuration properties dynamically and on a “first come, first served” basis. When a DHCP client is no longer on the network for a specified period, the configuration is expired and released back to the address pool for use by other DHCP clients. After the lease period expires, the client must renegotiate the lease with the server to maintain use of the same address.
Automatic allocation
Using this method, the DHCP automatically assigns an IP address permanently to a device, selecting it from a pool of available addresses. Usually, DHCP is used to assign a temporary address to a client, but a DHCP server can allow an infinite lease time.
The last two methods can be considered “automatic” because in each case the DHCP server assigns an address with no extra intervention needed. The only difference between them is in how long the IP address is leased; in other words, whether a client’s address varies over time.
Available servers
Ubuntu makes two DHCP servers available:
- isc-dhcp-server :
This server installs dhcpd , the dynamic host configuration protocol daemon. Although Ubuntu still supports isc-dhcp-server , this software is no longer supported by its vendor. Find out how to install and configure isc-dhcp-server . - isc-kea :
Kea was created by ISC to replace isc-dhcp-server – It is supported in Ubuntu releases from 23.04 onwards. Find out how to install and configure isc-kea .
References
- The isc-dhcp-server Ubuntu Wiki page has more information.
- For more /etc/dhcp/dhcpd.conf options see the dhcpd.conf man page.
- ISC dhcp-server
- ISC Kea Documentation
Настройка DHCP-сервера в Linux
Протокол динамической конфигурации узлов (Dynamic Host Configuration Protocol, DHCP) — это сетевой протокол, используемый для автоматического получения узлами IP-адресов и сетевой конфигурации с сервера.
IP-адрес, выделенный DHCP-клиенту DHCP-сервером, находится в «аренде», время аренды может отличаться в зависимости от того, сколько времени клиенту требуется соединение или конфигурация DHCP.
Как работает DHCP?
- После загрузки подключенный к сети клиент (на котором настроено использование DHCP) отправляет DHCP-серверу пакет DHCPDISCOVER.
- Получив пакет запроса DHCPDISCOVER, DHCP-сервер отвечает пакетом DHCPOFFER.
- Клиент принимает пакет DHCPOFFER и отправляет серверу пакет DHCPREQUEST, подтверждая готовность принять сетевую конфигурацию, предоставленную в пакете.
- Получив от клиента пакет DHCPREQUEST, сервер отправляет пакет DHCPACK, который разрешает клиенту использование выделенного IP-адреса.
В данном руководстве мы рассмотрим настройку DHCP-сервера в Ubuntu/Debian Linux, но большенство настроек будет работать и в других дистрибутивах. Для получения административных привилегий все команды будут выполняться через sudo.
Шаг 1: Установка DHCP-сервера
1. Для установки пакета DCHP-сервера, ранее известного как dhcp3-server, нужно выполнить следующую команду:
$ sudo apt install isc-dhcp-server
2. После завершения установки отредактируйте файл /etc/default/isc-dhcp-server для определения интерфейсов, которые будет использовать DHCPD для обработки DHCP-запросов, при помощи опции INTERFACES.
Например, если вам нужно, чтобы демон DHCPD прослушивал eth0, задайте следующее значение:
Для этого сетевого интерфейса нужно настроить статический IP-адрес.
Шаг 2: Настройка DHCP-сервера
3. Основной файл конфигурации DHCP — /etc/dhcp/dhcpd.conf, в него нужно внести всю информацию, отправляемую клиентам.
В файле конфигурации DHCP есть два типа данных:
- параметры – указывают, как выполнять задание (например, на какое время выделять адрес), выполнять ли его вообще (например, выделять ли адреса неизвестным клиентам) или какие параметры сетевой конфигурации отправлять DHCP-клиенту.
- декларации – определяют топологию сети, описывают клиентов и предоставляемые им адреса, или применяют группу параметров к группе деклараций.
4. Для определения настроек DHCP-сервера откроем и отредактируем файл конфигурации:
Установите в начале файла следующие глобальные параметры, они будут действовать для всех указанных ниже деклараций (измените их в соответствии с вашими задачами). Это имя домена domain-name, имена DNS-серверов domain-name-servers, время аренды по умолчанию в секундах default-lease-time (если клиент не запросил его сам), максимальное время аренды в секундах max-lease-time и параметр authoritative, означающий «авторитетность» сервера в сегменте сети. Данный параметр нужен на тот случай, если клиент запросит неправильный IP-адрес — в этом случае сервер ответит ему отказом и предложит получить новый адрес.
option domain-name "itproffi.lan"; option domain-name-servers ns1.itproffi.lan, ns2.itproffi.lan; default-lease-time 3600; max-lease-time 7200; authoritative;
Обратите внимание, что перед некоторыми параметрами указано слово option, а перед некоторыми — нет. Это слово задает параметры, которые передаются клиенту в сетевой конфигурации.
5. Теперь нужно указать подсеть, в нашем примере мы будем использовать DHCP в локальной сети 192.168.10.0/24.
subnet 192.168.10.0 netmask 255.255.255.0
Здесь мы использовали следующие параметры:
routers — IP-адрес маршрутизатора по умолчанию
subnet-mask — маска подсети
domain-search — имя домена
domain-name-servers — имена DNS-серверов
range — диапазон IP-адресов, выделяемый клиентам (можно указывать несколько диапазонов, но обязательно указать хотя бы один)
Шаг 3: Настройка статических IP-адресов для машин клиентов
6. Для выделения конкретным клиентам фиксированного (статического) IP-адреса нужно добавить в файл конфигурации секции следующего вида, где явно указаны MAC-адрес и статически выделяемый IP-адрес:
host centos-node < hardware ethernet 00:f0:m4:6y:89:0g; fixed-address 192.168.10.105; >host fedora-node
7. Запустим службу DHCP и установим ее автоматический запуск при загрузке:
$ sudo systemctl start isc-dhcp-server.service $ sudo systemctl enable isc-dhcp-server.service
$ sudo service isc-dhcp-server.service start $ sudo service isc-dhcp-server.service enable
8. Далее нужно создать правило для службы DHCP в брандмауэре (Демон DHCPD прослушивает UDP-порт 67):
$ sudo ufw allow 67/udp $ sudo ufw reload $ sudo ufw show
Шаг 4: Настройка машин клиентов
9. Теперь можно настроить клиентские компьютеры в сети для автоматического получения IP-адресов от DHCP-сервера.
Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя/номер интерфейса):
$ sudo vi /etc/network/interfaces
auto eth0 iface eth0 inet dhcp
Сохраните и закройте файл, а затем перезапустите сетевые службы или перезагрузите систему:
$ sudo systemctl restart networking
$ sudo service networking restart
Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера.
Настройка DHCP-сервера завершена. Более подробную информацию о dhcpd и dhcpd.conf с описанием всех возможных опций можно получить в соответствующих man-страницах:
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Похожие записи:
Установка и базовая настройка DHCP сервера на Ubuntu
Опубликовано: 12.03.2023
Установка и настройка
Сервер DHCP в Ubuntu может быть реализован с помощью пакета isc-dhcp-server. Его можно установить из стандартных репозиториев системы. Выполняем обновления кэша пакетов и установку:
subnet 192.168.0.0 netmask 255.255.255.0 <
range 192.168.0.100 192.168.0.200;
option domain-name-servers 192.168.0.10, 192.168.0.11;
option domain-name «dmosk.local»;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
>
- subnet — сеть, для которой будет работать данная группа настроек.
- range — диапазон, из которого будут браться IP-адреса.
- option domain-name-servers — через запятую перечисленные DNS-сервера.
- option domain-name — суффикс доменного имени.
- option routers — шлюз по умолчанию.
- option broadcast-address — адрес сети для широковещательных запросов.
- default-lease-time и max-lease-time — время и максимальное время в секундах, на которое клиент получит адрес, по его истечению будет выполнено продление срока.
Проверить корректность конфигурационного файла можно командой:
dhcpd -t -cf /etc/dhcp/dhcpd.conf
Разрешаем автозапуск сервиса:
systemctl enable isc-dhcp-server
systemctl restart isc-dhcp-server
Добавляем правило в firewall:
iptables -I INPUT -p udp —dport 67 -j ACCEPT
Возможные проблемы
Not configured to listen on any interfaces!
Сервис dhcp не запускается, а в логе можно увидеть ошибки, на подобие:
No subnet declaration for ens18 (192.168.1.10).
.
** Ignoring requests on ens18. If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface ens18 is attached. **
.
Not configured to listen on any interfaces
Причина: в конфигурационном файле описана подсеть, которая не настроена ни на одном из сетевых интерфейсов сервера.
Решение: конфигурация subnet должна включать только те подсети, в которых настроен сам сервер DHCP. Посмотреть сетевые настройки можно командой:
После чего необходимо проверить настройки в конфигурационном файле сервера dhcp.
Читайте также
Другие инструкции, связанные с DHCP: