- Как настроить DHCP-сервер в Ubuntu
- Установка сервера DHCP
- Настройка сервера DHCP
- Определение подсети
- Глобальная конфигурация DHCP
- Управление Службой DHCP
- Настройка клиента DHCP
- Список арендованных адресов
- Похожие записи:
- How to Release old IP or force Renew DHCP lease IP in Linux
- What is DHCP
- How to Release old IP or force Renew DHCP Lease IP in Linux
- Solution 1: Restart Network Manager
- Solution 2: Using nmcli command
- Solution 3: Restart systemd-networkd
- Установка и настройка DHCP Server Debian
Как настроить DHCP-сервер в Ubuntu
DHCP (Dynamic Host Control Protocol), как вы все знаете, является сетевым протоколом, который автоматически назначает IP-адреса клиентским машинам в сети. Он устраняет утомительную работу по ручному назначению IP-адресов каждой машине в большой сети. Кроме того, он устраняет конфликты, возникающие из-за ошибочного назначения одного и того же IP-адреса нескольким машинам. Мы можем определить диапазоны IP-адресов в конфигурации DHCP-сервера. Наряду с IP-адресом мы можем определить и другую информацию, такую как маска подсети, шлюз по умолчанию, информация о DNS-сервере и т.д., и эта информация затем распространяется среди клиентских машин в сети.
В этой статье мы рассмотрим, как установить DHCP-сервер в Ubuntu и настроить одного клиента на автоматическое получение IP-адреса с этого DHCP-сервера.
Установка сервера DHCP
Прежде чем приступить к установке DHCP-сервера, сначала обновите пакеты, выполнив следующую команду в Терминале:
Затем выполните следующую команду в Терминале для установки DCHP-сервера:
sudo apt-get install isc-dhcp-server -y
Подождите некоторое время до завершения установки.
Настройка сервера DHCP
После завершения установки DHCP-сервера перейдем к его настройке. IP-адрес нашего DHCP-сервера — 192.168.110.1. Чтобы узнать IP-адрес вашего DHCP-сервера, введите следующую команду в терминале:
Файл конфигурации DHCP находится по адресу /etc/dhcp/dhcpd.conf. Мы можем открыть этот файл, выполнив следующую команду в Терминале
sudo nano /etc/dhcp/dhcpd.conf
Определение подсети
Добавьте следующие строки в конфигурационный файл для определения подсети, диапазона IP-адресов, домена и серверов доменных имен, как показано ниже:
Чтобы определить подсеть, добавьте следующие строки:
subnet 192.168.153.0 netmask 255.255.255.0
При определении информации о подсети (диапазон, шлюз по умолчанию, сервер доменных имен), обязательно заканчивайте строки точкой с запятой (;) и заключайте их в фигурные скобки < >.
Чтобы указать диапазон арендуемых адресов, добавьте следующую строку. Диапазон определяет набор пула IP-адресов, из которого IP-адреса выделяются клиентам DHCP
range 192.168.110.5 192.168.1.10;
Чтобы указать шлюз по умолчанию, добавьте следующую строку:
option routers 192.168.110.1;
Чтобы указать серверы доменных имен, добавьте следующую строку:
option domain-name-servers 1.1.1.1, 1.0.0.1;
Внесите изменения в соответствии с параметрами вашей сети.
Глобальная конфигурация DHCP
Ниже приведены основные шаги, необходимые для настройки глобальных параметров для установки DHCP-сервера.
1. Чтобы задать время аренды по умолчанию и максимальное время аренды, найдите параметры default-lease-time и max-lease-time в файле config и измените их значения.
default-lease-time 600; max-lease-time 7200;
2. Если у вас несколько интерфейсов, вам нужно определить, какой интерфейс DHCP-сервер должен использовать для обслуживания DHCP-запросов. В конфигурационном файле найдите и отредактируйте значение INTERFACESv4 и измените его на интерфейс, который мы хотим использовать для обслуживания запросов.
3. Чтобы сделать DHCP-сервер официальным DHCP-сервером для клиентов, откомментируйте следующую строку в конфигурационном файле (убрав символ #):
Это базовая конфигурация, необходимая для запуска DHCP-сервера. После завершения работы сохраните и закройте конфигурационный файл.
Управление Службой DHCP
После завершения настройки вы можете использовать следующие команды для управления DHCP-сервером:
Чтобы убедиться, что служба работает нормально, проверьте статус службы DHCP, выполнив следующую команду в терминале:
sudo systemctl status isc-dhcp-server.service
Ниже приведен снимок экрана, показывающий состояние DHCP-сервера. Вы можете увидеть активный (работающий), выделенный зеленым цветом, подтверждающий, что DHCP-сервер работает нормально:
Есть еще несколько команд, которые мы можем использовать для запуска, остановки и перезапуска службы DHCP.
Внимательно проверяйте наличие точки с запятой в конце строк конфигурации, в противном случае может возникнуть ошибка запуска isc-dhcp-server
Чтобы запустить службу DHCP, выполните следующую команду в терминале:
sudo systemctl start isc-dhcp-server.service
Чтобы остановить службу DHCP, выполните следующую команду в Терминале:
sudo systemctl stop isc-dhcp-server.service
Чтобы перезапустить службу DHCP, выполните следующую команду в Терминале:
sudo systemctl restart isc-dhcp-server.service
Настройка клиента DHCP
Нам потребуется настроить сетевые параметры клиентского компьютера для получения IP-адреса от DHCP-сервера. Здесь мы будем использовать другой Ubuntu 18.04 LTS в качестве клиентского компьютера.
На клиентском компьютере откройте приложение Настройки из меню Dash в Ubuntu.
Затем выберите вкладку Сеть в левой панели приложения Настройки. Затем откройте настройки адаптера, нажав на значок шестеренки перед ним. Убедитесь, что он включен.
Откроется окно настроек адаптера. Выберите вкладку IPv4 в верхнем меню. Затем выберите опцию Автоматически (DHCP). Затем нажмите Применить, чтобы сохранить изменения.
Затем перезапустите сетевые службы, выполнив следующую команду в Терминале:
sudo systemctl restart NetworkManager.service
Теперь запустите Терминал и введите следующую команду, чтобы найти IP-адрес системы.
Проверьте конфигурацию сети с помощью команды IP
Вы увидите IP-адрес, который будет из диапазона, определенного нами в конфигурации DHCP-сервера. Если клиент по-прежнему не получает IP-адрес от DHCP-сервера, перезагрузите систему.
Список арендованных адресов
Чтобы узнать, какие адреса были назначены клиентам сервером DHCP, откройте машину, которую вы настроили как сервер DHCP, и введите следующую команду в Terminal:
Аренда - это период времени, на который IP-адрес назначается компьютеру.
Из этого списка вы можете убедиться, что наш DHCP клиент с MAC: 00:0c:29:4b:f8:15 получил IP адрес 192.168.153.141 от DHCP сервера.
Теперь установка завершена, и у нас есть DHCP сервер. Теперь мы можем использовать этот DHCP-сервер для назначения IP-адресов.
Похожие записи:
How to Release old IP or force Renew DHCP lease IP in Linux
In this article, we will see how to release old IP or force renew DHCP lease IP in Linux. Dynamically allocated IP is an IP leased out from a DHCP server for a particular amount of time over a network. If you are using a lease IP then you always have to renew your ip before the lease period expires. Usually, when a lease reaches 50% of its validity time period, the DHCP client unicasts a DHCP Request message to the DHCP server to request lease renewal. The same can be forced manually through a dhcp client tool in Linux Systems.
What is DHCP
The Dynamic Host Configuration Protocol is a network management protocol used on Internet Protocol networks for automatically assigning IP addresses and other communication parameters to devices connected to the network using a client–server architecture.
How to Release old IP or force Renew DHCP Lease IP in Linux
If you have any DHCP lease IP allocated to an interface which you want to release due to certain reasons then you always have the option to release it by using DHCP client tool called dhclient. For example, in my case I have two interfaces attached to my system - enp0s3 and enp0s8 .
To release the IP attached to both the above interfaces, we need to use sudo dhclient -r -v command. But sometimes what happens is that the IP does not get released as you can see below.
Please don't ever try to release the IP over SSH connection as it will disconnect you from the host system and you may not be able to reconnect unless a new IP is assigned which is known to you.
If we try to check again the IP got released or not using ip addr sh command then we can notice that nothing happened. The assigned IP did not got released.
If you try to release IP from specific interface by choosing the interface using sudo dhclient -r -v enp0s3 command then also you can notice that the IP did not got released. This is a very common scenario faced by lot of folks hence I purposefully chosen this one while trying to explain how to release the DHCP lease IP so that you will understand what needs to be done here.
Sometimes even if you try to kill the dhclient process using kill -9 command then you will notice that it is getting started every time you kill this process and the IP is not getting changed. To check the process ID of currently running dhclient program, you can use ps -ef | grep dhclient command as shown below.
In my case process ID(PID) is 2167 , so to kill this one we are using kill -9 2167 command as shown below.
Now if I try to check the process again, I can see that a new dhclient command is launched with process ID(PID) 2169 . So now you must be wondering how did this happen.
Well, this happened because the network interfaces are currently controlled by Network Manager. You can verify this on Debian/Ubuntu systems by checking one of the below netplan configuration file depending on Ubuntu installation you are currently having.
Please note if you are using RHEL/CentOS based systems, then you need to check /etc/sysconfig/network-scripts/ifcfg-
You can check the running status of Network Manager by using sudo systemctl status NetworkManager command as shown below.
If you are also facing problems like above, then you can try below solutions that works for you.
Solution 1: Restart Network Manager
First solution you can try is that you can restart Network Manager by running sudo systemctl restart NetworkManager command as shown below.
Solution 2: Using nmcli command
If the first solution does not work then next you can try restarting your connection using nmcli command. Here you need to first check the current connection using nmcli con command as shown below.
Then first take down the connection for the interface where you need to renew the IP. In our case, let's say we want to renew the IP of enp0s3 interface, then we need to run nmcli con down id "Wired Connection 1" command after releasing the IP as shown below.
Then bring up the connection using nmcli con up id "Wired connection 1" command as shown below.
Solution 3: Restart systemd-networkd
If second solution also did not worked out, then you can try restarting systemd-networkd once by using sudo systemctl restart systemd-networkd command as shown below.
After applying above solution, you can see that you will be able to release the IP as shown below.
You can verify the same by checking the status of ip assigned to network interfaces using ip addr sh command as shown below. From the output, you can see that none of the IP is assigned to both the interfaces - enp0s3 and enp0s8 . This confirms that IP release was successful.
Once the IP is released, you will be able to get the new ip by running sudo dhclient -v command as shown below.
Установка и настройка DHCP Server Debian
Находим поле «INTERFACES» и прописываем в него свой интерфейс своей сетевой карты. У меня это выглядит следующим образом:
3. Настройка сервера DHCP с pool-ом адресов, маской, шлюзом и так далее для клиента DHCP.
Добавляем в файл конфигурации следующие строки:
dns-update-style none; default-lease-time 6000; # время в сек на которое резервируется данный IP max-lease-time 72000;·# максимальное время в сек на которое резервируется IP authoritative; log-facility local7; subnet 192.168.116.0 netmask 255.255.255.0 # маска range 192.168.100.10 192.168.100.200; # диапазон регистрируемых IP для DHCP option broadcast-address 192.168.100.255; # broadcast option routers 192.168.100.1; # gateway option domain-name-servers 192.168.100.1, 8.8.8.8; #name-server(s) >
4. Перезапуск DHCP-сервера на Debian/Ubuntu/Linux Mint
# /etc/init.d/isc-dhcp-server restart
5. Посмотреть список выданных IP адресов можно с помощью команды: