Как установить DHCP-сервер в CentOS, RHEL и Fedora
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 довольно проста, достаточно всего лишь ввести следующую команду:
Важно: предполагается, что к системе подключено более одного сетевого интерфейса, но вам нужно, чтобы DHCP-сервер был запущен лишь на одном из интерфейсов, сделать это можно следующим образом.
2. Откройте файл /etc/sysconfig/dhcpd и добавьте имя конкретного интерфейса в список 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-сервера:
В верхней части файла установите значения глобальных параметров, которые будут применяться ко всем подсетям:
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).
10. Затем перезапустите сетевые службы следующим образом (вы также можете просто перезагрузить систему):
---------- На CentOS/RHEL 7 ---------- systemctl restart network ---------- На CentOS/RHEL 6 ---------- service network restart
Если все настройки верны, то ваши клиенты станут автоматически получать IP-адреса от DHCP-сервера.
Спасибо за внимание! Надеемся, что данная статья помогла вам. Удачи!