Миграция отказоустойчивой конфигурации DHCP Windows Server 2012 R2 на Windows Server 2016 Server Core

В данной статье я рассмотрю процесс миграции службы DHCP, развёрнутой в отказоустойчивой конфигурации (failover relationship) с Windows Server 2012 R2 на Windows Server 2016. Текущая конфигурация следующая:
Существуют несколько филиалов с развёрнутыми DHCP серверами (серверы DHCP не совмещены с другими ролями). Все DHCP серверы всех филиалов реплицируются с DHCP сервером в дата центре в режиме горячее резервирование (hot standby) — топология «звезда». Задача — обновить всю инфраструктуру службы DHCP на Windows Server 2016 Server Core.

Краткое описание вариантов миграции

В описываемом сценарии не планируется изменение IP helper’а на новые IP адреса новых DHCP серверов. Новым DHCP серверам будут назначены те же IP адреса, что были у старых.
Сначала необходимо подготовить новые серверы DHCP для каждого расположения, установив ОС и назначив им статические IP адреса. Установить роль DHCP сервера.

Сам процесс миграции будет выполнен следующим образом:

  1. С помощью PowerShell командлетов Export-DhcpServerImport-DhcpServer будет выгружена конфигурация исходного сервера в xml и перенесена на новый сервер. На этом этапе мы перенесём только основную серверную конфигурацию DHCP. То есть импорту подлежат только параметры, настроенные на уровне сервера (политики, опции, кастомные опции, фильтры по MAC адресам), которые не участвуют в процессе репликации.
  2. Вывод из работы исходного сервера, его деавторизация
  3. Импорт настроек на новый сервер, авторизация в Active Directory
  4. Создание отношения обработки отказа, репликация областей. Отношения обработки отказа могут быть настроены между DHCP серверами под Windows Server 2012, 2012R2 и Windows Server 2016 без проблем. Это поддерживаемая конфигурация.

Простоя в обслуживании при таком подходе не будет, конечно, если у вас корректно настроены IP Helper’ы или DHCP Relay, т.к. на время замены одного сервера запросы будет обрабатывать его партнёр.

Другие варианты миграции приводят к простою в обслуживании.

  • С помощью утилиты netsh dhcp server export. При использовании netsh не экспортируются политики и отношения обработки отказа (Failover Relationships). Сама утилита netsh считается устаревшей и её использование в современных ОС не желательно. Метод сопряжён с простоем в обслуживании запросов (на момент переноса данных на новый сервер).
  • С помощью резервного копирования/восстановления (Backup-DhcpServer, Restore-DhcpServer) переносятся все настройки, но отношения обработки отказа (Failover Relationships) восстанавливаются без секретного ключа и задать его у меня не получилось, поскольку теряется связь с сервером-партнёром. Метод сопряжён с простоем в обслуживании запросов (на момент переноса данных на новый сервер).

Подготовка серверов

Я буду использовать Windows Server 2016 Server Core для каждого нового DHCP сервера.

После установки Server Core настраиваем его с помощью sconfig и включаем правила брандмауэра для удалённого управления сервером. Не все из них нужны для конкретной задачи, но я обычно включаю их при настройке для дальнейшего удобства администрирования сервера:

После настройки всех необходимых параметров устанавливаем роль DHCP сервера:

Включим все правила брандмауэра для групп DHCP Server и DHCP Server Management, хотя, во время установки роли, эти правила должны были быть созданы и включены автоматически.

Миграция с помощью механизма репликации DHCP

Сначала выполняем экспорт настроек с исходного сервера с помощью Export-DhcpServer. PowerShell должен быть запущен с повышением привилегий:

Копируем файл xml на новый сервер и выполняем импорт только настроек сервера:

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

При импорте будут перенесены следующие параметры:

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

Если этого не сделать, то попытка репликации области, содержащей кастомные опции завершиться ошибкой «Configure failover failed. Error: 20010. The specified option does not exist.»

Запускаем принудительную репликацию областей на сервере, который мы планируем вывести из работы:

Создаём на всякий случай резервную копию DHCP заменяемого сервера:

На сервере-партнёре удаляем соответствующее Failover Relationship (отношение обработки отказа):

Реплицируемые области будут удалены с сервера, который мы выводим из эксплуатации:

Все запросы теперь должен обслуживать оставшийся DHCP сервер, если на сетевом оборудовании корректно настроены IP helper’ы или DHCP Relay.

Затем выполним деавторизацию сервера, с которого были удалены все области:

Дожидаемся, когда пропадёт запись об авторизации в Active Directory. Это можно увидеть в ADSI Edit в контейнере configuration — Services — Net Services
Выключаем сервер, чтобы назначить его IP адрес новому dhcp серверу.

Назначаем IP адрес выключенного DHCP новому серверу.

Выполняем авторизацию нового сервера в Active Directory:

Проверяем результат там же в ADSI Edit

Запускаем мастер настройки обработки отказа на оставшемся сервере партнёре:

Выбираем области, которые должны быть реплецированы на новый сервер:

Выбираем сервер-партнёр:

Указываем нужные параметры отношения, общий ключ для обмена сообщениями. Если сервер был активный — не забываем указать роль сервера-партнёра «Активные»:

Проверяем журнал Applications and Services Logs\Microsoft\Windows\DHCP-Server\Microsoft-Windows-DHCP Server Events/Admin на предмет ошибок репликации. Частая проблема с репликацией связана с проблемами синхронизации времени. Если это так, то можно запустить принудительную синхронизацию времени с контроллером доемна net time /set

Также проверяем логи работы DHCP сервера в Windows\System32\dhcp на предмет успешности обработки запросов.

Повторяем процедуру с остальными серверами.

2 комментария

Что нового в Win2016 для отказоустойчивости ДХЦП ?

Павел Антипов

В плане отказоустойчивости изменений нет. Одно из существенных изменений — NAP больше не поддерживается DHCP сервером. Список изменений в WS 2016: https://docs.microsoft.com/ru-ru/windows-server/networking/technologies/dhcp/what-s-new-in-dhcp

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