Миграция сервера DHCP c Windows Server 2008 R2 на отказоустойчивую конфигурацию DHCP Failover из двух серверов на базе Windows Server 2012 R2

imageВ процессе миграции серверных систем на Windows Server 2012 R2 дошли до служб DHCP и решили попробовать в действии новый механизм повышения доступности DHCP Failover появившийся еще в Windows Server 2012. Перед началом процедуры возьмём на заметку пару тезисов из документации по DHCP Failover: 

Для отработки отказа DHCP можно использовать не более двух DHCP-серверов

Для правильной работы отработки отказа DHCP необходимо синхронизировать время на двух серверах в отношениях отработки отказа. Для синхронизации времени можно использовать протокол NTP или любой альтернативный механизм. Мастер настройки отработки отказа сравнивает текущее время на серверах, настроенных для отработки отказа. Если время на серверах отличается более чем на одну минуту, установка отработки отказа завершится с критической ошибкой, указывающей администратору на необходимость синхронизации времени на серверах.

Последовательность выполняемых действий:

1. Устанавливаем роль DHCP Server на два сервера с Windows Server 2012 R2.
2. Экспортируем данные действующего сервера DHCP с Windows Server 2008 R2
3. Импортируем все конфигурационные данные DHCP на первый сервер с Windows Server 2012 R2
4. Импортируем только серверную конфигурацию DHCP на второй сервер с Windows Server 2012 R2
5. Настраиваем DHCP Failover.
6. Заключительные процедуры

 


1. Устанавливаем роль DHCP Server на два сервера с Windows Server 2012 R2

1.1. Устанавливаем роль DHCP Server на первый сервер (KOM-AD01-NS01)

Выполним установку роли DHCP Server на первый сервер с помощью консоли Server Manager, где вызовем мастер добавления ролей в меню Manage > Add Roles and Features и на этапе выбора ролей отметим DHCP Server

image

тут же нам будет предложено установить компоненты управления ролью из состава RSAT (консоль DHCP и PS-модуль для работы с DHCP) – соглашаемся с их добавлением.

image

В конце процесса установки нам станет доступна ссылка пост-инсталляционной настройки роли – Complete DHCP configuration

image

Мастер настройки выполняет две основные вещи – добавляет на сервер две локальные группы безопасности для управления ролью и выполняет авторизацию службы DHCP в домене Active Directory.

image

Для выполнения авторизации при необходимости можно указать отдельные учетные данные…

image

Жмём Commit и убеждаемся в том, что процедуры создания локальных групп и авторизации выполнены без проблем… 

image

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

 

1.2. Устанавливаем роль DHCP Server на второй сервере (KOM-AD01-NS02)

На втором сервере для наглядности установку роли выполним c помощью PowerShell.

Устанавливаем исполняемые компоненты DHCP:

Add-WindowsFeature -IncludeManagementTools DHCP

Создаем локальные группы безопасности DHCP (DHCP Administrators и DHCP Users) :

Add-DhcpServerSecurityGroup

Для вступления в силу настроек безопасности DHCP связанных с созданными локальными группами безопасности перезапускаем службу DHCP Server:

Restart-Service DHCPServer

Авторизуем DHCP сервер в Active Directory:

Add-DhcpServerInDC  kom-ad01-ns02.holding.com  10.160.0.12

Однако после того, как роль DHCP установлена и выполнены пост-инсталляционные настройки с помощью PowerShell, - при подключении к этому серверу в консоли Server Manager будет висеть предупреждение о том, что требуется пост-инсталляционная настройка невзирая на то, что фактически она уже выполнена. При этом для исчезновения этого предупреждения не поможет даже перезагрузка сервера.

image

Чтобы скинуть этот статус , выполним изменение ключа реестра в значение определяющее то, что фактически роль DHCP Server уже сконфигурирована с помощью PowerShell:

Set-ItemProperty –Path registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\Roles\12 –Name ConfigurationState –Value 2

 

2. Экспортируем данные действующего сервера DHCP

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

Итак, на сервере KOM-AD01-NS01 предварительно создаём папку, в которую будут экспортироваться данные, например C:\Temp и выполняем PS-командлет экспорта конфигурации со старого DHCP-сервера: 

Export-DhcpServer -ComputerName "WS2008R2.holding.com" -Leases -File "C:\Temp\DHCPExport.xml" –Verbose

 

3. Импортируем все конфигурационные данные DHCP на первый сервер с Windows Server 2012 R2

На сервере KOM-AD01-NS01 выполняем команду полного импорта конфигурации DHCP

Import-DhcpServer -Leases –File "C:\Temp\DHCPExport.xml" -BackupPath "C:\Temp\DHCPBackup\" –Verbose

С параметром -File думаю всё понятно, он указывает на файл из которого будут браться данные для импорта. Параметр -BackupPath, несмотря на то, что он нам в данной ситуации не нужен, является обязательным и указывает путь к каталогу, в который перед импортом будет выполнено резервное копирование существующей конфигурации нового сервера, и поэтому его нужно указать, определив для него какой-нибудь временный каталог.

 

4. Импортируем только серверную конфигурацию DHCP на второй сервер с Windows Server 2012 R2

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

- Vendor or User classes other than those which are built-in.
- Option definitions other than those which are built-in
- Server level option values
- MAC address based filters
- Conflict detection attempt (if set to something other than the default)

Перейдём на сервер KOM-AD01-NS02, скопируем файл с данными экспорта в C:\Temp\DHCPExport.xml и выполним команду импорта с специальным параметром определяющим состав импортируемых данных:

Import-DhcpServer –File "C:\Temp\DHCPExport.xml" –ServerConfigOnly -BackupPath "C:\Temp\DHCPBackup\" –Verbose

 

5. Настраиваем DHCP Failover

Переходим на первый сервер KOM-AD01-NS01 (где импортированы области DHCP) и в консоли DHCP в дереве навигации открываем меню действия для узла IPv4 > Configure Failover

image

Откроется мастер настройки отказоустойчивой конфигурации областей DHCP. В нашем примере в отказоустойчивую конфигурацию будут включены все области сервера, и поэтому мы оставляем включенным чекбокс Select all

image

На следующем шаге мастера выберем имя второго сервера, который будет выступать в качестве партнёра по репликации для текущего сервера. Это можно сделать выбрав сервер кнопкой Add Server из открывающегося списка авторизованных в Active Directory DHCP серверов.

image

Далее нам предстоит выбрать режим повышения доступности. Существует два основных режима – Load balance и Hot standby. Первый режим представляет собой режим балансировки нагрузки Active/Active между двумя серверами-партнёрами, то есть клиентские запросы обрабатывают оба сервера в соответствии с процентным соотношением в Load Balance Percentage. Второй режим заставляет работать сервера в режиме Active/Passive, то есть второй сервер включается в работу только при недоступности первого.

В нашем примере выбран режим балансировки, при котором DHCP серверы-партнёры вычисляют хеш MAC-адреса из клиентского запроса на основе алгоритма описанного в RFC 3074. В результате применения хеш-алгоритма каждый MAC-адрес преобразуется в значение от 1 до 256, и если например балансировка между серверами настроена нами в соотношении 50/50 %, то первый сервер будет отвечать клиентам с хешем от 1 до 128, а второй соответственно - клиентам с хешем от 129 до 256.

Что касается параметров настройки выбранного режима работы, то их скудное описание можно найти в документе TechNet Library - DHCP Failover Settings

Насколько я понял, Maximum Client Lead Time это максимальное время аренды IP-адреса выдаваемого доступным сервером для клиентов, которые должны быть обслужены тем сервером, который в данный момент недоступен. А State Switchover Interval – это интервал времени по истечении которого доступный сервер при недоступности сервера-партнёра автоматически переводит партнёрские отношения из COMMUNICATION INTERRUPTED в PARTNER DOWN и берёт на себя функции по полному обслуживанию DHCP-областей, входящих в эти партнёрские отношения. В большинстве случаев для этих параметров можно оставить предложенные по умолчанию значения.

Для повышения безопасности механизмов репликации между серверами желательно использовать опцию Enable Message Authentication, для которой нам нужно задать пароль Shared Secret используемый для взаимной аутентификации серверов.

image

Далее мастер покажет нам сводную информацию по сделанным настройкам и выполнит конфигурирование партнёрских отношений между серверами.

image
Подключимся консолью DHCP ко второму серверу, куда мы ранее импортировали только серверную конфигурацию и убедимся в том, что на нём появились реплицируемые DHCP-области.

В дальнейшем при желании мы можем поменять режим работы DHCP Failover и все его опции на соответствующей вкладке настроек IPv4. Здесь же мы увидим текущий статус партнёрских отношений…

image

 

6. Заключительные процедуры

В качестве заключительных процедур по настройке DHCP Failover можно считать обновление агентов DHCP Relay для использования IP адресов двух серверов-партнёров (перенастройка маршрутизирующего сетевого оборудования) и последующее тестирование получившейся конфигурации.

Источники информации:

Microsoft Windows DHCP Team Blog - Ensuring High Availability of DHCP using Windows Server 2012 DHCP Failover
Microsoft Windows DHCP Team Blog - DHCP Failover Load Balance Mode
Microsoft Windows DHCP Team Blog - DHCP Failover Hot-Standby Mode
Microsoft Windows DHCP Team Blog - Installing and Configuring DHCP role on Windows Server 2012
Microsoft Windows DHCP Team Blog - Bringing PowerShell to DHCP Server
Microsoft Windows DHCP Team Blog - DHCP Failover using PowerShell
Microsoft Windows DHCP Team Blog - Migrating existing DHCP Server deployment to Windows Server 2012 DHCP Failover

TechNet Library - Step-by-Step: Configure DHCP for Failover
TechNet Library - What's New in DHCP in Windows Server 2012 R2

Всего комментариев: 9 Комментировать

  1. denisazarov /

    Глупый конечно вопрос, но на базе чего работает это решение, я так понял это не кластер?

    Хотя меня больше интересует когда придумают механизм отсекания dhcp серверов от сторонних поставщиков.

    1. Алексей Максимов / Автор записи

      Нет это не кластер. В моём примере фактически это две отдельные виртуальные машины. По сути у каждого из серверов своя копия БД DHCP, часть данных которой реплицируется по сети внутренними механизмами DHCP Failover.

  2. Обратная ссылка: Microsoft DHCP Useful link | Share IT /

  3. Yayayau /

    А каким образом происходит репликация резервирований ? Автоматически они не реплицируются как я понял

    1. Алексей Максимов / Автор записи

      Если речь идёт о том, что Вы на первом сервере создаёте руками резервирование какого-то IP за определённым MAC, то на втором сервере (партнёр по репликации DHCP) оно автоматически не появиться. Чтобы оно появилось можно вручную толкнуть репликацию на сервер-партнёр в консоли DHCP.

      1. Yayayau /

        даа, уже разобрался. Нашел пример замечательной реализации - скрипт на PowerShell с командой репликации всех областей вешается в планировщике на событие создания (106) или удаления (107) резервирования адреса. В результате все реплицируется автоматом.

        1. Дмитрий /

          Не поделитесь скриптом? Появились какие-нибудь подводные камни в подобной схеме с момента её ввода в продакшн?

          1. Yayayau /

            там одна строка ))
            Invoke-DhcpServerv4FailoverReplication -ComputerName 123 -force

            123 - имя того компа с которого запускается репликация.
            Подводный камень - при изменении записей происходит два события - удаление старой и создание новой, скрипт не успевает отработать, и scope отключается. Приходится включать руками. Решение - не делать изменения, я теперь в случае необходимости изменения удаляю запись и заново ее создаю через 5-7 минут, чтоб успела отработать реплика.

  4. cobion /

    Добрый день коллеги. Стоит задача миграции физических DC с WS 2008 R2 в виртуальную среду.Гипервизор WS Hyper-V 2012 R2, ВМ с контроллером так же WS 2012 R2. Будет создан кластер виртуальных машин в который так же будут входить и новые контроллеры домена.FSMO роли передаются легко. Есть однако еще и DHCP сервер, по его переносу понятно, НО какое решение лучше предпочесть- поставить второй DHCP на другой виртуальный DC и сделать DHCP Failover, либо полагаться на сам кластер и его Failover и ,будет ли значительный простой при перезапуске ВМ на другой ноде ?

    Спасибо!

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