Network Controller: програмно-визначаються мережі в Windows Server 2016. Частина 1: можливості та служби

минулого року ми розповідали про Storage Spaces Direct — програмно-визначається сховище Windows Server 2016. Сьогодні поговоримо ще про одну новинку Microsoft, на цей раз з області програмно-обумовлених мереж (SDN). Network Controller — це служба управління мережевою інфраструктурою в Windows Server 2016.

Зміст
Звідки пішли віртуальні мережі?
Windows Server 2016: Network Controller
Служби Network Controller


Звідки пішли віртуальні мережі?
VLAN. Перші віртуальні мережі з'явилися в 1998 році. Це були віртуальні локальні мережі VLAN, що працюють по протоколу IEEE 802.1 Q. Технологія дозволяє розділяти одну L2-мережа на безліч логічних L2-мереж. Але VLAN має обмеження, яке виявилося істотним зростанням кількості мереж: максимальна кількість з'єднань на одній L2-мережі — 4096. Для його подолання виробники почали розробляти нові протоколи з більшою масштабністю, наприклад: IEEE 802.1 ad і IEEE 802.1 ah. Ми не будемо зупинятися на них детально і підемо далі.

VXLAN, STT і NVGRE. У 2011 році компанії VMware, Arista і Cisco випускають протокол VXLAN, що дозволяє створювати до 16 мільйонів логічних L2-сегментів в одній мережі. Паралельно з ними Microsoft створює протокол NVGRE схожою специфікації, яка починає розвиватися в Windows Server 2012. Компанія Nicira пропонує протокол STT. Питання з обмеженою масштабованістю вирішено, можна створювати скільки завгодно багато мереж. Із зростанням мереж інфраструктура стає складною в управлінні, і з'являється необхідність централізованої консолі для налаштування віртуального і фізичного обладнання. Так виникає концепція програмно-обумовлених мереж (SDN) з централізованим управлінням мережевою інфраструктурою.

SDN. Підхід до управління мережею за допомогою уніфікованих програмних засобів. Однією з перших технологію SDN представила компанія Nicira. Після покупки Nicira компанія VMware створює продукт VMware NSX, використовуючи протокол VXLAN.

У 2013 році Microsoft пропонує свою версію програмно-визначається мережі у редакції Windows Server 2012R2 на базі протоколу NVGRE. У протоколу NVGRE було кілька недоліків:

  • управління віртуальними мережами у Windows Server 2012R2 здійснювалося лише через Virtual Machine Manager (VMM). Він був точкою зберігання всіх конфігурацій віртуальної інфраструктури і єдиної точки відмови.
  • виробники обладнання в якості основного протоколу використовували VXLAN, і лише деякі впровадили підтримку NVGRE.
В редакції Windows Server 2016 компанія Microsoft представила нову реалізацію програмно-обумовлених мереж вже на базі протоколу VXLAN – Network Controller (NC). Дана служба Доступна тільки в редакції Windows Server 2016 Datacenter. Давайте розглянемо особливості Network Controller.

Windows Server 2016: Network Controller
Network Controller — єдина точка управління і моніторингу для всіх фізичних і віртуальних мереж домену. З допомогою нього налаштовується IP-підмережі, VLAN, маршрутизатори і міжмережеві екрани. NС зберігає інформацію про топологію мережі, балансує трафік і задає правила NAT.

Словник
Сервіси:

  • Virtual Network Management — служба управління виртуализованными мережами.
  • Software Load Balancer Management — служба балансування трафіку і правил NAT.
  • Firewall Management — служба налаштування міжмережевих екранів і аркушів контролю доступу до ВМ.
  • RAS Management Gateway — служба організації VPN-тунелів.
  • iDNS — служба створення віртуальних DNS-серверів.
Мережі:

  • Backend Network (provider addresses, PA) — мережа з провайдерськими адресами. Тут створюються віртуальні тунелі і проходить трафік.
  • Management Network — мережа управління, через неї проходить трафік між компонентами SDN.
  • VM network (customer addresses, CA) — виртуализованная мережа, до якої підключені віртуальні машини.
  • Transit Network — транзитна мережа. За нею йде обмін трафіком між BGP і SLB Multiplexer/Gateway. По транзитній мережі публікуються маршрути на BGP.
Служби на хості:

  • Azure VFP Switch Extension — розширення світча Hyper-V. Додає віртуального перемикач функціонал L3-комутатора. Включає в себе distributed load balancer(DLB) і Distributed firewall (DFW).
  • Distributed load balancer — балансувальник трафіку.
  • Distributed firewall — міжмережевий екран, відповідає за виконання правил доступу до ВМ.
  • Distributed router (vSwitch) — віртуальний маршрутизатор.
  • NC Host Agent — отримує від NC інформацію про віртуальних мережах та правила Firewall.
  • SLB Host Agent — отримує від NC правила балансування.
Службові віртуальні машини:

  • SLB multiplexer (MUX) — віртуальні машини Windows Server з роллю Software Load Balancing. На них міститься інформація про правила балансування трафіку. MUX публікують маршрути на BGP і обробляють вхідні пакети.
  • Gateway — віртуальний шлюз.
В цілому принцип архітектури Network Controller такий: вузли контролера розміщуються на окремих ВМ, а маршрутизації, балансування трафіку і міжмережевого екрану — на серверах віртуалізації.

Архітектура Network Controller.

Network Controller створений на базі програмного комутатора Open vSwitch. Цей комутатор також використовується програмно-визначаються мережах VMWare NSX і OpenStack Neutron. Він підтримує протокол управління OVSDB (Open vSwitch Database), який відповідає за обмін інформацією між мережевим обладнанням.

Розберемо, як працює Network Controller. Сервери, віртуальні машини, віртуальні комутатори гіпервізора реєструються у NC. Після реєстрації і налаштування серверів встановлюють з'єднання з Network Controller і отримують від нього всю необхідну інформацію про мережі віртуальних машин, правила балансування і VPN-тунелі.

Віртуальні мережі на хостах підключені до віртуального комутатора Hyper-V з розширенням Azure VFP Switch Extension. Через нього відбувається управління віртуальними портами, до яких підключені ВМ:

  • включення і відключення портів;
  • управління смугою пропускання в обидві сторони;
  • призначення пріоритетів пакетах по класах (COS);
  • призначення цілей: ведення статистики і управління ACL на портах віртуального комутатора.
Служби Network Controller
Розберемо докладно, які служби входять в Network Controller і чим вони керують.

Virtual Network Management. Це служба створення віртуальних мереж та управління ними. Вона управляє віртуальними комутаторами Hyper-V і віртуальними мережевими адаптерами на віртуальних машинах. Virtual Network Management містить налаштування віртуальної мережі, які застосовуються іншими службами Network Controller.

Firewall Management. Ця служба спрощує організацію міжмережевого екранування: не потрібно налаштовувати міжмережеві екрани на кожній ВМ вручну і запам'ятовувати конфігурації. Network Controller зберігає всі налаштування Access Control Lists (ACL) для віртуальних машин і мереж. Distributed Firewall на хостах запитує в нього інформацію та застосовує правила до потрібних мереж та віртуальних машин. Налаштування на стороні віртуальних машин не потрібно.

Нижче схема принципу роботи міжмережевого екранування в Network Controller. На ній Northbound – інтерфейс, через який здійснюється управління Network Controller з використанням REST API. Southbound служить для зв'язку з мережевими пристроями, SLB-мультиплексорами, шлюзами і серверами, для мережевого виявлення і інших служб. Шлюзи визначають, для якої віртуальної мережі потрібно побудувати тунелі. Потім вони пересилають прийшли пакети по тунелю на сервери з віртуальними машинами, підключеними до потрібної віртуальної мережі.


Так влаштована служба міжмережевого екранування в Network Controller.

Software Load Balancer Management. Служба працює на рівні віртуальних мереж і балансує трафік на рівні L4. Балансування трафіку відбувається за допомогою службових віртуальних машин SLB Multiplexer (MUX) і BGP-маршрутизаторів. На один NC можна зробити 8 MUX. Від Network Controller MUX отримують правила маршрутизації. Мультиплексори анонсують маршрути /32 для кожного VIP через BGP-маршрутизатори.

Приклад
  1. На BGP-маршрутизатор приходить пакет для певного віртуального IP-адреси.
  2. BGP-маршрутизатор перевіряє, який у пакета наступний вузол. В даному випадку це MUX.

  3. За таблицями правил балансування, отриманими від Network Controller, MUX визначає призначення пакету: віртуалізовану мережа, хост і віртуальну машину.

  4. Далі MUX формує VXLAN пакет та надсилає його хосту в мережу Backend.
  5. Хост приймає пакет і передає це віртуального комутатора (vSwitch), який визначає віртуальну машину для отримання пакета.
  6. Пакет декапсулируется, аналізується і відправляється віртуальній машині.
  7. Віртуальна машина обробляє пакет. Адресу відправника, що не змінюється після проходження пакету через MUX. Тому віртуальна машина не бачить за ним MUX балансувальника і зчитує, що пакет прийшов безпосередньо з інтернету. Така балансування називається прозорою (transparent load balancing).
  8. ВМ посилає відповідь.
  9. Віртуальний комутатор на хості визначає, що це відповідь на пакет, який прийшов з балансувальника, і відправляє його назад в Інтернет. Причому не за тією ж ланцюжку, а переписує адреса відправника на IP балансувальника і відправляє його відразу в інтернеті. Даний підхід називається Direct Server Return (DSR). Це значно прискорює процес обробки пакетів.

Балансування трафіку в Network Controller.

У Windows Server 2016 правила NAT тепер також задаються через Software Load Balancer Management. Network Controller знає, для якої мережі організований NAT. MUX містить інформацію про хостах і віртуальних машинах, підключених до мережі, для якої організується NAT.
NAT в Network Controller реалізований шляхом балансування трафіку для групи з одного хоста. На даний момент підтримується балансування тільки TCP — і UDP-трафіку.

RAS Gateway Manager. Ця служба створення VPN-тунелів для зв'язку хмарної інфраструктури з фізичної. У Network Controller можна будувати VPN будь-яким зручним способом:

  • через IPsec, який тепер працює і з IKEv1, і з IKEv2;
  • створювати SSTP-тунелі;
  • створювати GRE-тунелі.
Кінцевою точкою тунелю виступає віртуальний шлюз Gateway. Він організовує тунель, інкапсулює трафік в VXLAN-пакети і пересилається його хостам.


Служба створення VPN-тунелів RAG Management Gateway.

iDNS: Internal DNS. Служба дозволяє створювати віртуальні DNS-сервера. На даний момент існує як реалізація концепції і підтримує роботу тільки з однією DNS-зоною, що незручно для клієнтів. Мультитенантный режим буде доданий в наступній редакції Windows Server 2016.

Розглянемо, як працює служба iDNS. Організовується DNS-зона, в якій будуть створюватися клієнтські зони. Налаштовується Network Controller: вказується площа DNS-зона і вищестоящі DNS-сервери, які будуть обробляти запити, що надходять від клієнтів.
Після налаштування iDNS Network Controller поширює інформацію за хостами. Служба iDNS proxy на хостах обробляє DNS-запити від клієнтів. Працює це так:

  1. Клієнт посилає запит на дозвіл імені.
  2. iDNS-proxy дивиться, обслуговує він запити, витікаючі з даної віртуальної мережі. Це визначається з первинного DNS-суффиксу в мережного адаптера. Він повинен збігатися із зоною, що обслуговується iDNS. Якщо iDNS-proxy обслуговує запити з цієї мережі, то відправляє запит вищестоящому DNS-сервера.
  3. DNS-сервер перевіряє, чи належить запит до внутрішніх зон. Якщо клієнт намагається вирішити внутрішнє ім'я, то DNS-сервер його обробляє. Якщо ні – відправляє запит далі.



Принцип роботи служби iDNS в Network Controller.

Приклад
Є віртуальна мережа, для якої доступна служба iDNS. При підключенні віртуальних машин до цієї мережі, в кореневій зоні DNS, зазначеної при налаштуванні, буде створена зона з ім'ям, що збігається з ID віртуальної мережі. У цій зоні будуть створюватися А-записи для віртуальних машин.


А-записи віртуальних машин в службі iDNS.
Все, про що ми докладно розповіли вище, — це служби Network Controller, які увійшли в офіційний реліз Windows Server 2016. Нам також вдалося протестувати служби, увійшли до Technical Preview, але вилучені з релізу. Одна з таких служб — Canary Network Diagnostics для моніторингу продуктивності мережі, збору статистики по роботі фізичного і віртуального мережевого устаткування і виявлення помилок. Доповнення повинні увійти в реліз Windows Server 2016R2, і про них ми поговоримо в майбутньому.

У наступній частині ми розповімо, як розгорнути Network Controller і про деяких цікавих «підводні камені», які ми виявили в ході тестування.

Пишіть питання в коментарях.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.