Skip to main content

Автоматическая репликация областей отказоустойчивого DHCP сервера Windows Server

 

 

Источник http://pyatilistnik.org/oshibki-20291-i-20292-na-dhcp-v-windows-server/

 

Как я написал выше, Microsoft до сих пор не решило проблему автоматической репликации данных, о зарезервированных IP-адресах, даже в Windows Server 2019. Тут у вас два варианта, первый самый топорный, это ручной запуск на сервере, где были изменены настройки. Для этого запустите PowerShell и введите команду:

 

Invoke-DhcpServerv4FailoverReplication -ComputerName dc01.root.pyatilistnik.org

 

    dc01.root.pyatilistnik.org - сервер с которого мы будем реплицировать настройки (DHCP сервер-партнер)

    В этом примере реплицируются все области отработки отказа службы DHCP-сервера, работающей на компьютере с именем dc01.root.pyatilistnik.org, в одну или несколько соответствующих партнерских служб DHCP-сервера на основе одного или нескольких отношений отработки отказа, в которых включены службы DHCP-сервера. Обратите внимание, что у вас появится запрос на подтверждение данного действия. Если хотите его пропускать, то необходимо добавить ключ -Force.

     

    Invoke-DhcpServerv4FailoverReplication -ComputerName dc01.root.pyatilistnik.org -Force

     

    Команда Invoke-DhcpServerv4FailoverReplication -ComputerName dc01.root.pyatilistnik.org

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

     

    Invoke-DhcpServerv4FailoverReplication -ComputerName dc01.root.pyatilistnik.org -Name dc01.root.pyatilistnik.org-svt2019s01

     

    В этом примере реплицируется конфигурация всех областей, которые являются частью отношения отработки отказа с именем dc01.root.pyatilistnik.org-svt2019s01 в службе DHCP-сервера, работающей на компьютере с именем dc01.root.pyatilistnik.org, в службу DHCP-сервера партнера.

    Репликация отработки отказа через PowerShell

    Предположим, что вам необходимо выполнить репликацию отработки отказа, только для определенных областей, для этого есть параметр -ScopeId, вот пример для моих областей:

     

    Invoke-DhcpServerv4FailoverReplication -ComputerName dc01.root.pyatilistnik.org -ScopeId 192.168.31.0,192.168.32.0 -Force

     

     

    Зная теперь основные команды, вы можете создать для себя автоматический сценарий при котором у вас будет происходить репликация. Тут все просто на поможет сценарий PowerShell и планировщик заданий, который будет срабатывать на определенное событие в журналах Windows.

     

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

     

    Алгоритм действий:

      Создаете в Active Directory новую учетную запись, например dhcp-replication и делаете ее администратором на обоих DHCP серверах, кто входит в группу репликации. Как дать права на DHCP читайте по ссылке.

      Создание учетной записи для репликации областей отработки отказа

        Создаем небольшой скрипт dhcp-replication.ps1. Для этого вам просто нужно открыть PowerShell ISE и ввести там команду:

         

        Invoke-DhcpServerv4FailoverReplication -ComputerName dc01.root.pyatilistnik.org -Force#dc01.root.pyatilistnik.org - сервер с которого мы будем реплицировать настройки (DHCP сервер-партнер)

         

         

         

        Далее вам просто нужно сохранить его в формате ps1.

        Создание PowerShell скрипта для репликации DHCP

          Создаем задание в планировщике Windows, которое по событию будет запускать ваш скрипт. Почему именно по событию, все просто, чтобы уменьшить количество бесполезного трафика и нагрузку на ваш сервер.

          Когда вы производите новое резервирование IP-адреса на вашем DHCP сервере, у вас генерируется событие ID 106.

           

          ID 106: Резервирование: [[192.168.31.109]] для IPv4 настроено в области [[192.168.31.0]192.168.31.0] через ROOT\Администратор.

           

          Генерируется оно журналом Microsoft-Windows-DHCP Server Events.

          Событие с кодом ID 106

          И так, откройте планировщик событий, самый быстрый способ, это в окне "Выполнить", ввести taskschd.msc.

          как открыть планировщик заданий

          Щелкаем правым кликом и создаем новую, простую задачу.

          Создание задания по репликации в DHCP

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

          Заполнение поля имени задачи в планировщике

          Выбираем пункт "При занесении в журнал указанного события".

          При занесении в журнал указанного события

          Далее заполняем три пункта:

            Журнал - Microsoft-Windows-DHCP Server Events/Работает DHCP-Server Код события 106
              создание задания в планировщике Windows по репликации областей DHCP

              Оставляем пункт "Запустить программу".

              Запуск программы через планировщик Windows

              Далее в поле:

                Программа или сценарий, вы указываете powershell.exe В поле "Добавить аргументы" введите текст -WindowStyle Hidden -File "C:\Scripts\dhcp-replication.ps1". Где WindowStyle - это указание не показывать диалоговое окно, а атрибут -File указывает путь до вашего скрипта PowerShell. Мы такое уже разбирали в методах запуска скрипта PowerShell.

                Заполняем аргументы для запуска скрипта PowerShell

                Смотрим сводную информацию и закрываем мастер настройки простого задания.

                Завершение создания задания в планировщике

                В результате ваше новое задание появится в списке.

                Список заданий в планировщике

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

                Все теперь ждем появления события ID 106, вы его сами можете вызвать, путем резервирования IP-адреса. Как видим у меня успешно отработало мое задание и все резервированные IP-адреса на текущем сервере, благополучно отреплецировались на DHCP-партнера.

                С событием установки резервирования (ID 106) мы разобрались, но еще есть и обратная операция, это удаление резервирования IP-адреса за определенным компьютером, и тут генерируется событие ID 107.

                 

                ID 107: Резервирование: [[192.168.31.118]] для IPv4 удалено в области [[192.168.31.0]192.168.31.0] через ROOT\Администратор.

                 

                  Журнал Microsoft-Windows-DHCP Server Events/Работает Источник DHCP-Server

                  В итоге вам нужно создать такое же задание, как и в случае с ID 106, но сделать для ID 107 некоторые изменения. Теперь при включении и выключении аренды IP адреса, все области отработки будут автоматически согласованы и ошибок с ID 202091 и ID 20292 не должно быть.