Сервісний центр VPSGroup ремонт комп'ютерної техніки, заправка картриджів, ремонт оргтехніки, Київ, Виставковий центр, Васильківська, 55

Налаштування DHCP failover в Windows Server 2016.

Третя, заключна стаття про DHCP. На завершення теми я розповім про те, як забезпечити отказоустойчивую роботи DHCP-сервера за допомогою технології DHCP failover.

Але спочатку трохи історії.

До виходу Windows Server 2012 єдиним способом забезпечити відмовостійкість DHCP-сервера була так звана схема 80 \ 20.Суть цієї схеми полягає в тому, що для обслуговування однієї області використовуються два DHCP-сервера. Область ділиться між ними в пропорції 80 \ 20, відповідно до основного сервера віддається 80%, а резервному 20% наявних IP-адрес. У нормальному режимі роботи область обслуговується основним сервером, а при виході з його ладу резервний бере на себе навантаження і видає клієнтам адреси з решти 20%, тим самим підтримуючи роботу мережі.

Даний спосіб цілком робочий і використовується до цих пір, але у нього є деякі недоліки:

• При поділі області наявні адреси використовуються не найоптимальнішим чином;
• Клієнти не можуть продовжити оренду з наявним адресою;
• Проблеми при використанні резервування.

Примітка. Резервування (DHCP reservation) - настройка DHCP-сервера, при якій до MAC-адресу клієнта прив'язується постійний IP-адреса. Це гарантує, що клієнт завжди буде отримувати в оренду один і той же адресу. Резервування налаштовується на конкретному сервері і при його недоступності клієнт не зможе отримати зарезервовану за ним адресу.

Недоліки звичайно некритичні, але доставляють багато незручностей. Мабуть тому в Windows Server 2012 була додана нова фіча під назвою DHCP failover, призначена для забезпечення високої доступності DHCP-серверів. DHCP failover дозволяє забезпечити високу доступність служби DHCP і не має недоліків, описаних вище.При використанні DHCP failover два DHCP-сервера реплікують між собою поточні настройки і дані про оренду, що дозволяє одного сервера обслуговувати всіх клієнтів (видавати нові адреси, продовжувати оренду і т.п.) в тому випадку, коли інший недоступний.

DHCP failover може працювати в двох режимах.

Режим балансування (Load balance)

В цьому режимі область ділиться на дві частини в певній пропорції і обслуговується обома серверами одночасно. При отриманні запиту кожен сервер обчислює хеш MAC-адреси клієнта відповідно до алгоритму, описаним в RFC 3074. MAC-адреси хешіруются в діапазоні від 1 до 256, балансування відбувається за наступним принципом: якщо навантаження розподілено в пропорції 50 \ 50 і якщо при обчисленні хеша отримано значення від 1 до 128, то відповідає перший сервер, якщо ж від 129 до 256 - то відповідає другий.При зміні коефіцієнта розподілу навантаження розподіл хеш-блоків між серверами змінюється в тій же пропорції. Такий підхід гарантує, що за одного конкретного клієнта відповідає тільки один сервер.

Якщо ж один з серверів перестає відповідати, то другий забирає всю область і продовжує обслуговувати як своїх клієнтів, так і клієнтів партнера.

Режим гарячої заміни (Hot Standby)

В такому режимі область обслуговується одним сервером (основним). На відміну від режиму балансування в режимі гарячого резерву серверу не обчислюють хеш MAC-адреси клієнта. Основний сервер відповідає на всі запити клієнтів, резервний в нормальному стані не відповідає взагалі.Тільки коли основний сервер стає недоступним, резервний переходить в стан втрати партнера (PARTNER_DOWN) і починає відповідати на запити клієнтів. Коли основний сервер повертається в стрій, резервний переходить в режим очікування і перестає обслуговувати клієнтів.

Зверніть увагу, що термін основний \ резервний відноситься до конкретної DHCP-області.Наприклад DHCP-сервер може бути основним для однієї області і резервним для іншої.

Від теорії перейдемо до практики. Для створення відмовостійкої конфігурації візьмемо 2 сервера - SRV1 і SRV2, що знаходяться в одній підмережі. На SRV1 створюємо область (Scope) і повністю налаштовуємо її, на SRV2 тільки встановлюємо роль DHCP, ніяких налаштувань не виробляємо.Після цього приступаємо до налаштування DHCP failover.

Налаштування DHCP failover

Для початку налаштуємо режим балансування (Load balance). Для цього заходимо на сервер SRV1 і відкриваємо оснащення DHCP. Вибираємо область, натискаємо на ній правою клавішею і в контекстному меню відзначаємо пункт «Configure Failover».



Запускається майстер настройки.У першому вікні майстра вибираємо області, для яких буде налаштовуватися відмовостійкість. Втім, в нашому випадку вибору немає, оскільки область всього одна.



Додаємо сервер-партнер, на якому буде знаходиться другий примірник області.



на наступному етапі вибирається режим роботи і основні параметри.

В якості імені для створюваних довірчих відносин (Relationship Name) за замовчуванням використовуються імена серверів, але в принципі можна вказувати що завгодно. Режим роботи (Mode) вибираємо балансування (Load balance) і в полі «Load Balance Percentage» вказуємо в процентах пропорції, в яких буде розділена область між двома серверами.За замовчуванням навантаження ділиться в співвідношенні 50 \ 50, але ми зробимо за звичною схемою 80 \ 20, тобто 80% обслуговує основний сервер і 20% резервний.

Тепер два дуже важливих параметри, на яких треба звернути увагу:

• State Switchover Interval - інтервал часу, після закінчення якого партнер вважається недоступним (PARTNER_DOWN).Якщо не ставити цей параметр, то при падінні партнера автоматичного перемикання не відбудеться і переключаться доведеться вручну;
• Maximum Client Lead Time - дуже цікавий параметр, що визначає термін продовження оренди в разі падіння основного сервера. Коли клієнт намагається продовжити оренду, отриману на основному сервері, то резервний сервер продовжує її нема на термін оренди, зазначений у властивостях області, а на час, вказаний в даному параметрі.І так поки основний сервер не відновить роботу. Також цей параметр визначає, скільки часу сервер буде чекати повернення партнера зі стану PARTNER_DOWN перш ніж забрати контроль над всією областю. А ще цей параметр визначає час переходу в нормальний стан при поверненні партнера.

Примітка. Параметри State Switchover Interva і Maximum Client Lead Time визначають швидкість спрацьовування failover-а. Кожен з партнерів обслуговує свій діапазон адрес до того моменту, поки один з серверів не перейде в стан PARTNER_DOWN і не пройде час, вказане в параметрі Maximum Client Lead Time.Тільки після цього "залишився в живих" сервер візьме на себе контроль над всією областю.

Сервера повинні безпечно спілкуватися один з одним. Для цього вмикаємо параметр «Enable Message Authentication» і в полі «Shared Secret» задаємо кодове слово, яке сервера буде використовуватися для зв'язку.



На закінчення перевіряємо настройки, підтверджуємо створення failover-а



і чекаємо завершення процесу.



Подивитися настройки і поточний стан партнерів можна у властивостях області, на вкладці «Failover».



Те ж саме можна зробити за допомогою PowerShell.Створюємо довірчі відносини:

Add-DhcpServerv4Failover -ComputerName srv1.test.local -Name "srv1-srv2" -PartnerServer srv2.test.local -ScopeId 10.0.0.0 -LoadBalancePercent 80 -MaxClientLeadTime 00:10:00 -AutoStateTransition $ true -StateSwitchInterval 00:10:00 -SharedSecret "12345678" -Force

Перевіряємо результат:

Get-DhcpServerv4Failover -Name "srv1-srv2" | fl



Тепер змінимо конфігурацію, спочатку відключивши failover.Для цього в оснащенні DHCP натискаємо на область і вибираємо пункт меню «Deconfigure Failover».



Потім підтверджуємо видалення довірчих відносин,



ще раз підтверджуємо видалення



і чекаємо завершення. При видаленні на сервері-партнері будуть видалені всі області, для яких був налаштований failover.



Для видалення за допомогою PowerShell досить виконати одну команду:

Remove -DhcpServerv4Failover -Name "srv1-srv2" -Force



Тепер налаштуємо DHCP failover в режимі Hot standby. Для цього знову запускаємо майстер на SRV1 і вибираємо сервер-партнер. Зверніть увагу, що якщо між серверами раніше вже були налаштовані довірчі відносини, то їх можна використовувати повторно.



Вибираємо режим Hot standby і виробляємо налаштування. Для режиму Hot standby вони дещо відрізняються:

• Role of Partner Server - сервери поділяються на основний (Active) і резервний (Standby) і треба вибрати роль для сервера-партнера. Якщо ми вибираємо Standby, то поточний сервер відповідно стає Active, і навпаки.
• Addresses reserved for standby server - ще один важливий параметр, що задає відсоток адрес, виділений для резервного сервера. Суть цього параметра в тому, що після виходу з ладу основного сервера і переходу в стан PARTNER_DOWN має пройти час, заданий в параметрі Maximum Client Lead Time. Тільки після цього резервний сервер забирає контроль над над усім діапазоном IP-адрес.У проміжку між цими двома подіями резервний сервер може обслуговувати клієнтів, видаючи їм адреси з даного резерву. Якщо цей параметр встановити в нуль, то резервний сервер не зможе видавати адреси до тих пір, поки не захопить всю область.



Далі все так само - перевіряємо настройки, підтверджуємо їх



і чекаємо завершення.



Те ж з консолі PowerShell:

Add-DhcpServerv4Failover -ComputerName srv1.test.local -Name "srv1-srv2" -PartnerServer srv2.test.local -ScopeId 10.0.0.0 -ReservePercent 10 -MaxClientLeadTime 00:10:00 -AutoStateTransition $ true -StateSwitchInterval 00:10:00 -SharedSecret "12345678" -Force



Змінити настройки та режим роботи DHCP failover можна "на льоту", не видаляючи поточну конфігурацію.Для цього в оснащенні управління треба вибрати розділ IPv4 (або IPv6, якщо failover налаштовувався для цього протоколу), натиснути правою кнопкою миші і вибрати пункт «Properties».



Потім перейти на вкладку «Failover», вибрати довірчі відносини і натиснути «Edit».



У вікні ми можемо поміняти абсолютно будь-які налаштування і навіть змінити режим роботи failover-а, наприклад перейти з Load Balance на Hot Standby.



А тепер за допомогою PowerShell повернемося назад до режиму балансування, попутно змінивши інтервали MaxClientLeadTime і StateSwitchInterval:

Set-DhcpServerv4Failover -Name "srv1-srv2" -Mode LoadBalance -LoadBalancePercent 80 -MaxClientLeadTime 00:02:00 -StateSwitchInterval 00:02:00 -Force



Тестування роботи DHCP failover

На завершення давайте протестуємо роботу DHCP failover.На попередньому етапі ми зменшили до 2 хвилин тимчасові інтервали, що відповідають за перемикання. Також для прискорення процесу у властивостях області зменшимо час оренди до 10 хвилин.



Тепер зайдемо в властивості DHCP failover і перевіримо стан серверів-партнерів.



Запам'ятаємо отримані настройки на клієнті.Як бачите, клієнт має адресу 10.0.0.20, отриманий з сервера 10.0.0.1 (SRV1).



Тепер погасимо сервіс DHCP на SRV1 і перейдемо на SRV2. Тут відкриємо оснащення DHCP і перейдемо в налаштування довірчих відносин. Як бачите, після втрати зв'язку з партнером тут стала активна кнопка "Change to partner down".За допомогою цієї кнопки можна перевести сервер в стан PARTNER_DOWN, не чекаючи поки закінчиться State Switcover Interval.



Ще раз перевіряємо стан серверів. Резервний сервер перейшов в стан Partner down і готовий до захоплення контролю над областю.



Чекаємо 2 хвилини і ще раз перевіряємо настройки на клієнті.Як можна побачити, IP-адреса не змінився, при цьому в якості DHCP-сервера вказаний вже 10.0.0.2 (SRV2). Тобто клієнт успішно продовжив на SRV2 оренду адреси, отриманого від SRV1.



Повертаємо SRV1 в лад, чекаємо поки клієнт оновить оренду і ще раз перевіряємо його налаштування. Як бачите, IP-адреса не змінився, а адреса DHCP-сервера знову SRV1.



Ось так і працює DHCP-failover.

.