УСТАНОВКА И НАСТРОИКА DHCP СЕРВЕР- Обзор

Протокол DHCP (Dynamic Host Configuration Protocol) широко используется в TCP/IP сетях для автоматического назначения IP адресов и других сетевых параметров устройствам в сети. В этой статье мы покажем, как настроить DHCP сервер на CentOS 8, и как настроить DHCP клиента в этой ОС для автоматического получения настроек сети от сервера.

Установка и базовая настройка DHCP

В CentOS/RHEL можно установить DHCP-сервер с помощью менеджера пакетов из базового репозитория:

# dnf install dhcp-server -y

– установка DHCP сервера для CentOS/RHEL 8

# yum install dhcp -y

– установка DHCP сервера для CentOS/RHEL 7

установка dhcp-server в centos

Конфигурационный файл DHCP сервиса — /etc/dhcp/dhcpd.conf. Откройте в него и добавьте описание DHCP зоны (IP подсети) с настройками, которые ваш DHCP сервер должен выдавать клиентам.

# nano /etc/dhcp/dhcpd.conf

  subnet 15.10.0.0 netmask 255.255.255.0 { range 15.10.0.100 15.10.0.200; option domain-name-servers 77.88.8.8, 8.8.8.8; option domain-name "winitpro.ru"; option routers 15.10.0.1; option broadcast-address 15.10.0.255; 

default-lease-time 3600; max-lease-time 7200; }

Краткое описание настраиваемых параметров DHCP зоны:

  • subnet
    – адресное пространство (IP сеть), которое обслуживает данный DHCP сервер;
  • range
    – диапазон IP адресов, из которого будут назначаться адреса устройствам;
  • option domain-name-servers
    – адреса DNS серверов, которые будут использоваться клиентом;
  • option domain-name
    — параметр задает доменное имя, которое клиенты используют при запросах к DNS;
  • option routers
    — IP адрес шлюза, который будет использоваться DHCP клиентом
  • option broadcast-address
    — широковещательный (бродкаст) адрес IP сети;
  • default-lease-time, max-lease-time
    – время и максимальное время (в сек) на которое выдается IP адрес клиенту. После истечения этого времени IP клиент должен продлить срок аренды.

Некоторые опции DHCP можно задать на уровне глобальных параметров DCHP сервера (в начале файла dhcpd.conf). Например:

  option domain-name "winitpro.ru";
option domain-name-servers 77.88.8.8, 8.8.8.8;
default-lease-time 3600;
max-lease-time 7200;
authoritative;
 log-facility local7;

Для проверки корректность настройки конфигурационного файла DHCP сервера используется команда:

# dhcpd -t -cf /etc/dhcp/dhcpd.conf

dhcpd -t -cf проверка конфигурационного файла DHCP сервиса

На скриншоте с цифрой 1 показан пример проверки при корректной настройке конфигурационного файла DHCP. В сегменте с цифрой 2 показано, что при наличии ошибок в конфигурации утилита dhcpd указывает на них.

Добавьте сервис dhcpd в автозагрузку и запустите:

# systemctl enable dhcpd
# systemctl start dhcpd

У меня сразу сервис не запустился. Служба dhcpd вернула ошибку:

  Not configured to listen on any interfaces!

dhcpd Not configured to listen on any interfaces!

# nano /etc/sysconfig/dhcpd

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

  DHCPDARGS=ens5

Где ens5
— это имя сетевого интерфейса, котором будет обслуживать DHCP запросы.

Затем создайте файл конфигурации сетевого интерфейса (если он не создан):

# nano /etc/sysconfig/network-scripts/ifcfg-ens5

  TYPE="Ethernet"
DEVICE="ens5"
ONBOOT="yes"
 BOOTPROTO="static"
IPADDR="15.10.0.5"
NETMASK="255.255.255.0"
DNS1=77.88.8.8

настройка интерфейса на dhcp сервере

Выполните рестарт сети:

# service network restart

– для CentOS/RHEL 7

# systemctl restart NetworkManager

– для CentOS/RHEL 8

Когда настройки сети будут выполнены и применены, можно запустить сам сервис dhcpd:

# systemctl start dhcpd.service

запуск сервера dhcpd в centos linux

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

# firewall-cmd --permanent --add-service=dhcp
# firewall-cmd --reload

Если вы используете другой файерволл, откройте 67 UDP порт на нем.

Резервирование IP адресов на DHCP сервере

DHCP сервер выдает динамические IP адреса. Это значит, что IP адрес, назначаемый конкретному клиенту может иногда меняться. В конфигурационном файле DHCP сервера вы можете зарезервировать (зафиксировать) для любого клиента конкретный статический IP адрес. Просто добавьте в файл /etc/dhcp/dhcpd.conf следующие строки:

  host host1 {
 hardware ethernet 52:54:00:b6:89:82; fixed-address 15.10.0.101;
}

Как вы видите, нужно указать MAC-адрес устройства и зафиксированный за ним IP адрес из зоны DHCP, которую обслуживает сервер.

Не обязательно располагать отдельный DHCP сервер в каждом сегменте сети. Один DCHP сервер может обслуживать любое количество IP-подсетей. В этом случае на уровне маршрутизатора IP сегмента нужно настроить пересылку DHCP запросов на ваш сервер (функция DHCP-relay или ip helper-address в терминологии Cisco).

В конфигурационном файле dhcpd можно добаить несколько зон DHCP. Просто добавьте еще один блок:

  subnet xxx.xxx.xxx.xxx netmask 255.xxx.xxx.xxx {.}

# nano /etc/dhcp/dhcpd.conf

добавить дополнительные зоны в конфигурационный файл dhcpd

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

  include "/etc/dhcp/conf.d/subnets.conf";

В файле subnets.conf можно описать все DCHP зоны, которые обслуживаются вашим сервером.

Для просмотра списка IP адресов, которые выданы клиентам вашим DHCP-сервером, используйте команду:

# cat /var/lib/dhcpd/dhcpd.leases

Все логи DHCP по умолчанию пишутся в файл /var/log/messages. Для фильтрации событий dhcp можно использовать команду:

Или перенастроить сохранение журнала в отдельный файл, через rsyslog. В файл /etc/rsyslog.conf добавьте строку:

  local6.* /var/log/dhcp.log

А в файл /etc/dhcp/dhcpd.conf
строку:

  log-facility local6;

Перезапустите оба сервиса:

# systemctl restart rsyslog
# systemctl restart dhcpd

Теперь все события DHCP сервера пишутся в отдельный лог-файл.

# cat /var/log/dhcp.log

  Oct 28 00:28:02 server2 dhcpd[2981]: Internet Systems Consortium DHCP Server 4.3.6
Oct 28 00:28:02 server2 dhcpd[2981]: Copyright 2004-2017 Internet Systems Consortium.
Oct 28 00:28:02 server2 dhcpd[2981]: All rights reserved.
Oct 28 00:28:02 server2 dhcpd[2981]: For info, please visit https://www.isc.org/software/dhcp/
Oct 28 00:28:02 server2 dhcpd[2981]: Source compiled to use binary-leases
Oct 28 00:28:02 server2 dhcpd[2981]: Wrote 0 deleted host decls to leases file.
Oct 28 00:28:02 server2 dhcpd[2981]: Wrote 0 new dynamic host decls to leases file.
Oct 28 00:28:02 server2 dhcpd[2981]: Wrote 0 leases to leases file.
Oct 28 00:28:02 server2 dhcpd[2981]: Listening on LPF/ens5/52:54:00:80:be:db/15.10.0.0/24
Oct 28 00:28:02 server2 dhcpd[2981]: Sending on LPF/ens5/52:54:00:80:be:db/15.10.0.0/24
Oct 28 00:28:02 server2 dhcpd[2981]: Sending on Socket/fallback/fallback-net
Oct 28 00:28:02 server2 dhcpd[2981]: Server starting service.

На этом настройка и отладка DHCP-сервера окончена.

Получение сетевых настроек DCHP клиентом

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

# nano /etc/sysconfig/network-scripts/ifcfg-ens5

Внесите в него следующие параметры:

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

Сохраните файл и перезапустите сетевой сервис:

# systemctl restart NetworkManager

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

  3: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:b6:89:82 brd ff:ff:ff:ff:ff:ff
inet 15.10.0.101/8 brd 15.255.255.255 scope global noprefixroute ens5

Несколько полезных команд для DHCP-клиента:

# dhclient -r ens5

– освободить текущий IP адрес

# dhclient -v ens5

– получить новый IP адрес у DHCP сервера

# dhclient -v ens5 -H testserver

– указать имя клиента

Имя клиента вы можете прописать на сервере(dhcp-клиенте) в файле /etc/dhcp/dhclient.conf, Добавьте строку:

  send host-name "testserver";

# dhclient -r ens5
# dhclient -v ens5

Для установки и настройки роли DHCP-сервера имеем подготовленный сервер с операционной системой Windows Server 2019.

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

Шаг 1. На первом этапе установим роль DHCP-сервера, для этого в окне “Диспетчер серверов” выбираем «Добавить роли и компоненты».

Установка роли DHCP

Рисунок 1 — Установка роли DHCP

Шаг 2. Обращаем внимание перед установкой роли на предупреждение, затем нажимаем «Далее».

Шаг 3. Устанавливаем чекбокс «Установка ролей или компонентов», затем нажимаем «Далее».

Шаг 4. Выбираем сервер, на который будут установлены роли и компоненты — нажимаем «Далее».

Шаг 5. Выбираем роль сервера, в нашем случае DHCP-сервер. Нажимаем «Далее».

Шаг 6. Выбрав роль DHCP” появится “Мастер добавления ролей и компонентов” для выбранных ролей сервера. Нажимаем «Добавить компоненты».

Шаг 7. Требуемая роль и компоненты были выбраны ранее, Нажимаем «Далее».

Шаг 8. Обращаем внимание на предупреждение DHCP-сервера, затем «Далее».

Шаг 9. Ставим «чекбокс» напротив «Автоматический перезапуск конечного сервера, если требуется», нажимаем «Установить». В результате произойдет установка выбранных ролей сервера.

Шаг 10. Далее после установки компонента наживаем «Завершение настройки DHCP».

Шаг 11. Обращаем внимание на требования после завершения настройки DHCP-сервера, жмем «Далее».

Шаг 12. На данном этапе нажимаем «Закрыть». Установка роли завершена.

На этом этапе приступим непосредственно к настройке роли DHCP.

Протокол DHCP (Dynamic Host Configuration Protocol) используется для автоматического назначения сетевых настроек (IP адрес, маска подсети, шлюз, DNS сервера и т.д.) устройствам в вашей сети (компьютеры, ноутбуки, сканеры, принтеры и т.д.). Также DHCP сервер позволяет более эффективно использовать адресное пространство, избегать конфликта IP адресов в сети и централизованно управлять сетевыми параметрами на клиентских устройствах.

Установка роли DHCP сервера в Windows Server 2019/2016

В этом примере мы установим DHCP сервер на хосте с Windows Server 2019 и IP адресом 192.168.13.4. Вы можете использовать как Server Core версию, так и Full GUI. В маленькой инфраструктуре допустимо устанавливать DHCP сервер на сервер с ролью контроллера домена Active Directory.

Обязательно назначьте статический IP адрес серверу с ролью DHCP сервер. При установке роли DHCP из консоли PowerShell на сервере с автоматическим получением IP адреса появляется предупреждение:

  Configure at least one static IP address on your computer before installing DHCP.
WARNING: The following recommended condition is not met for DHCP: No static IP addresses were found on this computer.  If the IP address changes, clients might not be able to contact this server.  Please configure a static IP address before installing DHCP Server.

Установить роль DHCP Server
можно из консоли Server Manager (Add Roles and Features -> Server Roles).

установка роли DHCP server в windows server 2019

После установки роли DHCP роли нужно выполнить Post-Deployment Configuration. Для этого в консоли Server Manager щелкните по уведомлению и выберите Complete DHCP configuration.

выберите Complete DHCP configuration

Если у вас нет прав на авторизацию DHCP в AD, вы можете указать, чтобы ваш DHCP сервер запускался без проверки авторизации в домене:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters" -Name DisableRogueDetection -Value 1 -Force

авторизовать сервер DHCP в Active Directory

Также вы можете установить и настроить DHCP роль в Windows Server из консоли PowerShell.

Установка роли DHCP:

Install-WindowsFeature DHCP –IncludeManagementTools

Проверьте, что роль и инструменты управления RSAT-DHCP установлены:

установка DHCP сервера с помощью powershell

Авторизуйте DHCP сервер в Active Directory (укажите DNS имя сервера и IP адрес, который будет использоваться DHCP клиентами):

Add-DhcpServerInDC -DnsName hq-dc01.contoso.com -IPAddress 192.168.13.4

Создайте локальные группы безопасности DHCP сервера:

Чтобы Server Manager перестал показывать уведомление о том, что DHCP роль требует настройки, выполните команду:

Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\ServerManager\Roles\12 -Name ConfigurationState -Value 2

Перезапустите службу DHCPServer:

Restart-Service -Name DHCPServer -Force

База данных и логи DHCP сервера находятся в каталоге %systemroot%\system32\dhc.

  • dhcp.mdb — файл базы данных сервера DHCP’;
  • j50.log – транзакционный журнал (используется при восстановлении конфигурации DHCP);
  • j50.chk — файл контрольной точки;
  • tmp.edb — временный рабочий файл DHCP-сервера.

Настройка DHCP областей в Windows Server

После установки роли DHCP вам нужно создать DHCP области ( Scopes), которые описывают диапазоны IP адресов и другие настройки, выдающиеся сервером клиентам.

Для управления сервером DHCP используется консоль dhcpmgmt.msc (вы можете управлять DHCP сервером локально или с удаленного компьютера с установленным RSAT). Запустите консоль DHCP, разверните ваш сервер -> IPv4.

Чтобы создать новую область выберите New Scope.

создать новую dhcp область

Укажите название DHCP области.

название DHCP области

Укажите диапазон IP адресов, который будет выдаваться этой областью и маску сети. В этом примере я хочу использовать эту DHCP область для обслуживания подсети 192.168.100.0/24. В рамках этой сети DHCP сервером будет назначаться динамические IP адреса из диапазона 192.168.100.50 — 192.168.100.250. В следующем окне можно добавить исключения в этот диапазон ( Add Exclusions and Delay).

диапазон IP адресов области DHCP

Далее нужно указать длительность аренды ( Lease Duration) IP адреса DHCP клиентом (по умолчанию 8 дней, менять без особой необходимости не нужно).

срока аренды адреса на dhcp

Укажите, что вы хотите настроить дополнительный параметры DHCP области.

Укажите IP адрес шлюза в подсети, который должен назначаться клиентам (в нашем примере это 192.168.100.1).

задать адрес шлюза по-умолчанию для dhcp области

Затем укажите имя домена и адреса DNS серверов, которые будут назначены клиентам DHCP.

настройки DNS для DHCP области

Осталось активировать DHCP область (разрешить ей обслуживать клиентов).

активировать DHCP зону

DHCP сервер может выдавать клиентам различный настройки (кроме IP адреса). Для этого используются Scope Options.

В Windows Server DHCP можно настроить глобальные настройки области или Scope Options для каждой области.

опции DHCP scope

Ранее мы уже настроили три опции области:

  • 003 Router
  • 006 DNS Server
  • 015 DNS Domain Name

Можно добавить и другие опции (NTP сервера, PXE и т.д.).

В разделе Server Options DHCP сервера можно настроить глобальные опции, которые будут наследуются всеми областями. Но вы можете переопределить глобальные настройки в настройках каждой области (опции области имеют приоритет над опциями сервера).

настроить параметры DHCP сервера

Один DHCP сервер может обслуживать сотни удаленных подсетей и VLAN. Поэтому вы можете создать на нем несколько областей. Главное, чтобы в каждой из подсетей был настроен ретранслятор (DHCP relay agent), который пересылает широковещательные DHCP-запросы на указанный DHCP сервер. В терминах Cisco DHCP ретранслятор называется ip helper. Вы можете настроить DHCP Relay даже на Windows Server.

Протокол DHCP в качестве транспорта использует протокол UDP. Пакеты от клиента к серверу передаются по порту 67 UDP, обратно через UDP 68

Резервация IP адресов на DHCP сервере

По умолчанию DCHP сервер выдает клиентам динамические адреса. Это означает что IP адрес у любого клиента может меняться. Если вы хотите, чтобы определенные устройства всегда получали от DHCP сервера один и тот же адрес, вы можете его зарезервировать (например, для сетевых принтеров, которые настроены у пользователей).

Для DHCP резервации выберите область и перейдите в секции Reservation. В меню выберите New Reservation.

Резервация IP адреса на DHCP

Укажите MAC адрес устройства для резервации IP адреса на DHCP

Также вы можете зарезервировать текущий динамический адрес за устройством, найдя его в разделе Address Leases. Щелкните по устройству и выберите Add to Reservation.

Add to Reservation

Настройка и управление DHCP сервером с помощью PowerShell

Все операции по настройке и управлению DHCP сервером на Windows Server 2019/2016 можно выполнять из консоли PowerShell. Рассмотрим основные команды управления DHCP. Для этого используется модуль DHCPServer. Импортируйте модуль в сессию:

Вывести полный список командлетов в моделе DHCP можно так:

Get-Command -Module DHCPServer

PowerShell модуль DHCPServer

Следующая команда выведет список авторизованных DHCP серверов в Active Directory:

Вывысти список DHCP серееров в домене

Вывести список DHCP областей на указанном сервере:

Get-DhcpServerv4Scope –ComputerName msk-dhcp1

Если нужно показать все параметры области (Delay, Description, Name и т.д.):

Список областей на DHCP сервере

Если нужно отобразить данные о IPv6 областях:

Получить настройки для конкретной области:

Get-DhcpServerv4Scope –ComputerName msk-dhcp1 –ScopeID 10.10.1.0

Создадим новую (неактивную) область с диапазоном адресов с 192.168.113.50 до 192.168.113.250:

Add-DhcpServerv4Scope -Name “Brahch1 192.168.113.0” -StartRange 192.168.113.50 -EndRange 192.168.113.250 -SubnetMask 255.255.255.0 -State InActive

Настроить следующие параметры DHCP сервера: DNS сервер, домен и адрес шлюза по-умолчанию:

Set-DhcpServerv4OptionValue -ScopeID 192.168.113.0 -DnsDomain contoso.com -DnsServer 192.168.13.4 -Router 192.168.113.1

Добавить исключения в DHCP область:

Add-DhcpServerv4ExclusionRange -ScopeID 192.168.113.0 -StartRange 192.168.113.90 -EndRange 192.168.113.100

Активировать DHCP область:

Set-DhcpServerv4Scope -ScopeID 192.168.113.0 -State Active

Add-DhcpServerv4Scope - создать и настроить области на DHCP сервере командами PowerShell

Для удобства можно использовать такую команду PowerShell при создании новой области:

Опции для DHCP сервера добавляется так (к примеру, WPAD):

Add-DhcpServerv4OptionDefinition -ComputerName msk-dhcp1 -Name WPAD -OptionId 252 -Type String

Вывести список настроенных опций DHCP сервера можно так:

Выведем список настроенных параметров зоны:

Показать текущий список арендованных адресов для области 10.10.1.0:

Get-DHCPServerv4Lease -ScopeId 10.10.1.0 -ComputerName msk-dhcp1

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

Создать DHCP резервацию для клиента, которому назначен динамический IP адрес 10.10.1.88 (конвертировать выданный адрес в зарезервированный):

Можно массово зарезервировать IP адреса для компьютеров по списку из csv файла. Для этого создайте текстовый файл в формате:

  ScopeId,IPAddress,Name,ClientId,Description
10.10.1.0,10.10.1.88,Client1,ba-ab-5c-3d-4e-6f,Reservation PC-msk-s1
10.10.1.0,10.10.1.89,Client2,ba-ab-5c-5d-2e-3f,Reservation PC-msk-s2

Сохраните файл с именем
c:\dhcp\DHCPReservations.csv

и запустите следующую команду, которая импортирует данные из csv файла
и создаст DHCP резервации для клиентов:

Отключить область на DHCP сервере:

Set-DhcpServerv4Scope -ComputerName msk-dhcp1-ScopeId 10.10.1.0-State InActive

Удалить область с DHCP сервера:

Remove-DHCPServerv4Scope -ComputerName msk-dhcp1-ScopeId 10.10.1.0 -Force

Возможно получить статистику DHCP сервера (количество областей, резерваций, процент использования адресов и пр.).

Get-DhcpServerv4Statistics -ComputerName msk-dhcp1

Статистика использования DHCP сервера

Аналогичная информация для конкретной области может быть получена с помощью командлета Get-DhcpServerv4ScopeStatistics.

Конфигурацию DHCP сервера можно экспортировать в указанный XML файл с помощью команды:

Export-DHCPServer -ComputerName msk-dhcp1 -File C:\dhcp\dhcp-export.xml

Совет
. Заданием с такой командой в планировщике задач можно реализовать регулярное резервное копирование конфигурации DHCP сервера.

В дальнейшем эти настройки DHCP сервера можно импортировать (перенести) на другой DHCP сервер:

Import-DHCPServer -ComputerName msk-dhcp2 -File C:\dhcp\dhcp-export.xml -BackupPath C:\dhcpbackup\

Протокол DHCP является широковещательным ( FAQ по протоколу DHCP
) и по умолчанию его пакеты не пересылаются маршрутизаторами из одной сети в другую (маршрутизатор разбивает на части широковещательный домен). Однако это не означает, что в каждой подсети должен находиться отдельный DHCP сервер. Ведь, согласитесь, было бы нелогично в сложных и распределенных сетях со множеством подсетей размещать в каждой подсети с клиентами отдельный DHCP сервер (это неудобно с точки зрения управления и лишнего количества администрируемых единиц оборудования). Гораздо более изящнее и удобнее было бы иметь в сети один DHCP сервер, который будет можно централизованно администрировать, и кроме того, обеспечить его высокую доступность за счет кластеризации.

Что такое DHCP relay и зачем он нужен?

Выходом из подобной ситуации является размещение в сети агента-ретранслятора DHCP (relay agent). Relay agent представляет собой некое промежуточное устройство, которое может пересылать широковещательные DHCP-запросы между клиентом и сервером DHCP, находящихся в различных широковещательных доменах. Т.е. D HCP relay agent получает от клиента (в этом же сегменте сети) широковещательный пакет на поиск и получение DHCP-адреса и пересылает этот запрос определенному DHCP серверу (указывается в настройках ретранслятора). Далее ответы от DHCP-сервера
будут направлены ретранслятору, который передаст их конечному хосту. Технология DHCP Relay Agent определена в стандарте RFC 1542 («Clarifications and Extensions for the Bootstrap Protocol.»).

В качестве DHCP Relay Agent обычно используют маршрутизаторы (большинство современных маршрутизаторов совместимы с RFC 1542 и могут работать в качестве Relay агента). В том случае, если настроить Relay на маршрутизаторе по каким-либо причинам невозможно, в качестве Relay агента можно настроить компьютер с серверной ОС Windows. Попробуем настроить DHCP Relay Agent на Windows Server 2012.

Настройка DHCP Relay на Windows Server 2012

Несколько требований, которые необходимо учитывать при настройке агентов DHCP relay на базе Windows Server:

  • Отдельный агент-ретранслятор DHCP необходимо размещать в каждой IP подсети.
  • На центральном DHCP сервер нужно создать отдельную DHCP область (Scope) для каждой из обслуживаемых подсетей. dhcp области на сервере
  • DHCP relay agent нельзя установить на сервере Windows Server с ролью DHCP, ICS (Internet connection sharing) или c включенной в автоматическом режиме трансляции адресов NAT (Network Address Translation)

DCHP Relay Agent является одной из функций службы Routing and Remote Access (RRAS). Поэтому предварительно необходимо установите роль RRAS (с дефолтными настройками), после чего запустить MMC оснастку Routing and Remote Access. Запустить mmc консоль rras в windows 2012

В оснастке RRAS разверните ветку IPv4
, щелкните правой кнопкой мыши по элементу General
и в контекстном меню выберите пункт New Routing Protocol
, выберите DHCP Relay Agent
и нажмите ОК.

dhcp relay agent в windows server 2012

Щёлкните ПКМ по элементу DHCP Relay Agent и выберите пункт New Interface, укажите сетевой интерфейс, на котором будет слушать Relay –агент.

 

Затем откройте окно свойств DHCP Relay Agent и укажите ip адрес DHCP сервера, на который нужно перенаправлять все DHCP запросы от клиентов.

Настройка пересылки dhcp запросов на Windows 2012

На этом настройка DHCP-ретранслятора закончена и можно переходить к тестированию его работы.

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

Но сначала немного истории.

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

• При разделении области имеющиеся адреса используются не самым оптимальным образом;

• Клиенты не могут продлить аренду с имеющимся адресом;

• Проблемы при использовании резервирования.

Недостатки конечно некритичные, но доставляющие много неудобств. Видимо поэтому в Windows Server 2012 была добавлена новая фича под названием DHCP failover, предназначенная для обеспечения высокой доступности DHCP-серверов. D HCP failover позволяет обеспечить высокую доступность службы DHCP и не имеет недостатков, описанных выше. При использовании DHCP failover два DHCP-сервера реплицируют между собой текущие настройки и данные об аренде, что позволяет одному серверу обслуживать всех клиентов (выдавать новые адреса, продлевать аренду и т.п.) в том случае, когда другой недоступен.

DHCP failover может работать в двух режимах.

Режим балансировки (Load balance)

В этом режиме область делится на две части в определенной пропорции и обслуживается обоими серверами одновременно. При получении запроса каждый сервер вычисляет хэш MAC-адреса клиента в соответствии с алгоритмом, описанным в RFC 3074. M AC-адреса хэшируются в диапазоне от 1 до 256, балансировка происходит по следующему принципу: если нагрузка распределена в пропорции 50\50 и если при вычислении хэша получено значение от 1 до 128, то отвечает первый сервер, если же от 129 до 256 — то отвечает второй. При изменении коэффициента распределения нагрузки распределение хэш-блоков между серверами изменяется в той же пропорции. Такой подход гарантирует, что за одного конкретного клиента отвечает только один сервер.

Если же один из серверов перестает отвечать, то второй забирает всю область и продолжает обслуживать как своих клиентов, так и клиентов партнера.

Режим горячей замены (Hot Standby)

В таком режиме область обслуживается одним сервером (основным). В отличие от режима балансировки в режиме горячего резерва сервера не вычисляют хэш MAC-адреса клиента. Основной сервер отвечает на все запросы клиентов, резервный в нормальном состоянии не отвечает вообще. Только когда основной сервер становится недоступным, резервный переходит в состояние потери партнера (PARTNER_DOWN) и начинает отвечать на запросы клиентов. Когда основной сервер возвращается в строй, резервный переходит в режим ожидания и перестает обслуживать клиентов.

Обратите внимание, что термин основной\резервный относится к конкретной DHCP-области. К примеру DHCP-сервер может являться основным для одной области и резервным для другой.

От теории перейдем к практике. Для создания отказоустойчивой конфигурации возьмем 2 сервера — SRV1 и SRV2, находящихся в одной подсети. На SRV1 создаем область (Scope) и полностью настраиваем ее, на SRV2 только устанавливаем роль DHCP, никаких настроек не производим. После этого приступаем к настройке DHCP failover.

Настройка DHCP failover

Для начала настроим режим балансировки (Load balance). Для этого заходим на сервер SRV1 и открываем оснастку DHCP. Выбираем область, кликаем на ней правой клавишей и в контекстном меню отмечаем пункт «Configure Failover».

запуск мастера настройки

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

выбор области для настройки dhcp-failover

Добавляем сервер-партнер, на котором будет находится второй экземпляр области.

выбор сервера-партнера

На следующем этапе выбирается режим работы и основные настройки.

В качестве имени для создаваемых доверительных отношений (Relationship Name) по умолчанию используются имена серверов, но в принципе можно указывать что угодно. Режим работы (Mode) выбираем балансировку (Load balance) и в поле «Load Balance Percentage» указываем в процентах пропорции, в которых будет разделена область между двумя серверами. По умолчанию нагрузка делится в соотношении 50\50, но мы сделаем по привычной схеме 80\20, т.е. 80% обслуживает основной сервер и 20% резервный.

Теперь два очень важных параметра, на которых надо обратить внимание:

• State Switchover Interval — интервал времени, по истечении которого партнер считается недоступным (PARTNER_DOWN). Если не задавать этот параметр, то при падении партнера автоматического переключения не произойдет и переключатся придется вручную;

• Maximum Client Lead Time — очень интересный параметр, определяющий срок продления аренды в случае падения основного сервера. Когда клиент пытается продлить аренду, полученную на основном сервере, то резервный сервер продлевает ее не на срок аренды, указанный в свойствах области, а на время, указанное в данном параметре. И так пока основной сервер не восстановит работу. Также этот параметр определяет, сколько времени сервер будет ждать возвращения партнера из состояния PARTNER_DOWN прежде чем забрать контроль над всей областью. А еще этот параметр определяет время перехода в нормальное состояние при возвращении партнера.

Примечание. 
Параметры State Switchover Interva и Maximum Client Lead Time определяют скорость срабатывания failover-а. Каждый из партнеров обслуживает свой диапазон адресов до того момента, пока один из серверов не перейдет в состояние PARTNER_DOWN  и не пройдет время, указанное в параметре Maximum Client Lead Time. Только после этого ″оставшийся в живых″ сервер возьмет на себя контроль над всей областью.

выбор режима и настройка параметров

В заключение проверяем настройки, подтверждаем создание failover-а

подтверждение настроек

и ждем завершения процесса.

завершение настройки

Посмотреть настройки и текущее состояние партнеров можно в свойствах области, на вкладке «Failover».

просмотр параметров и состояния dhcp-failover

То же самое можно сделать с помощью PowerShell. Создаем доверительные отношения:

настройка dhcp-failover с помощью PowerShell

Теперь сменим конфигурацию, сначала отключив failover. Для этого в оснастке DHCP кликаем на область и выбираем пункт меню «Deconfigure Failover».

отключение dhcp-failover

Затем подтверждаем удаление доверительных отношений,

запрос на подтверждение отключения dhcp-failover

еще раз подтверждаем удаление

финальный запрос на отключение запрос на подтверждение отключения dhcp-failover

и ждем завершения. При удалении на сервере-партнере будут удалены все области, для которых был настроен failover.

завершение отключения dhcp-failover

Для удаления с помощью PowerShell достаточно выполнить одну команду:

Remove-DhcpServerv4Failover -Name ″srv1-srv2″ -Force

отключение dhcp-failover с помощью PowerShell

Теперь настроим DHCP failover в режиме Hot standby. Для этого опять запускаем мастер на SRV1 и выбираем сервер-партнер. Обратите внимание, что если между серверами ранее уже были настроены доверительные отношения, то их можно использовать повторно.

повторное включение dhcp-failover

Выбираем режим Hot standby и производим настройки. Для режима Hot standby они несколько отличаются:

настройка параметров

Дальше все так же — проверяем настройки, подтверждаем их

подтверждение настроек

и ждем завершения.

завершение настройки

То же из консоли PowerShell:

настройка dhcp-failover с помощью PowerShell

Изменить настройки и режим работы DHCP failover можно ″на лету″, не удаляя текущую конфигурацию. Для этого в оснастке управления надо выбрать раздел IPv4 (или IPv6, если failover настраивался для этого протокола), кликнуть правой клавишей мыши и выбрать пункт «Properties».

переход к редактированию настроек dhcp-failover

Затем перейти на вкладку «Failover», выбрать доверительные отношения и нажать «Edit».

выбор dhcp-failover для редактирования

В открывшемся окне мы можем поменять абсолютно любые настройки и даже изменить режим работы failover-а, например перейти с Load Balance на Hot Standby.

изменение режима работы dhcp-failover

А теперь с помощью PowerShell вернемся обратно к режиму балансировки, попутно изменив интервалы MaxClientLeadTime и StateSwitchInterval:

Set-DhcpServerv4Failover -Name ″srv1-srv2″ -Mode LoadBalance -LoadBalancePercent 80 -MaxClientLeadTime 00:02:00 -StateSwitchInterval 00:02:00 -Force

изменение режима работы dhcp-failover с помощью PowerShell

Тестирование работы DHCP failover

В завершение давайте протестируем работу DHCP failover. На предыдущем шаге мы уменьшили до 2 минут временные интервалы, отвечающие за переключение. Также для ускорения процесса в свойствах области уменьшим время аренды до 10 минут.

текущие настройки аренды

Теперь зайдем в свойства DHCP failover и проверим состояние серверов-партнеров.

текущее состояние failover

Запомним полученные настройки на клиенте. Как видите, клиент имеет адрес 10.0.0.20, полученный с сервера 10.0.0.1 (SRV1).

текущее состояние клиента

Теперь погасим сервис DHCP на SRV1 и перейдем на SRV2. Здесь откроем оснастку DHCP и перейдем в настройки доверительных отношений. Как видите, после потери связи с партнером здесь стала активна кнопка ″Change to partner down″. С помощью этой кнопки можно перевести сервер в состояние PARTNER_DOWN, не дожидаясь пока истечет State Switcover Interval.

перевод партнера в состояние down

Еще раз проверяем состояние серверов. Резервный сервер перешел в состояние Partner down и готов к захвату контроля над областью.

состояние failover после отключения партнера

состояние клиента после отключения партнера

состояние клиента после включения партнера

Вот так и работает DHCP-failover.

И снова о DHCP. В предыдущей статье
мы рассмотрели базовые принципы работы этого протокола. Сегодня перейдем к практике и настроим DHCP-сервер на базе Windows Server 2016.

Служба DHCP входит в состав Windows Server и является одной из серверных ролей, поэтому первое, что нам надо сделать — эту роль установить.

Установка

Открываем оснастку Server Manager, запускаем мастер добавления ролей и компонентов (Add Roles and Features Wizard) и выбираем тип установки «Role-based or feature-based installation».

запуск мастера добавления ролей и компонентов

Указываем сервер, на котором будет производиться установка.

выбор сервера

В разделе «Server Roles» отмечаем отмечаем для установки пункт «DHCP Server».

выбор роли DHCP

В процессе установки мастер напомнит о необходимости заранее спланировать структуру сети, а также о том, что для работы DHCP на сервере должен быть хотя бы один статический IP адрес.

требования при установки DHCP

Проверяем список устанавливаемых компонентов и и запускаем установку.

проверка и запуск установки

По завершении установки не надо сразу закрывать окно мастера, поскольку в нем будет предложено произвести первоначальную настройку DHCP. Для этого надо кликнуть по ссылке «Complete DHCP configuration».

завершение установки и запуск первоначальной настройки

Если же вы поторопились и закрыли окно, то найти ссылку можно в главном окне Server Manager, кликнув на значок уведомления.

запуск первоначальной настройки из основного окна

Переход по ссылке запускает еще один мастер первоначальной настройки DHCP (DHCP Post-Install configuration wizard). В процессе первоначальной настройки производится два действия:

1. Создание групп безопасности, которым будет разрешено управлять данным DHCP сервером. Всего создаются 2 группы:

2. Авторизация DHCP сервера в домене Active Directory. Авторизация необходима для того, чтобы предотвратить появление в сети ″левых″ DHCP серверов. Если сервер является членом домена, то при запуске служба DHCP обращается к AD для того, чтобы просмотреть список авторизованных серверов. Если она не обнаруживает в списке свой адрес, то считает себя неавторизованной и останавливает работу. Таким образом, пока сервер не пройдет авторизацию, служба DHCP на нем просто не запустится.

мастер первоначальной настройки DHCP сервера

Сама процедура настройки заключается в том, чтобы указать учетные данные пользователя, от имени которого будет производится настройка, нажать кнопку «Commit»

выбор пользователя для авторизации в AD

и дождаться завершения процесса.

завершение первоначальной настройки

Все то же самое можно сделать с помощью PowerShell, нужно выполнить всего несколько команд. Установка роли DHCP:

Add-WindowsFeature -Name DHCP -IncludeManagementTools

Add-DhcpServerInDC -DnsName SRV1.test.local -IPAddress 10.0.0.1

Создание групп безопасности:

Изменение состояния конфигурации сервера. Без этого он считается несконфигурированным и Server Manager будет постоянно выдавать предупреждение о необходимости настройки:

установка и настройка DHCP с помощью PowerShell

Настройка

Для настройки сервера нам понадобится оснастка DHCP. Запустить ее можно из меню «Tools» в Server Manager, либо нажав клавиши Win+R и выполнив команду dhcpmgmt.msc.

запуск оснастки управления DHCP

создание новой области DHCP

Запускается очередной мастер.

мастер создания области

Задаем имя области и, при необходимости, ее описание.

выбор имени области

Затем указываем диапазон IP адресов и префикс\маску подсети. На всякий случай напомню, что маска определяет возможное количество адресов в сети, например сеть с префиксом 24 содержит 254 адреса. Кстати, вовсе не обязательно выделять под область все имеющиеся адреса, можно оставить десяток-другой на всякий случай, например для серверов или сетевых устройств.

диапазон IP адресов

Здесь же можно задать задержку ответа DHCP-сервера — количество миллисекунд, которое выжидает сервер перед тем, как ответить на запрос клиента.

Примечание. 
В DHCP существует понятие раздельной области, когда одна область разбита на две части (обычно в соотношении 80/20) и обслуживается двумя DHCP-серверами. Такая конфигурация нужна для того, чтобы в случае недоступности первого сервера второй продолжал выдачу адресов из данной области. Но поскольку необходимо, чтобы все запросы по возможности обслуживал первый (основной) сервер, на втором выставляется задержка, чтобы он не смог ответить раньше первого.

исключения и задержка

На следующем шаге указываем время аренды (Lease Duration) — срок, на который клиенту выдается IP адрес. Выбор этого параметра напрямую зависит от особенностей обслуживаемой сети, так при наличии большого числа часто меняющихся клиентов (напр. публичная сеть) время аренды нужно сделать поменьше, а если сеть статична и редко изменяется (сеть предприятия), то время аренды можно увеличить. По умолчанию в Windows установлено 8 дней.

время аренды

Теперь перейдем к настройке дополнительных параметров области.

настройка дополнительных опций для области

Сначала указываем адрес шлюза по умолчанию (Default Gateway).

шлюз по умолчанию

Затем вводим имя домена и добавляем DNS-сервера. Для добавления можно указать имя сервера и нажать «Resolve», либо указать IP адрес.

DNS сервер

По аналогии с DNS можно добавить WINS сервера, если конечно они у вас есть.

WINS сервер

Можем сразу активировать область, либо отложить это действие.

активация созданной области

На этом настройка DHCP сервера завершена, остается только проверить работу сервера.

завершение создания области

Посмотреть клиентов, получивших адреса из данной области, можно в разделе «Address Leases». В моей тестовой сети есть всего один клиент, который успешно получил свой IP адрес.

проверка выдачи адресов

Ну и на всякий случай зайдем на клиента и проверим, что он успешно получил свой адрес.

проверка настройки на клиенте

Все настройки можно произвести с помощью PowerShell. Cоздаем область (неактивную):

Add-DhcpServerv4Scope -Name Workstations -StartRange 10.0.0.20 -EndRange 10.0.0.200 -SubnetMask 255.255.255.0 -LeaseDuration 00:30 -State InActive

Add-DhcpServerv4ExclusionRange -ScopeID 10.0.0.0 -StartRange 10.0.0.90 -EndRange 10.0.0.100

Добавляем доп. опции (DNS, gateway и т.п.):

Set-DhcpServerv4OptionValue -ScopeID 10.0.0.0 -DnsDomain test.local -DnsServer 10.0.0.1 -Router 10.0.0.1

И активируем область:

Set-DhcpServerv4Scope -ScopeID 10.0.0.0 -State Active

создание области с помощью PowerShell

Посмотреть список клиентов можно также из консоли, командой:

Get-DhcpServerv4Lease -ScopeID 10.0.0.0

проверка настроек DHCP с помощью PowerShell

Стоит уточнить, что хотя в статье использовался Windows Server 2016, настройка для Windows Server 2008-2012 ничем особо не отличается.

На этом все, на сегодня. А в следующей статье мы рассмотрим развертывание двух DHCP-серверов в отказоустойчивой конфигурации.

Александр

Здравствуйте, меня зовут Александр, уже более 10 лет я занимаюсь ремонтом компьютером, этот сайт я создал чтобы делиться полезной и практической информацией с вами! Буду благодарен, если вы опишите свой опыт или мнение в комментарии, надеюсь, что данная информация принесёт только пользу

Оцените автора
WindowsComp.ru
Добавить комментарий