Отказоустойчивый dhcp windows 2012

Высокодоступный DHCP-сервер на Windows Server 2012 R2

В Windows Server 2000/2003 отказоустойчивость DHCP можно было организовать только с помощью кластера Microsoft, в Windows Server 2008 уже без кластера, но с помощью довольно ограниченной функции DHCP Failover. В Windows Server 2012 R2 появился новый встроенный функционал высокой доступности (High Availability) DHCP, позволяющий с легкостью обеспечить HA для сервиса DHCP.

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

Есть два режима обеспечения высокой доступности DHCP:

  • балансировка нагрузки – запросы клиентов распределяется между серверам
  • горячая замена – второй сервер реплицирует данные зоны с основного сервера, и при выходе его их строя активируется и начинает обслуживать клиентов

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

Установка роли DHCP Server в Windows Server 2012 R2

Установка роли DHCP крайне проста и не требует перезагрузки сервера.

  1. Откройте консоль Server Manager.
  2. Нажмите Add Roles and Features.
  3. В списке ролей выберите DHCP Server .

При помощи PowerShell установить роль еще проще

Add-WindowsFeature DHCP –IncludeManagementTools

Даже если система запросит перезагрузку сервера, можно проигнорировать этот запрос. После установки роли, администратор должен настроить DHCP зоны и их параметры. В нашем примере на первом DHCP сервере мы создадим одну DHCP зону с именем Servers, настроим параметры шлюза, DNS сервера и другие настройки зоны. В качестве динамического диапазона адресов укажем диапазон с 10.60.1.100 по 10.60.1.150.

Затем нужно установить роль DHCP на втором сервере (зону настраивать при этом не нужно).

Настройки отказоустойчивости DHCP

Отказоустойчивость DHCP настраивается с помощью мастера, который можно вызвать, щелкнув ПКМ по зоне и выбрав Configure Failover.

На первом этапе мастер DHCP Failover предлагает выбрать зоны, отказоустойчивость которых нужно обеспечить. У нас она одна, поэтому нажимаем Next.

На втором шаге нужно будет указать имя второго DHCP сервера партнера.

В следующем окне нужно указать имя связи (Relationship name), режим балансировки нагрузки между серверами (в каком соотношении будет разделена область между двумя серверами), время аренды ip адреса новым клиентом (это же время определяем время ожидания восстановления канала связи с партнёром), интервал автоматического переключения.

Знакомимся с результирующими настройками и жмем Finish.

На этом все. Реплицированная область появится на втором DHCP сервере.

Несколько полезных замечаний о DHCP HA

Есть несколько полезных премов, которые могут сэкономить администратору много времени при работе с новой конфигурацией отказоустойчивого DHCP.

  • В ваших сетях могут быть настроены DHCP relay (IP Helper) на уровне VLAN для пересылки запросов на определенный сервер. В этом случае нужно добавить адреса обоих DHCP серверов в конфигурацию сетевого оборудования
  • С помощью команды ipconfig /all на клиенте можно узнать имя DHCP-сервера, выдавшего IP адрес. Это бывает полезно при поиске неисправностей.
  • DHCP репликация выполняется только на уровне зоны. Если вы настроили некие параметры на уровне сервера (как правило, это имя домена, DNS сервера и т.д.), убедитесь что они одинаковые на обоих DHCP серверах.
  • При удаленном подключении к компьютеру клиента, чтобы освободить текущий адрес и запросить новый, пользуйтесь командой: ipconfig /release && ipconfig /renew
Читайте также:  What is bin bash in linux

Настройка службы DHCP Failover в Windows Server 2012

Начнем сначала с общей информации. Одной из новых возможностей, появившихся в Windows Server 2012, является — DHCP Failover. Это новый метод обеспечения высокой доступности службы DHCP (High Availability). Windows Server 2008 R2 предоставлял нам два параметра высокой доступности.

  1. DHCP в отказоустойчивом кластере Windows. (DHCP-сервер размещается в кластере)
  2. Разделенные области DHCP — DHCP Split Scope . (В этом случае используются два независимых DHCP-сервера, которые разделяют одну область между собой. Если клиентам не удается подключиться к основному серверу, то они могут получить IP-адрес у дополнительного сервера. Развертывание разделенных областей не обеспечивает непрерывность IP-адресов.)

Failover DHCP в Windows Server 2012 позволяет администраторам развертывать высоко доступную службу DHCP для поддержки своей инфраструктуры и не имеет недостатков, описанных выше. Два DHCP-сервера реплицируют между собой сведения об аренде, позволяя одному серверу обеспечивать обслуживание клиентов всей подсети, когда другой сервер недоступен. Если DHCP-сервер недоступен, то DHCP-клиент может продлить срок действия аренды текущего IP-адреса, обратившись к другому DHCP-серверу. Failover DHCP в Windows Server 2012 обеспечивает поддержку не более двух DHCP-серверов. Failover DHCP может работать в двух режимах —

  1. Режим горячей замены — (Hot standby mode).
  2. Режим балансировки нагрузки — (Load balance mode).
  • В режиме горячей замены активный сервер отвечает за предоставление IP-адресов и параметров конфигурации всем клиентам в области или подсети. Дополнительный сервер принимает эту ответственность на себя в случае, если основной сервер становится недоступным. Сервер является основным или дополнительным в контексте подсети. Например, сервер, имеющий роль основного сервера для некоторой подсети, может быть дополнительным сервером для другой подсети.
  • При использовании режима балансировки нагрузки (используется по умолчанию) два сервера одновременно предоставляют IP-адреса и сетевые параметры клиентам подсети. Запросы клиентов распределяются между двумя серверами. Каждый DHCP сервер при получении запроса клиента вычисляет хэш MAC-адреса клиента, используя алгоритм хэширования. Каждый сервер получает значение хэша в диапазоне от 1 до 256. Если распределение нагрузки между узлами выставлено в 50:50, то клиентский запрос, содержащий MAC-адрес хэш которого будет в интервале от 1 до 128 будет обработан первым сервером, если хэш будет в интервале от 129 до 256, то запрос будет обрабатываться вторым сервером.

Тестовая среда.

В тестовой среде, используется 2 контроллера домена, которые также выступают в роли DHCP серверов и два dhcp-клиента.

  • Начнем установку DHCP-службы на DC из PowerShell. Конечно, можно производить установку и настройку из консоли MMC, но я буду показывать на примере PowerShell — считаю что это намного быстрее и в последствии можно написать свой скрипт и облегчить себе жизнь. Запускаем новый редактор PowerShell ISE на prmdc01 -> Win+R -> PowerShell_ISE.exe. Запуск команды -> установить на нее курсор и нажать F8 или кнопку Run Selection.
Читайте также:  Unable to install windows service

Install-WindowsFeature -Name DHCP -IncludeManagementTools

Install-WindowsFeature -Name DHCP -ComputerName prmdc02.corp.local

Install-WindowsFeature -Name RSAT-DHCP -ComputerName prmdc02.corp.local

  • Теперь необходимо авторизовать наши сервера DHCP в Active Directory.

Add-DhcpServerInDC -DnsName «prmdc01.corp.local»

Add-DhcpServerInDC -DnsName «prmdc02.corp.local»

  • Далее создаем DHCP-область «VLAN 1» на сервере prmdc01.corp.local.

Add-DhcpServerv4Scope -Name «VLAN 1» -StartRange 172.30.65.17 -EndRange 172.30.65.19 -SubnetMask 255.255.255.224

Add-DhcpServerv4Reservation -ScopeId 172.30.65.0 -Name «Test WDS Server» -IPAddress 172.30.65.19 -ClientId F1-D1-F1-D1-7A-7A -Description «Sample Reserv»

Get-DhcpServerv4Reservation -ScopeId 172.30.65.0

  • Перейдем к настройке параметров области.

Set-DhcpServerv4OptionValue -ScopeId 172.30.65.0 -OptionId 6 -Value 172.30.65.6,172.30.65.6

Set-DhcpServerv4OptionValue -ScopeId 172.30.65.0 -Router 172.30.65.1

Set-DhcpServerv4OptionValue -ScopeId 172.30.65.0 -DnsDomain «corp.local»

Set-DhcpServerv4Scope -ScopeId 172.30.65.0 -LeaseDuration 00.00:30:00

Get-DhcpServerv4OptionValue -ScopeId 172.30.65.0

После создания области и определения всех необходимых опций, можно приступить к конфигурации Failover DHCP. Для конфигурации Failover используется команда — Add-DhcpServerv4Failover. Общий синтаксис команды:

  • Parameter Set: LoadBalance Add-DhcpServerv4Failover [-Name] [-ScopeId] [-PartnerServer] [-AsJob] [-AutoStateTransition ] [-CimSession ] [-ComputerName ] [-Force] [-LoadBalancePercent ] [-MaxClientLeadTime ] [-PassThru] [-SharedSecret ] [-StateSwitchInterval ] [-ThrottleLimit ] [-Confirm] [-WhatIf] [ ]
  • Parameter Set: HotStandby Add-DhcpServerv4Failover [-Name] [-ScopeId] [-PartnerServer] [-AsJob] [-AutoStateTransition ] [-CimSession ] [-ComputerName ] [-Force] [-MaxClientLeadTime ] [-PassThru] [-ReservePercent ] [-ServerRole ] [-SharedSecret ] [-StateSwitchInterval ] [-ThrottleLimit ] [-Confirm] [-WhatIf] [ ]

Важные параметры для конфигурации:

AutoStateTransition — Параметр отвечает за автоматический переход от состояния COMM_INTERUPTED (потеря связи со своим партнером) до состояния PARTNER_DOWN (партнер неработоспособен). Если эта опция не задана, администратор должен вручную осуществить переход сервера DHCP в «PARTNER_DOWN» с помощью консоли управления DHCP или PowerShell. Если установить параметр AutoStateTransition в True, а параметр StateSwitchInterval будет опущен (не задан), то он установится автоматически в значение 1 час. Если задать параметр для StateSwitchInterval, а параметр AutoStateTransition установить в False (0) будет ошибка.

StateSwitchInterval — Проще говоря, этот параметр задает таймер, по истечению которого произойдет —AutoStateTransition (переход состояния). В Windows Server 8 Beta назывался — SafePeriod. Если будет задан параметр StateSwitchInterval, то параметр AutoStateTransition будет автоматически включен, то есть установлен в True (1).

LoadBalancePercent — Данные параметр задает процент от диапазона IP-адресов, чтобы зарезервировать для каждого сервера. Если задан параметр LoadBalancePercent 70, то первый (Local Server) будет использовать 70 адресов, второй 30 (Partner Server) (если всего доступно 100 адресов). Каждый сервер будет использовать свои IP-адреса в заданном диапазоне до того момента пока один из серверов не перейдет в состояние «PARTNER_DOWN» и время заданное в параметре Maximum Client Lead Time истечет. После этого доступный сервер возьмет на себя контроль над всем диапазоном IP-адресов из области.

MaxClientLeadTime — Определяет период времени, на которое DHCP аренда может быть продлена при потере контакта с партнером. Этот период также определяет сколько времени, сервер будет ожидать возвращения своего партнера из «PARTNER_DOWN» прежде чем приступить к контролю над всем диапазоном IP-адресов из области. Также определяет сколько времени будет выход из состояния «RECOVER_WAIT» в Normal.

ReservePercent — Определяет процент адресов, которые будут зарезервированы Standby сервером. Standby сервер будет использовать этот процент адресов для обслуживания новых клиентов после выхода из строя Active сервера. Standby сервер возьмет на себя контроль над всем диапазоном IP-адресов после перехода Active сервера в состояние «PARTNER_DOWN» и истечет время заданное в параметре Maximum Client Lead Time. Если устанавить этот параметр в ноль, то Standby не сможет предоставлять новые адреса клиентам, пока не захватит всю область.

  • Приступим к конфигурации: сначала создадим — (Load balance mode) затем — (Hot standby mode).
Читайте также:  Отечественное программное обеспечение astra linux

Add-DhcpServerv4Failover -ComputerName localhost -Name «prmdc01-prmdc02» -PartnerServer prmdc02.corp.local -ScopeId 172.30.65.0 -LoadBalancePercent 100 -MaxClientLeadTime 00:10:00 -AutoStateTransition $true -StateSwitchInterval 00:02:00 -SharedSecret «Keykeykey»

Get-DhcpServerv4Failover -Name «prmdc01-prmdc02» | format-list

Теперь давайте протестируем нашу конфигурацию на предмет сбоя и разберем как ведут себя параметры используемые при конфигурации Failover DHCP.

  • Включаем DHCP1-PC. DHCP1 получает адрес в аренду на 10 минут согласно параметру -MaxClientLeadTime 00:10:00. По истечению 50% времени аренды т.е. 5 минут prmdc01 продлевает аренду уже на 30 минут согласно параметру аренды у самой области. Далее через 15 минут, согласно RenewTimeValue, аренда снова будет продлена, на 30 мин и т.д. пока один из серверов, DHCP не выйдет из строя.

  • Останавливаем службу DHCP на сервере prmdc01.corp.local. Как видим prmdc02 потерял связь с партнером. Вы можете сменить состояние партнера руками (Change to partner down) на PARTNER_DOWN или дождаться когда истечет время заданное в параметре StateSwitchInterval (в нашем случае 2 минуты) и произойдет AutoStateTransition (автоматически сменит состояние партнера на PARTNER_DOWN).

  • Теперь стартуем DHCP2-PC. Он не получает адреса.
  • Состояние сменилось на PARTNER_DOWN.

  • Через 10 минут (MaxClientLeadTime) prmdc02 захватит область и DHCP2-PC получит свой адрес на 10 минут.
  • После истечения аренды prmdc02 будет снова и снова продлять аренду DHCP1 и DHCP2 на 10 минут, пока не станет доступен prmdc01.
  • Включаем службу на prmdc01.corp.local, сервер переходит в состояние «Recover Wait«. Через 10 минут сервер вернется в состояние Normal. (параметрMaxClientLeadTime у нас равен 10 минутам).

  • Теперь создадим конфигурацию Hot standby mode. prmdc01 — Active | prmdc02 — Standby. Сервер где выполняется команда по-умолчанию будет Active. Добавим в нашу среду DHCP3-PC.

Get-DhcpServerv4Reservation -ScopeId 172.30.65.0 | Remove-DhcpServerv4Reservation

Get-DhcpServerv4lease -ScopeId 172.30.65.0 | Remove-DhcpServerv4Lease

Remove-DhcpServerv4Failover -Name «prmdc01-prmdc02»

Add-DhcpServerv4Failover -ComputerName localhost -Name «prmdc01-prmdc02» -PartnerServer prmdc02.corp.local -ScopeId 172.30.65.0 -ReservePercent 40 -MaxClientLeadTime 00:10:00 -AutoStateTransition $true -StateSwitchInterval 00:02:00 -SharedSecret «Keykeykey»

Get-DhcpServerv4Failover -Name «prmdc01-prmdc02» | format-list

  • Просмотр пула адресов выделенных каждому серверу. На prmdc01 (Active) доступно 2 адреса для выдачи на партнере prmdc02 (Standby) 1 адрес.

Тестирование конфигурации: ситуация схожа с Load Balance Mode.

  • Включаем DHCP1-PC. DHCP1 — получает адрес в аренду.
  • Останавливаем службу DHCP на prmdc01.
  • Сервер prmdc02 теряет контакт с сервером prmdc01.
  • Включаем DHCP2-PC. DHCP2 — получает аренду потому что, ReservePercent 40 (исходя из ситуации доступен 1 адрес).
  • Включаем DHCP3-PC. DHCP3 — не получает адрес в аренду.
  • Ждем перехода сервера в состояние «PARTNER_DOWN».
  • Партнер перешел в состояние «PARTNER_DOWN».
  • Ждем время заданное в параметре Maximum Client Lead Time.
  • Время в Maximum Client Lead Time истекло.
  • prmdc02 — захватил область.
  • DHCP3-PC — получает адрес в аренду. Если бы значение ReservePercent было ноль, то на этом шаге и DHCP2 получил бы свой адрес.

COMM_INTERUPTED -> StateSwitchInterval -> AutoStateTransitionPARTNER_DOWN -> MaxClientLeadTime -> область обслуживается одним сервером.

Оцените статью