«

»

Настройка службы 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.

<# Установка DHCP-службы на prmdc01 + DHCP MMC  #>

Install-WindowsFeature -Name DHCP -IncludeManagementTools

<# Установка DHCP-службы на prmdc02 #>

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

<# Установка DHCP Server Tools отдельной командой (DHCP MMC + DHCP netsh + DHCP PowerShell cmdlets) RSAT #>

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

DHCPFailover01

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

<# Авторизация серверов DHCP в Active Directory #>

Add-DhcpServerInDC -DnsName "prmdc01.corp.local"

Add-DhcpServerInDC -DnsName "prmdc02.corp.local"

DHCPFailover02

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

<# Создаем DHCP-область на сервере prmdc01.corp.local #>

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

<# Получить данные всех областей на сервере #>

Get-DhcpServerv4Scope

<# Пример резервирования адреса (Узнать ScopeId выше ук. командой) #>

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"

<# Просмотреть резервации для области 172.30.65.0 #>

Get-DhcpServerv4Reservation -ScopeId 172.30.65.0  

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

<# Настройка параметров области DNS,Router,DNS Domain Name

-DnsServer = -OptionId 6

-Router = -OptionId 3

-DnsDomain = -OptionId 15 #>

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"

<# Изменить срок аренды IP-адреса "для теста на 30 минут" #>

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] <String> [-ScopeId] <IPAddress[]> [-PartnerServer] <String> [-AsJob] [-AutoStateTransition <Boolean> ] [-CimSession <CimSession[]> ] [-ComputerName <String> ] [-Force] [-LoadBalancePercent <UInt32> ] [-MaxClientLeadTime <TimeSpan> ] [-PassThru] [-SharedSecret <String> ] [-StateSwitchInterval <TimeSpan> ] [-ThrottleLimit <Int32> ] [-Confirm] [-WhatIf] [ <CommonParameters>]
  • Parameter Set: HotStandby Add-DhcpServerv4Failover [-Name] <String> [-ScopeId] <IPAddress[]> [-PartnerServer] <String> [-AsJob] [-AutoStateTransition <Boolean> ] [-CimSession <CimSession[]> ] [-ComputerName <String> ] [-Force] [-MaxClientLeadTime <TimeSpan> ] [-PassThru] [-ReservePercent <UInt32> ] [-ServerRole <String> ] [-SharedSecret <String> ] [-StateSwitchInterval <TimeSpan> ] [-ThrottleLimit <Int32> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

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

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

<# Конфигурирование Failover DHCP (Load Balance Mode) #>

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

<# Удаляем конфигурацию (Load Balance Mode) #>

Remove-DhcpServerv4Failover -Name "prmdc01-prmdc02"

<# Конфигурирование Failover DHCP (Hot standby mode) #>

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 -> AutoStateTransition - PARTNER_DOWN -> MaxClientLeadTime -> область обслуживается одним сервером.

Permanent link to this article: http://www.blogss.ru/configure-dhcp-failover-server-2012

1 пинг

  1. Сетевые сервисы Windows 2012 — DHCP | Self Engineering Сообщает:

    [...] Подробнее, с экспериментами, можно почитать тут: http://www.blogss.ru/configure-dhcp-failover-server-2012 [...]

Добавить комментарий

Your email address will not be published.