Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)

Призначення цієї статті – спростити налаштування сервісу DHCP для фабрики VXLAN BGP EVPN and DFA з використанням Microsoft Windows Server 2016/2019.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
В офіційній документації DHCP сервіс на базі Microsoft Windows Server 2012 для фабрики налаштовується як SuperScope, що містить пул Loopback (в даному пулі - це виняток з пулу всіх IP адрес пула (excluded IP address = pool)) і пули видачі IP адрес для реальних мереж (тут особливість – налаштовуються policy – ​​у яких фільтруються DHCP Relay Circuit ID і цей DHCP relay Circuit ID містить VNI для мережі, т. е. іншого пулу цей DHCP Relay Circuit ID буде трохи іншим).

To configure DHCP on Windows server. 

1. Create a super scope. Within the super scope, create scope B, S1, S2, S3, …, Sn for the subnet B and the subnets for each segment. 
2. In scope B,  specify the 'Exclusion Range' to be the entire address range (so that the offered address range must not be from this scope). 
3. For every segment scope Si, specify a policy that matches on Agent Circuit ID with value of '0108000600XXXXXX', where '0108000600' is a fixed value for all segments, the 6 numbers "XXXXXX" is the segment ID value in hexadecimal. Also ensure to check the Append wildcard(*) check box. 
4. Set the policy address range to the entire range of the scope.

Ця стаття містить відповіді на такі питання:


Зміст

Запровадження

У цій частині коротко перераховані всі вихідні дані: Інструкції з налаштування мережевого обладнання, RFC, що використовуються в DHCP пакетах у фабриках eVPN, довідково наведено еволюцію налаштувань DHCP сервера на Microsoft Windows Server 2012 у документації Cisco. А також короткі відомості про Superscope та Policy у сервісі DHCP на серверах Microsoft Windows Server.

Як налаштовується DHCP Relay на фабриці VXLAN BGP EVPN, DFA

Налаштування DHCP Relay на фабриці VXLAN BGP EVPN не є основною темою цієї статті, оскільки вона досить проста. Наводжу посилання на документацію та спойлер з налаштувань на мережному обладнанні.

Приклад налаштування DHCP Relay на Nexus 9000V v9.2(3)

service dhcp
ip dhcp relay
ip dhcp relay information option
ip dhcp relay information option vpn
interface loopback10
  vrf member VRF1
  ip address 10.120.0.1/32 tag 1234567
interface Vlan12
  no shutdown
  vrf member VRF1
  no ip redirects
  ip address 10.120.251.1/24 tag 1234567
  no ipv6 redirects
  fabric forwarding mode anycast-gateway
  ip dhcp relay address 10.0.0.5
  ip dhcp relay source-interface loopback10

RFC які реалізовані у роботі сервісу DHCP Relay у фабриках VXLAN BGP EVPN

RFC#6607: Sub-option 151(0x97) — Virtual Subnet Selection

•	Sub-option 151(0x97) - Virtual Subnet Selection (Defined in RFC#6607)
Used to convey VRF related information to the DHCP server in an MPLS-VPN and VXLAN EVPN multi-tenant environment.

Передається «ім'я» VRF, в якому знаходиться клієнт.

RFC#5107: Sub-option 11(0xb) — Server ID Override

•	Sub-option 11(0xb) - Server ID Override (Defined in RFC#5107.) 
The server identifier (server ID) override sub-option allows the DHCP relay agent to specify a new value for the server ID option, which is inserted by the DHCP server in the reply packet. This sub-option allows the DHCP relay agent to act as the actual DHCP server such that the renew requests will come to the relay agent rather than the DHCP server directly. The server ID override sub-option contains the incoming interface IP address, which is the IP address on the relay agent that is accessible from the client. Using this information, the DHCP client sends all renew and release request packets to the relay agent. The relay agent adds all of the appropriate sub-options and then forwards the renew and release request packets to the original DHCP server. For this function, Cisco’s proprietary implementation is sub-option 152(0x98). You can use the ip dhcp relay sub-option type cisco command to manage the function.

Опція використовується для того, щоб клієнт надсилав запит про перепродовження оренди адреси на IP адресу, що використовується в цій опції. (У Cisco VXLAN BGP EVPN – це Anycast адреса шлюзу за замовчуванням для клієнта.)

RFC # 3527: Sub-option 5 (0x5) - Link Selection

Sub-option 5(0x5) - Link Selection (Defined in RFC#3527.) 

The link selection sub-option provides a mechanism to separate the subnet/link on which the DHCP client resides from the gateway address (giaddr), which can be used to communicate with the relay agent by the DHCP server. The relay agent will set the sub-option to the correct subscriber subnet and the DHCP server will use that value to assign an IP address rather than the giaddr value. The relay agent will set the giaddr to its own IP address so that DHCP messages are able to be forwarded over the network. For this function, Cisco’s proprietary implementation is sub-option 150(0x96). You can use the ip dhcp relay sub-option type ciscocommand to manage the function.

Адреса мережі, з якої клієнту необхідна IP-адреса.

Еволюція документації Cisco щодо налаштування DHCP на Microsoft Windows Server 2012

Включив цей розділ тому, що простежується позитивна тенденція з боку вендора:

Nexus 9000 VXLAN Configuration Guide 7.3

У документації наведено лише налаштування DHCP Relay на мережному обладнанні.

Для налаштування DHCP на Windows Server 2012 використовувалася інша стаття:

Configuring Microsoft Windows Server 2012 забезпечує DHCP послуги в eVPN Scenario (VXLAN, Cisco One Fabric, etc)

У цій статті вказується, що для кожної мережі/VNI необхідна своя зв'язка SuperScope та свій власний набір Loopback адрес:

If multiple DHCP Scopes are required for multiple subnets, you need to create one LoopbackX per subnet/vlan on all LEAFS and create a superscope with a loopbackX range scope and actual client IP subnet scope per vlan.

Nexus 9000 VXLAN Configuration Guide 9.3

Додали налаштування Windows 2012 Server до документації з налаштування мережного обладнання. Для всіх використовуваних пулів адрес необхідний один SuperScope на ЦОД і цей SuperScope є межею ЦОД:

Create Superscope for all scopes you want to use for Option 82-based policies.
Note
The Superscope should combine all scopes and act as the administrative boundary.

Cisco Dynamic Fabric Automation

Дуже ємно розказано про все:

Let us assume the switch is using the address from subnet B (it can be the backbone subnet, management subnet, or any customer designated subnet for this purpose) to communicate with the Windows DHCP server. In DFA we have subnets S1, S2, S3, …, Sn for segment s1, s2, s3, …, sn. 

To configure DHCP on Windows server. 

1. Create a super scope. Within the super scope, create scope B, S1, S2, S3, …, Sn for the subnet B and the subnets for each segment. 
2. In scope B,  specify the 'Exclusion Range' to be the entire address range (so that the offered address range must not be from this scope). 
3. For every segment scope Si, specify a policy that matches on Agent Circuit ID with value of '0108000600XXXXXX', where '0108000600' is a fixed value for all segments, the 6 numbers "XXXXXX" is the segment ID value in hexadecimal. Also ensure to check the Append wildcard(*) check box. 
4. Set the policy address range to the entire range of the scope.

DHCP у Microsoft Windows Server (superscope & policy)

SuperScope

Superscope is an administrative feature of a DHCP server that can be used to group multiple scopes as a single administrative entity. Superscope allows a DHCP server to provide leases from more than one scope to clients on a single physical network. Scopes added to a superscope are called member scopes.

Що таке SuperScope – це функціонал, що дозволяє об'єднати кілька пулів IP-адрес в одну адміністративну одиницю. Щоб анонсувати користувачам в одній фізичній мережі (в одному VLAN), ip адреси з декількох пулів. Якщо запит прийшов до пулу адрес у складі SuperScope, то видати клієнту адресу можна з іншого Scope, що входить до цього SuperScope.

політика

The DHCP Server role in Windows Server 2012 introduces a new feature that allows you to create IPv4 policies that specify custom IP address and option assignments for DHCP clients based on a set of conditions.

The policy based assignment (PBA) feature allows you to group DHCP clients by specific attributes based on fields contained in the DHCP client request packet. PBA enables targeted administration and greater control of the configuration parameters delivered to network devices with DHCP.

Політики – дозволяють призначати користувачам IP-адреси залежно від типу користувача або параметра. Інженери Cisco використовують політики у Windows Server 2012 для фільтрації з VNI (Virtual Network Identifier).

Основна частина

У цьому розділі проведено результати досліджень, чому не підтримується, як це працює (логіка), що нового і як це нове допоможе нам.

Чому не підтримується Microsoft Windows Server 2000/2003/2008?

Microsoft Windows Server 2008 і раніше версії не обробляють опцію 82 (Option 82) і зворотний пакет відправляють без опції 82.

Win2k8 R2 DHCP problem with Option82

  1. Запит від клієнта надсилається Broadcast (DHCP Discover).
  2. Обладнання (Nexus) відправляє пакет до сервера DHCP (DHCP Discover + Option 82).
  3. DHCP Сервер приймає пакет, обробляє, відправляє назад, але без опції 82. (DHCP Offer – without option 82)
  4. Устаткування (Nexus) приймає пакет від сервера DHCP. (DHCP Offer) Але не надсилає цей пакет до кінцевого користувача.

Дані сніфера – на Windows Server 2008 та на клієнті DHCPWindows Server 2008 отримує запит від мережного обладнання. (Option 82 є у списку)

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Windows Server 2008 надсилає відповідь до мережного обладнання. (Option 82 відсутня у списку опцій у пакеті)
Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Запит від клієнта – присутні DHCP Discover та відсутні DHCP Offer
Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Статистика на мережному обладнанні:

NEXUS-9000V-SW-1# show ip dhcp relay statistics 
----------------------------------------------------------------------
Message Type             Rx              Tx           Drops  
----------------------------------------------------------------------
Discover                  8               8               0
Offer                     8               8               0
Request(*)                0               0               0
Ack                       0               0               0
Release(*)                0               0               0
Decline                   0               0               0
Inform(*)                 0               0               0
Nack                      0               0               0
----------------------------------------------------------------------
Total                    16              16               0
----------------------------------------------------------------------

DHCP L3 FWD:
Total Packets Received                           :         0
Total Packets Forwarded                          :         0
Total Packets Dropped                            :         0
Non DHCP:
Total Packets Received                           :         0
Total Packets Forwarded                          :         0
Total Packets Dropped                            :         0
DROP:
DHCP Relay not enabled                           :         0
Invalid DHCP message type                        :         0
Interface error                                  :         0
Tx failure towards server                        :         0
Tx failure towards client                        :         0
Unknown output interface                         :         0
Unknown vrf or interface for server              :         0
Max hops exceeded                                :         0
Option 82 validation failed                      :         0
Packet Malformed                                 :         0
Relay Trusted port not configured                :         0
DHCP Request dropped on MCT                      :         0
*  -  These counters will show correct value when switch 
receives DHCP request packet with destination ip as broadcast
address. If request is unicast it will be HW switched
NEXUS-9000V-SW-1#

Чому в Microsoft Windows Server 2012 таке складне налаштування?

Microsoft Windows Server 2012 ще не підтримується RFC#3527 (Option 82 Sub-option 5(0x5) — Link Selection)
Але вже реалізовано функціонал Policy.

Як це працює:

  • Microsoft Windows Server 2012 є супер-пул (SuperScope), в якому є адреси Loopback і пули для реальних мереж.
  • Вибір пулу для видачі IP адреси потрапляє в SuperScope, тому що відповідь надійшла від DHCP Relay з Source адреси Loopback, що входить у SuperScope.
  • Використовуючи Policy запит вибирає з Superscope той member scope, VNI якого міститься в Option 82 Suboption 1 Agent Circuit ID. (“0108000600”+ 24 біта VNI + 24 біта значення яких мені невідомо, але сніффер показує значення 0 у цьому полі.)

Як спрощується налаштування Microsoft Windows Server 2016/2019?

У Microsoft Windows Server 2016 реалізовано функціонал RFC #3527. Т. е. Windows Server 2016 вміє розпізнавати правильну мережу з атрибуту Option 82 Sub-option 5(0x5) — Link Selection

Виникають відразу 3 питання:

  • Чи можемо обійтися без Superscope?
  • Чи можемо обійтися без Policy та перекладу VNI у 16-тирічний вигляд?
  • Чи можемо обійтися без Scope для Loopback адрес DHCP Source?

Q. Чи можемо обійтися без Superscope?
A. Так, scope можна створювати одразу в області IPv4 адрес.
Q. Чи можемо обійтися без Policy та перекладу VNI у 16-тирічний вигляд?
A. Так, вибір мережі відбувається на основі Option 82 Suboption 0x5,
Q. Чи можемо обійтися без Scope для Loopback адрес DHCP Source?
A. Ні, не можемо. Оскільки Microsoft Windows Server 2016/2019 діє захист від зловмисних DHCP запитів. Т. е. всі запити з адрес, яких немає в пулі DHCP сервера вважаються зловмисними.

DHCP Subnet Selection Options

 Note
All relay agent IP addresses (GIADDR) must be part of an active DHCP scope IP address range. Any GIADDR outside of the DHCP scope IP address ranges is considered a rogue relay and Windows DHCP Server will not acknowledge DHCP client requests from those relay agents.

A special scope can be created to "authorize" relay agents. Create a scope with the GIADDR (or multiple if the GIADDR's are sequential IP addresses), exclude the GIADDR address(es) from distribution, and then activate the scope. This will authorize the relay agents while preventing the GIADDR addresses from being assigned.

Тобто. для налаштування на Microsoft Windows Server 2016/2019 DHCP пула для VXLAN BGP EVPN фабрики необхідно лише:

  • Створити пул для адрес Source Relay.
  • Створити пул для клієнтських мереж

Що не є необхідним (але можна налаштувати і це буде працювати, і не заважатиме працювати):

  • Створювати Policy
  • Створювати SuperScope

ПрикладПриклад налаштування DHCP сервера (присутні 2 реальні клієнти DHCP — клієнти підключені до VXLAN фабрики)

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Приклад налаштування пула користувача:

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Приклад налаштування пула користувача (вибрані політики — для доказу, що політики не використовувалися для коректної роботи пулу):

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Приклад налаштування пулу для Source адрес DHCP Relay (діапазон адрес для видачі повністю відповідає виключенню з пулу адрес):

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Настроювання DHCP сервісу на Microsoft Windows Server 2019

Налаштування пулу для Loopback адрес (source) для DHCP Relay.

Створюємо новий пул (Scope) у просторі IPv4.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Майстер створення пулу. «Next >»

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Налаштовуємо ім'я пулу та опис (Description) пулу.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Задаємо діапазон IP адрес для Loopback і маску для пулу.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Додаємо винятки. Діапазон винятків має повністю збігатися з діапазоном пулу.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Час оренди. «Next >»

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Запит: Налаштуватимете DHCP опції зараз (DNS, WINS, Gateway, Domain) або зробите це пізніше. Швидше відповісти ні, і після активувати пул вручну. Або пройти остаточно не заповнюючи жодну інформацію й у кінці майстра активувати пул.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Підтверджуємо, що опції не налаштовані, пул не активовано. «Finish»

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Активуємо пул вручну. - Вибираємо Scope і в контекстному меню - вибираємо "Activate".

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)

Створюємо пул для користувачів/серверів.

Створюємо новий пул.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Майстер створення пулу. «Next >»

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Налаштовуємо ім'я пулу та опис (Description) пулу.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Задаємо діапазон IP адрес для Loopback і маску для пулу.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Додаємо винятки. (За замовчуванням винятків не потрібно) «Next >»

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Час оренди. «Next >»

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Запит: Налаштуватимете DHCP опції зараз (DNS, WINS, Gateway, Domain) або зробите це пізніше. Та налаштуємо зараз.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Налаштовуємо адресу шлюзу за замовчуванням.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Налаштовуємо домен та адреси DNS серверів.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Налаштовуємо IP-адреси WINS серверів.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Активація Scope.

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)
Пул налаштований. «Finish»

Настроювання Microsoft Windows Server 2016/2019 для надання DHCP сервісів для VXLAN (DFA)

Висновок

Використання Windows Server 2016/2019 зменшує складність налаштування сервера DHCP для VXLAN фабрики (або будь-якої іншої фабрики). (Не потрібна передача IT спеціалістам спеціальних зв'язків: Network/Agent Circuit ID для прописування фільтрів.)

Чи працюватиме конфігурація для Windows Server 2012 на нових серверах 2016/2019 – нехай буде працювати.

У цьому документі наведено посилання на 2 версії: 7.X та 9.3. Це пов'язано з тим, що версія 7.0 (3) I7 (7) – Cisco Suggested release, а версія 9.3 – є інноваційною (аж до підтримки Multicast через VXLAN Multisite).

Список джерел

  1. Nexus 9000 VXLAN Configuration Guide 7.x
  2. Nexus 9000 VXLAN Configuration Guide 9.3
  3. DFA (Cisco Dynamic Fabric Automation)
  4. Configuring Microsoft Windows Server 2012 забезпечує DHCP послуги в eVPN Scenario (VXLAN, Cisco One Fabric, etc)
  5. 3.4 DHCP Superscopes
  6. Introduction to DHCP Policies
  7. Win2k8 R2 DHCP problem with Option82
  8. DHCP Subnet Selection Options

Джерело: habr.com

Додати коментар або відгук