Настройка 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.

settings

Затем выберите вкладку Сеть в левой панели приложения Настройки. Затем откройте настройки адаптера, нажав на значок шестеренки перед ним. Убедитесь, что он включен.

Настройка DHCP

Откроется окно настроек адаптера. Выберите вкладку IPv4 в верхнем меню. Затем выберите опцию Автоматически (DHCP). Затем нажмите Применить, чтобы сохранить изменения.

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).

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

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

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

Last updated