DHCP (Dynamic Host Control Protocol), как вы все знаете, является сетевым протоколом, который автоматически назначает IP-адреса клиентским машинам в сети. Он устраняет утомительную работу по ручному назначению IP-адресов каждой машине в большой сети. Кроме того, он устраняет конфликты, возникающие из-за ошибочного назначения одного и того же IP-адреса нескольким машинам. Мы можем определить диапазоны IP-адресов в конфигурации DHCP-сервера. Наряду с IP-адресом мы можем определить и другую информацию, такую как маска подсети, шлюз по умолчанию, информация о DNS-сервере и т.д., и эта информация затем распространяется среди клиентских машин в сети.
В этой статье мы рассмотрим, как установить DHCP-сервер в Ubuntu и настроить одного клиента на автоматическое получение IP-адреса с этого DHCP-сервера.
Установка сервера DHCP
Прежде чем приступить к установке DHCP-сервера, сначала обновите пакеты, выполнив следующую команду в Терминале:
1 | sudo apt-get update |
Затем выполните следующую команду в Терминале для установки DCHP-сервера:
1 | sudo apt-get install isc-dhcp-server -y |
Подождите некоторое время до завершения установки.
Настройка сервера DHCP
После завершения установки DHCP-сервера перейдем к его настройке. IP-адрес нашего DHCP-сервера - 192.168.110.1. Чтобы узнать IP-адрес вашего DHCP-сервера, введите следующую команду в терминале:
1 | ip a |
Файл конфигурации DHCP находится по адресу /etc/dhcp/dhcpd.conf. Мы можем открыть этот файл, выполнив следующую команду в Терминале
1 | sudo nano /etc/dhcp/dhcpd.conf |
Определение подсети
Добавьте следующие строки в конфигурационный файл для определения подсети, диапазона IP-адресов, домена и серверов доменных имен, как показано ниже:
Чтобы определить подсеть, добавьте следующие строки:
1 | subnet 192.168.153.0 netmask 255.255.255.0 { |
При определении информации о подсети (диапазон, шлюз по умолчанию, сервер доменных имен), обязательно заканчивайте строки точкой с запятой (;) и заключайте их в фигурные скобки { }.
Чтобы указать диапазон арендуемых адресов, добавьте следующую строку. Диапазон определяет набор пула IP-адресов, из которого IP-адреса выделяются клиентам DHCP
1 | range 192.168.110.5 192.168.1.10; |
Чтобы указать шлюз по умолчанию, добавьте следующую строку:
1 | option routers 192.168.110.1; |
Чтобы указать серверы доменных имен, добавьте следующую строку:
1 | option domain-name-servers 1.1.1.1, 1.0.0.1; |
Внесите изменения в соответствии с параметрами вашей сети.
Глобальная конфигурация DHCP
Ниже приведены основные шаги, необходимые для настройки глобальных параметров для установки DHCP-сервера.
1. Чтобы задать время аренды по умолчанию и максимальное время аренды, найдите параметры default-lease-time и max-lease-time в файле config и измените их значения.
1 2 | default-lease-time 600; max-lease-time 7200; |
2. Если у вас несколько интерфейсов, вам нужно определить, какой интерфейс DHCP-сервер должен использовать для обслуживания DHCP-запросов. В конфигурационном файле найдите и отредактируйте значение INTERFACESv4 и измените его на интерфейс, который мы хотим использовать для обслуживания запросов.
1 | INTERFACESv4="ens33" |
3. Чтобы сделать DHCP-сервер официальным DHCP-сервером для клиентов, откомментируйте следующую строку в конфигурационном файле (убрав символ #):
1 | authoritative; |
Это базовая конфигурация, необходимая для запуска DHCP-сервера. После завершения работы сохраните и закройте конфигурационный файл.
Управление Службой DHCP
После завершения настройки вы можете использовать следующие команды для управления DHCP-сервером:
Чтобы убедиться, что служба работает нормально, проверьте статус службы DHCP, выполнив следующую команду в терминале:
1 | sudo systemctl status isc-dhcp-server.service |
Ниже приведен снимок экрана, показывающий состояние DHCP-сервера. Вы можете увидеть активный (работающий), выделенный зеленым цветом, подтверждающий, что DHCP-сервер работает нормально:
Есть еще несколько команд, которые мы можем использовать для запуска, остановки и перезапуска службы DHCP.
Внимательно проверяйте наличие точки с запятой в конце строк конфигурации, в противном случае может возникнуть ошибка запуска isc-dhcp-server
Чтобы запустить службу DHCP, выполните следующую команду в терминале:
1 | sudo systemctl start isc-dhcp-server.service |
Чтобы остановить службу DHCP, выполните следующую команду в Терминале:
1 | sudo systemctl stop isc-dhcp-server.service |
Чтобы перезапустить службу DHCP, выполните следующую команду в Терминале:
1 | sudo systemctl restart isc-dhcp-server.service |
Настройка клиента DHCP
Нам потребуется настроить сетевые параметры клиентского компьютера для получения IP-адреса от DHCP-сервера. Здесь мы будем использовать другой Ubuntu 18.04 LTS в качестве клиентского компьютера.
На клиентском компьютере откройте приложение Настройки из меню Dash в Ubuntu.
Затем выберите вкладку Сеть в левой панели приложения Настройки. Затем откройте настройки адаптера, нажав на значок шестеренки перед ним. Убедитесь, что он включен.
Откроется окно настроек адаптера. Выберите вкладку IPv4 в верхнем меню. Затем выберите опцию Автоматически (DHCP). Затем нажмите Применить, чтобы сохранить изменения.
Затем перезапустите сетевые службы, выполнив следующую команду в Терминале:
1 | sudo systemctl restart NetworkManager.service |
Теперь запустите Терминал и введите следующую команду, чтобы найти IP-адрес системы.
1 | ip a |
Проверьте конфигурацию сети с помощью команды IP
Вы увидите IP-адрес, который будет из диапазона, определенного нами в конфигурации DHCP-сервера. Если клиент по-прежнему не получает IP-адрес от DHCP-сервера, перезагрузите систему.
Список арендованных адресов
Чтобы узнать, какие адреса были назначены клиентам сервером DHCP, откройте машину, которую вы настроили как сервер DHCP, и введите следующую команду в Terminal:
1 | dhcp-lease-list |
Аренда - это период времени, на который IP-адрес назначается компьютеру.
Из этого списка вы можете убедиться, что наш DHCP клиент с MAC: 00:0c:29:4b:f8:15 получил IP адрес 192.168.153.141 от DHCP сервера.
Теперь установка завершена, и у нас есть DHCP сервер. Теперь мы можем использовать этот DHCP-сервер для назначения IP-адресов.