Настройка DHCP сервера (isc-dhcp-server)

Debian/Ubuntu

Установка сервера DHCP

Прежде чем приступить к установке DHCP-сервера, сначала обновите пакеты, выполнив следующую команду в Терминале:

sudo apt-get update

Затем выполните следующую команду в Терминале для установки DCHP-сервера:

sudo apt-get install isc-dhcp-server -y

Подождите некоторое время до завершения установки.

Настройка сервера DHCP

После завершения установки DHCP-сервера перейдем к его настройке. IP-адрес нашего DHCP-сервера - 192.168.153.141. Чтобы узнать IP-адрес вашего DHCP-сервера, введите следующую команду в терминале:

ip a

Файл конфигурации DHCP находится по адресу /etc/dhcp/dhcpd.conf.

Прежде чем приступить к настройке DHCP сервера, сделаем копию данного файла

cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.backup
cat /dev/null > /etc/dhcp/dhcpd.conf

Теперь приступим к настройке сервера, выполнив следующую команду в Терминале

sudo nano /etc/dhcp/dhcpd.conf
subnet 192.168.38.0 netmask 255.255.255.0 {
 range 192.168.38.100 192.168.38.254;
 option subnet-mask 255.255.255.0;
 option broadcast-address 192.168.38.255;
 option domain-name-servers 8.8.8.8, 8.8.4.4;
 option domain-name "workgroup";
 option routers 192.168.38.1;
 default-lease-time 7200;
 max-lease-time 480000;
 }

Все строки параметров в файле конфигурации dhcp заканчиваются точкой с запятой (;). Некоторые параметры могут иметь не одно значение, например, domain-name-servers, у которого два IP-адреса, разделенные запятой. Строки, начинающиеся с ‘#’, являются комментариями и не обрабатываются сервером dhcp.

Некоторые общие параметры сервера DHCP:

subnet— Параметр объявляет подсеть (в нашем случае 192.168.38.0 с маской 255.255.255.0)

range – Диапазон выдаваемых адресов ( от 192.168.38.100 до 192.168.38.254).

option subnet-mask – Маска сети. ( 255.255.255.0)

option broadcast-address – Широковещательный адрес. (192.168.38.255)

domain-name-servers – Адреса серверов DNS. (8.8.8.8, 8.8.4.4)

option domain-name – Доменное имя.(workgroup)

option routers – Определяет IP-адрес вашего шлюза или точки выхода в сеть.(192.168.38.1)

После того как вы отредактировали основной файл конфигурации и объявили диапазоны IP, откройте файл /etc/default/isc-dhcp-server и замените параметр INTERFACESv4 на имя сетевого интерфейса, который смотрит внутрь сети. Чтобы узнать его имя воспользуйтесь командами ipconfig или ip.

INTERFACESv4 = "ens33"

Наконец, после внесения всех изменений перезапустите сервер dhcp, чтобы применить новую конфигурацию и проверить статус службы, выполнив следующие команды:

systemctl restart isc-dhcp-server
systemctl status isc-dhcp-server

Глобальная конфигурация DHCP

Ниже приведены основные шаги, необходимые для настройки глобальных параметров для установки DHCP-сервера (в файле /etc/dhcp/dhcpd.conf).

1. Чтобы задать время аренды по умолчанию и максимальное время аренды, найдите параметры default-lease-time и max-lease-time в файле config и измените их значения.

default-lease-time 600;
max-lease-time 7200;
  1. Чтобы сделать DHCP-сервер официальным DHCP-сервером для клиентов, откомментируйте следующую строку в конфигурационном файле (убрав символ #):

authoritative;

Это базовая конфигурация, необходимая для запуска DHCP-сервера. После завершения работы сохраните и закройте конфигурационный файл.

Настройка DHCP-сервера с резервированием IP-адреса.

Часто возникает необходимость зарезервировать за устройством (сервером, принтером и т.д.) постоянный IP-адрес. В этом случае вам нужно знать его MAC- адрес.

nano /etc/dhcp/dhcpd.conf

Пример резервирования IP-адреса 192.168.38.5 за компьютером SERVER:

subnet 192.168.38.0 netmask 255.255.255.0 {
range 192.168.38.100….
.......................................... 
host SERVER {
  hardware ethernet 08:60:6e:d6:5e:ff;
  fixed-address 192.168.38.5;}
}

После того, как вы внесли изменения в конфигурационный файл, перезапустите сервер DHCP.

Остальные настройки вы сможете изучить в конфиге, резервную копию которого мы сделали вначале, там закомментированные строки имеют описание.

Управление Службой DHCP

Наконец, после внесения всех изменений перезапустите сервер dhcp, чтобы применить новую конфигурацию и проверить статус службы, выполнив следующие команды:

systemctl restart isc-dhcp-server
systemctl status isc-dhcp-server

Ниже приведен снимок экрана, показывающий состояние 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 a

Проверьте конфигурацию сети с помощью команды IP

Вы увидите IP-адрес, который будет из диапазона, определенного нами в конфигурации DHCP-сервера. Если клиент по-прежнему не получает IP-адрес от DHCP-сервера, перезагрузите систему.

Список арендованных адресов

Чтобы узнать, какие адреса были назначены клиентам сервером DHCP, откройте машину, которую вы настроили как сервер DHCP, и введите следующую команду в Terminal:

dhcp-lease-list

Аренда - это период времени, на который IP-адрес назначается компьютеру.

Из этого списка вы можете убедиться, что наш DHCP клиент с MAC: 00:0c:29:4b:f8:15 получил IP адрес 192.168.153.141 от DHCP сервера.

CentOS/Fedora

Установка DHCP-сервера

  1. Установка DHCP довольно проста, достаточно всего лишь ввести следующую команду:

# yum -y install dhcp

Важно: предполагается, что к системе подключено более одного сетевого интерфейса, но ведь вам нужно, чтобы DHCP-сервер был запущен лишь на одном из интерфейсов, сделать это можно следующим образом.

  1. Откройте файл /etc/sysconfig/dhcpd, добавьте имя конкретного интерфейса в список DHCPDARGS, например, если интерфейс eth0, тогда добавьте:

DHCPDARGS=eth0

Сохраните этот файл и выйдите.

Настройка DHCP-сервера

  1. Первым шагом установки DHCP-сервера является создание файла конфигурации dhcpd.conf. Основной файл конфигурации DHCP обычно располагается по пути /etc/dhcp/dhcpd.conf (изначально пуст) и хранит всю сетевую информацию, отправляемую клиентам.

Тем не менее, существует другой пример файла конфигурации /usr/share/doc/dhcp*/dhcpd.conf.sample, который является хорошей отправной точкой для настройки DHCP-сервера.

В файле конфигурации DHCP, существует два типа операторов:

  • parameters (параметры) — этот оператор определяет как выполнять задачу, выполнять ли задачу вообще и какие параметры конфигурации сети отправлять DHCP-клиенту.

  • declarations (объявление) — этот оператор определяет топологию сети, клиентов, предлагает адреса для клиентов и применяет группу параметров к группе объявлений. Поэтому начните с копирования примера файла конфигурации, в качестве основного файла конфигурации:

# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

  1. Теперь откройте главный файл конфигурации и задайте параметры DHCP-сервера:

# vi /etc/dhcp/dhcpd.conf

В верхней части файла установите значения глобальных параметров, которые будут применяться ко всем подсетям:

option domain-name "tecmint.lan";
option domain-name-servers ns1.tecmint.lan, ns2.tecmint.lan;
default-lease-time 3600;
max-lease-time 7200;
authoritative;
  1. Теперь определите подсеть; в этом примере мы настроим DHCP для 192.168.56.0/24 LAN-сети (не забывайте использовать параметры, которые применяются к вашему варианту):

subnet 192.168.56.0 netmask 255.255.255.0 {
          option routers                  192.168.56.1;
          option subnet-mask              255.255.255.0;
          option domain-search            "tecmint.lan";
          option domain-name-servers      192.168.56.1;
          range   192.168.56.10   192.168.56.100;
          range   192.168.56.120  192.168.56.200;
}

Присвоение статического адреса DHCP-клиенту

Вы можете присвоить статический IP-адрес конкретному клиентскому компьютеру в сети, просто определите раздел, описанный ниже, в файле /etc/dhcp/dhcpd.conf, в котором необходимо указать MAC-адреса и фиксированный IP адрес для назначения:

host ubuntu-node {
      hardware  ethernet 00:f0:m4:6y:89:0g;
      fixed-address 192.168.56.105;
}

host fedora-node {
      hardware  ethernet 00:4g:8h:13:8h:3a;
      fixed-address 192.168.56.110;
}

Сохраните файл и закройте его.

Примечание: Вы можете узнать MAC адрес в Linux, используя следующую команду:

# ifconfig -a eth0 | grep HWaddr

  1. Теперь запустите службу DHCP и включите параметр для её автоматического запуска со следующей загрузки системы, используя команды:

---------- На CentOS/RHEL 7 ----------
systemctl start dhcpd
systemctl enable dhcpd
---------- На CentOS/RHEL 6 ----------
service dhcpd start
chkconfig dhcpd on
  1. Затем не забудьте разрешить службу DHCP (DHCPD-служба прослушивает порт 67/UDP), как показано ниже:

---------- На CentOS/RHEL 7 ----------
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --reload
---------- На CentOS/RHEL 6 ----------
iptables -A INPUT -p tcp -m state --state NEW --dport 67 -j ACCEPT
service iptables save

Настройка клиента DHCP

  1. Теперь вы можете настроить своих клиентов в сети на автоматическое получение IP-адресов от DHCP-сервера. Войдите на клиентский компьютер и измените файл конфигурации интерфейса Ethernet следующим образом (не берите имя/номер интерфейса):

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Добавьте следующие строки:

DEVICE=eth0
BOOTPROTO=dhcp
TYPE=Ethernet
ONBOOT=yes
Сохраните файл и выйдите.
  1. Также вы можете выполнить настройку на компьютере с помощью графического интерфейса (GUI), для этого установите Method на Automatic (DHCP), как показано на скриншоте ниже (Ubuntu 16.04 desktop).

  1. Затем перезапустите сетевые службы следующим образом (вы также можете просто перезагрузить систему):

---------- На CentOS/RHEL 7 ----------
systemctl restart network
---------- На CentOS/RHEL 6 ----------
service network restart

Если все настройки правильны, то ваши клиенты будут автоматически получать IP-адреса от DHCP-сервера.

Last updated