Администрирование
March 3

Как установить DHCP-сервер в CentOS, RHEL и Fedora

Читать на ITdoxy

DHCP (Dynamic Host Configuration Protocol — протокол динамической настройки узла) — это сетевой протокол, позволяющий серверу автоматически назначать клиентам в сети IP-адреса из определенного пула и предоставлять связанные с ними конфигурационные параметры.

Это означает, что каждый раз, когда клиент, подключенный к сети, загружается, он получает динамический, а не статический IP-адрес. IP-адрес, назначенный клиенту DHCP-сервером, находится в так называемой “аренде”, которая может варьироваться в зависимости от того, насколько клиенту может потребоваться подключение или настройка DHCP.

В этом руководстве мы рассмотрим, как установить и настроить DHCP-сервер в дистрибутивах CentOS/RHEL и Fedora.

Структура тестового окружения

Мы будем использовать следующее тестовое окружение.

DHCP-сервер - CentOS 7
DHCP-клиенты - Fedora 25 и Ubuntu 16.04

Как работает протокол DHCP?

Прежде чем двигаться дальше, давайте кратко объясним, как работает DHCP:

  • Когда клиентская машина, настроенная на использование DHCP и подключенная к сети, включена, она посылает сообщение DHCPDISCOVER на DHCP-сервер.
  • После того как DHCP-сервер получает сообщение DHCPDISCOVER, он отвечает сообщением DHCPOFFER.
  • Затем клиент получает сообщение DHCPOFFER и отправляет на сервер сообщение DHCPREQUEST, означающее, что он готов получить сетевую конфигурацию, предлагаемую в сообщении DHCPOFFER.
  • Последнее, но не менее важное, DHCP-сервер получает от клиента сообщение DHCPREQUEST и отправляет сообщение DHCPACK, показывающее, что клиенту теперь разрешено использовать назначенный ему IP-адрес.

Шаг 1: Установка DHCP-сервера на CentOS

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

# yum -y install dhcp

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

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

DHCPDARGS=eth0

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

Шаг 2: Настройка DHCP-сервера в CentOS

3. Первым шагом настройки 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

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

# vi /etc/dhcp/dhcpd.conf

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

option domain-name "itdoxy.lan";
option domain-name-servers ns1.itdoxy.lan, ns2.itdoxy.lan;
default-lease-time 3600;
max-lease-time 7200;
authoritative;

5. Теперь определите подсеть; в этом примере мы настроим 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            "itdoxy.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;
}

Шаг 3: Присвоение статического IP 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

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

---------- На CentOS/RHEL 7 ----------
systemctl start dhcpd
systemctl enable dhcpd
---------- На CentOS/RHEL 6 ----------
service dhcpd start
chkconfig dhcpd on

7. Затем не забудьте разрешить службу 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

Шаг 4: Настройка DHCP-клиентов

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

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

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

DEVICE=eth0
BOOTPROTO=dhcp
TYPE=Ethernet
ONBOOT=yes

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

9. Также вы можете выполнить настройку на компьютере с помощью графического интерфейса (GUI), для этого установите Method на Automatic (DHCP), как показано на скриншоте ниже (Ubuntu 16.04 desktop).

Установка DHCP в клиентской сети

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

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

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

Спасибо за внимание! Надеемся, что данная статья помогла вам. Удачи!

Поддержать проект


Социальные сети проекта:

Подпишись, чтобы ничего не пропустить!