- Настройка DHCP-сервера в Linux
- Как работает DHCP?
- Шаг 1: Установка DHCP-сервера
- Шаг 2: Настройка DHCP-сервера
- Шаг 3: Настройка статических IP-адресов для машин клиентов
- Шаг 4: Настройка машин клиентов
- Похожие записи:
- Setup a DHCP server on Linux
- Install the DHCP RPM
- Copy and rename dhcpd.conf to /etc
- Edit the /etc/dhcpd.conf file
- Assign a static IP to the DHCP server
- Start and test the DHCP server
- Assign a fixed IP to certain machines using DHCP
- Установка и базовая настройка DHCP сервера на Ubuntu
- Установка и настройка
- Возможные проблемы
- Not configured to listen on any interfaces!
- Читайте также
Настройка 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.
Похожие записи:
Setup a DHCP server on Linux
DHCP (Dynamic Host Configuration Protocol) is a service running on port number 67 which assigns IP addresses to computers in a network. Setting up a DHCP server requires you to specify a range of IP addresses which will be assigned to the computers on the network, a gateway address which is the address of the router or modem and a DNS server address which will be used to resolve hostnames. Doing this in Linux is a simple matter of installing an application and editing a .conf file.
Install the DHCP RPM
Before installing make sure it isn’t already installed. Go to the command line terminal and type the command rpm -qa dhcp* it shouldn’t display anything. If it displays dhcpclient or something similar it this you don’t have the server version installed. If you just see dhcp-.el5 then you have it installed already so skip this step and move to the next part.
If you don’t have it installed you can install it through the repository if you have them configured properly. Type yum list dhcp* and the dhcp.i386 package will be listed under available packages. To install it type yum install dhcp.i386 and the package will be downloaded from the repository (if it a HTTP/FTP repository) and installed. If you have the RPM file for dhcp you can install by navigating to the folder containing the RPM file and issue the command rpm -ivh dhcp-.rpm now the dhcp service will be installed. To check if it has been successfully installed type rpm -qa dhcp this will list the installed packages named dhcp
Copy and rename dhcpd.conf to /etc
After installation a file named dhcpd.conf is created inside the /etc directory this is the configuration file for the DHCP service. But if you open it might contain a line telling you to see /usr/share/doc/dhcp*/dhcpd.conf.sample this is the location of a sample file which has to be copied to renamed to the /etc directory. To do both in one command type cp /usr/share/doc/dhcp-/dhcpd.conf.sample /etc/dhcpd.conf it will ask whether you what to overwrite the dhcpd.conf located inside /etc type y to do it.
Edit the /etc/dhcpd.conf file
Logged as a root user type vi /etc/dhcpd.conf press i to enter into insert mode, you’ll have to configure the following lines.
subnet 192.168.0.0 netmask 255.255.255.0
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.1;
range dynamic-bootp 192.168.0.128 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;
On line number 1 set the subnet for the domain to match the IP class you are going to use. Set the IP address of the router/gateway on your network and set the subnet mask IP. Note that unlike windows which autocompletes the subnet mask according to the IP address entered Linux requires you to manually specify it so make sure you specify the correct subnet mask according to the class of the IP address. The option domain-name-servers is where you should enter the DNS servers for your domain. If you wish to enter more than one DNS server separate each IP address with commas. The range dynamic-bootp is the place to specify the range of IP addresses that should be assigned to the devices on the network. The starting IP and the ending IP should be separated by a space. The final setting is the default-lease-time and the max-lease-time which should be specified in seconds. This tells the devices on the network after what time duration the IP address should be renewed. Press ESC then type :wq to save the file and exit.
Assign a static IP to the DHCP server
The DHCP server should be assigned a static IP so that it can serve to the requests of the clients. From the command line type vi /etc/sysconfig/network-scripts/ifcfg-eth0 and enter values for IPADDR, GATEWAY, NETMASK and DNS1. Save the file and restart the network service by typing service network restart for the changes to take place. type ifconfig to see whether the changes have been applied.
Start and test the DHCP server
To start the DHCP daemon type service dhcpd start to make it start along with the OS type chkconfig dhcpd on. Now power on another machine on the network and see whether IP/Netmask/Gateway/DNS Addresses are assigned properly by typing ipconfig if the client runs windows or ifconfig on Linux.
Assign a fixed IP to certain machines using DHCP
You may sometimes require certain computers on your network to be assigned specific IP addresses. This can be done by specifying the computer’s hostname and MAC address. To find out the hostname type hostname on the command line. To find out the MAC address type ipconfig /all if you’re on windows or ifconfig for Linux. Then add the following code to the end of the /etc/dhcpd.conf file.
host hardware ethernet ;
fixed-address ;
>
Replace , , with required computer’s hostname, MAC Address and IP address respectively. Keep adding this line for as many computers you’d like to specify a fixed IP address. Restart the DHCP daemon by typing service dhcpd restart now you’ll see the changes.
If the DHCP service starts but IP is not assigned to any computers it may be because a firewall running on the Linux DHCP Server is blocking port 67. Specify rules for allowing incoming requests to post 67 and it should work properly.
Установка и базовая настройка 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: