Для того что бы заставить виртуальные сети работать, нам нужно подготовить нашу инфраструктуру к NSX-T. В ходе этой подготовки нам нужно проделать несколько конфигураций на оборудовании, настроить несколько параметров в самом NSX, определить в каком магазине дешевле купить виртуальный коммутатор для NSX выбрать виртуальный коммутатор для Data Plane, но обо всем по порядку. Перед установкой NSX-T нужно выполнить:
- Увеличение MTU
- Создать IP Pool в NSX
- Определиться с выбором виртуального коммутатора для NSX
- Создать Транспортные Зоны в NSX
- Создать профили для Транспортных Нод
- И наконец добавить хосты в NSX
MTU
Первое что нужно сделать перед тем как непосредственно приступить к развертыванию виртуальных сетей, это увеличить MTU на всех сетевых устройствах и виртуальных коммутаторах в vSphere до 1600. Это нужно что бы физические устройства, участвующие в виртуальной сети, могли обмениваться инкапсулированным трафиком между собой. Для чего нужна инкапсуляция и как она работает рассмотрим позже. Без нее не будут работать почти что все функции NSX-T. MTU можно оставить 1500 разве что том случае, если нам NSX нужен только для распределенного брандмауэра, и мы не хотим использовать все остальное (такие случаи тоже бывают). А так для полноценной виртуальной сети MTU должен быть не ниже 1600.
IP Adress Pools
Пулы IP адресов. Это наборы адресов для использования в служебных целях. В основном используются для назначения IP адресов TEP интерфейсам Транспортных Нод. Когда мы добавляем ESXi к Overlay Транспортной Зоне, на хосте создается TEP интерфейс и ему соответственно нужен IP адрес, который и берется отсюда. TEP интерфейс нужен для возможности общения VM, расположенных на разных Транспортных Нодах внутри одной Транспортной Зоны. Нужно заранее определиться с пулом адресов для этого, с его размером, подсетью и прочими атрибутами. Стоит учесть, что если мы добавляем Транспортную Ноду и в Uplink Profile (о нем ниже) фигурируют два активных аплинка, то и TEP интерфейса будет два и соответственно будет потрачено два адреса из пула.
N-VDS или VDS
А теперь о более знакомом, о виртуальных коммутаторах. Для того что бы любой гипервизор обрабатывал трафик виртуальных машин ему нужна программная сущность для этого, ею на большинстве гипервизоров выступает виртуальный коммутатор. Это совокупность служб и модулей, которые проталкивают пакеты сквозь свои буферы и делают необходимые манипуляции с ними перед тем как выпустить в физический мир, а также производят сегментацию на уровне L2. У vSphere это как известно Standard vSwitch и VDS (Virtual Distributed Switch). NSX-T так же нужна подобная сущность для обработки трафика на Транспортных Нодах (Гипервизорах и Edge). Для этого в NSX-T 3.0 нам предлагается на выбор использовать N-VDS или существующий VDS v7 при добавлении Транспортной Ноды.
N-VDS
N-VDS — это независимый от платформы распределенный виртуальный коммутатор, оснащенный всеми нужными службами и модулями по обработке трафика VM, который устанавливается на Транспортную Ноду при ее добавлении в NSX-T. Поддерживаются все виды транспортных нод – ESXi, KVM и NSX Edge. N-VDS управляется только NSX-ом, ни хост, ни vCenter не способны внести изменения в его конфигурацию, они только могут инициировать подключение VM к сегменту, а NSX Manager получив этот запрос уже отдает распоряжение на N-VDS о коннекте порта VM. NSX Manager-у не нужен vCenter для добавления и управления N-VDS на хостах. Сегменты NSX-T, расположенные на N-VDS видны для vCenter и ESXi хостов как так называемые opaque networks. То есть мы видим в инвентаре иконки порт-групп NSX, можем подключать к ним VM, но не можем производить конфигурацию этих порт-групп. N-VDS не похож на своего собрата из «сферы» и не является консистентным на всех гипервизорах, как это происходит с VDS на vSphere. Конфигурации двух N-VDS, расположенных на разных Транспортных Нодах независимы. Если мы добавляем N-VDS на ESXi хосты у нас есть возможность настроить NIOC на нем, так же, как и на обычном VDS. Сделано это для того что бы была полноценная возможность мигрировать management сеть ESXi на N-VDS и при этом не потерять службу приоретизации трафика. В добавок к этому на N-VDS настраивается LLDP.
VDS
Начиная с vSphere 7.0 у «сферы» появилась новая версия Virtual Distributed Switch – v7. Она поддерживается NSX-T целиком и полностью и является альтернативой N-VDS, но только на ESXi хостах не старше 7.0 версии. То есть при добавлении ESXi хостов в NSX-T вы можете выбрать для обработки трафика существующий VDS v7 вместо добавления N-VDS. Наверное, понятно, что использовать VDS получиться только на ESXi и только не ниже 7.0 версии. VDS управляется вицентром и соответственно что бы добавить в NSX хост с VDS, вам нужно добавить туда сам vCenter. VDS не создается в NSX и соответственно должен уже существовать на ESXi хостах в момент их добавления в NSX. Использование VDS в разы упрощает инфраструктуру и масштабируемость. Стоит только вспомнить о том что физический сетевой интерфейс на хосте ESXi не может быть задействован в качестве аплинка в нескольких виртуальных коммутаторах одновременно и при использовании N-VDS нам придется решать как распределить физические линки – добавить их все в N-VDS и смигрировать management интерфейсы хоста на неуправляемый вицентром коммутатор (такое возможно), или же разделить их между N-VDS и существующим VDS/Standard vSwitch, на которых останется management, что очень не оптимально, а если сетевых линка только два? Да, дилемма. Ее вы избежите если у вас vSphere 7.0, и вы используете VDS v7. Management хоста останется на VDS, и виртуальная сеть NSX будет так же задействовать его для обработки трафика виртуальной сети, а также на нем могут продолжать «жить» виртуальные машины, которые не используют NSX и подключены к простым порт-группам.
Если в инфраструктуре vSphere присутствуют хосты версии ниже чем 7.0, то на них можно развернуть N-VDS в то время как на хостах 7.0 будет использоваться VDS v7. Допускается использование разных типов виртуальных коммутаторов в одной транспортной зоне. Более того в пределах одного ESXi допускается сосуществование VDS/N-VDS/Standard vSwitch.
Вот так выглядят сегменты NSX-T, реализованные на N-VDS/VDS коммутаторах в vSphere.
Транспортные Зоны
После того как мы развернули NSX Manager нам нужно создать Транспортные Зоны (TZ). Транспортная Зона — это набор Транспортных Нод, которые могут общаться друг с другом по сети через TEP интерфейсы (о них позже) и образовывать между собой виртуальную L2 сеть. TZ определяет какой набор Транспортных Нод будет «видет» виртуальные L2 сегменты. Если объяснить более детально, то в NSX-T есть Segments – это виртуальные L2 домены, которые сути являются порт-группами на виртуальном коммутаторе. Так вот, если ESXi (Транспортная Нода) не состоит в Транспортной Зоне, в которой создан определенный сегмент NSX, то соответствующая порт-группа будет недоступна для этого хоста и соответственно виртуальные машины, подключенные к этой порт-группе (Сегменту NSX) не смогут переехать на этот хост. TZ определяет физические границы для L2 Сегментов NSX. Маршрутизация между Сегментами работать будет.
Транспортные зоны бывают двух типов:
- Overlay
- VLAN
Overlay TZ. Используется для внутренних коммуникаций виртуальных машин в пределах виртуальной сети. При этом пакеты VM, покидая Транспортную Ноду инкапсулируются Geneve заголовком (отсюда и требования в 1600 MTU), а по прибытию на другую Транспортную ноду заголовок снимается и пакет доставляется по назначению. Мы обсудим Geneve дальше в статье.
VLAN TZ. Такая транспортная зона используется в качестве канала в физический мир и основана на обычном тегировании пакетов меткой 802.1Q. К ней добавляются «эджи» что бы иметь коннект до физических роутеров. А также для работы смигрированных vmk интерфейсов хоста на N-VDS. Если сказать коротко, то трафик в VLAN TZ не инкапсулируются Geneve и используют для сегментации VLAN-ы. VLAN сегменты могут быть подключены к логическим маршрутизаторам NSX-T для того что бы пользоваться какими-либо сервисами на них (Load Balancing, маршрутизация, NAT, VPN и так далее). Но вот распределенная маршрутизация для VLAN сегментов будет недоступна.
Как правило для простой инфраструктуры или для тестовой среды создаются две TZ – одна VLAN – для связи Edge с физическим роутером, и вторая Overlay – для внутреннего взаимодействия. Так же присутствуют заранее созданные TZ, так называемые Default Zones.
Создание TZ простейшее действие, нам нужно задать адекватное имя для зоны и определиться какая она будет – VLAN или Overlay.
Uplink Profiles
Uplink Profiles определяют как N-VDS/VDS будут подключены к физическим сетевым интерфейсам хоста или интерфейсам Edge. При добавлении Транспортной Ноды к NSX и соответственно к TZ, Uplink Profile назначается для каждого виртуального коммутатора NSX. Настраивается в System> Fabric> Profiles> Uplink Profiles.
- Имя профиля
- Teaming Policy – определяет сколько аплинков active, а сколько stanby, как они будут называться, а так же алгоритм балансировки. Почти то же самое что и настройка teaming policy на виртуальном коммутаторе в vSphere. Учтите, что количество активных аплинков напрямую влияет на количество создаваемых на виртуальном коммутаторе TEP интерфейсов. Считается один к одному, то есть два активных аплинка равно два TEP интерфейса.
- Указываем VLAN для Overlay трафика. Это трафик между TEP интерфейсами. Для него резервируют отдельный VLAN и адресацию. Ну и MTU. Эта настройка задает MTU для N-VDS/VDS на который назначается профиль. Если не трогать это поле, то MTU будет по умолчанию 1600. Как мы говорили выше это значение необходимо для Overlay трафика и вообще полноценного функционирования NSX-T.
По умолчания у нас после развертывания NSX Manager присутствуют профили по умолчанию с несколькими типовыми конфигурациями аплинков или LAG интерфейсов.
Хочу обратить внимание на настройку Transport VLAN в профилях по умолчанию. Везде указан 0 VLAN, а значит трафик Overlay c хоста не будет тегирован при применении этого профиля. Это сгодиться для профиля Edge (потому что они в большинстве случаев представлены в качестве VM), но для физической Транспортной Ноды не пойдёт, потому как для транспорта Geneve выделяют конкретный VLAN. Поэтому рекомендуется создавать свои собственные Uplink Profiles и указывать в них нужный нам VLAN.
NIOC Profiles
Мы знаем, что у VDS на vSphere есть механизм приоритизации сетевого трафика по типам и называется он Network Input/Output Control (NIOC). Он конфигурируется на самом VDS в vCenter. Так вот у N-VDS есть такой же механизм и конфигурируется он с помощью NIOC Profiles в NSX-T Manager-е. На картинке изображен профиль NIOC по умолчанию и как видим он ничем не отличается от аналога на VDS.
- NIOC работает только на ESXi хостах
- Возможность добавить этот профиль есть только в случае с N-VDS, так как NIOC для VDS конфигурируется на vCenter.
Мы можем создавать свои профиля со своей собственной конфигурацией. Это очень актуально если наши ESXi хосты ниже седьмой версии, и мы оснащаем их N-VDS-ом и мигрируем на него сеть управления, vSAN, vMotion и так далее.
Transport Nodes Profiles
Итак, что такое Профиль Транспортной Ноды? Это сгруппированная куча настроек, которые применяются на ESXi при его добавлении в NSX. Этот профиль необходим при добавлении кластеров vSphere, для консистентной настройки ESXi хостов в кластере. Без него вы не сможете добавить ESXi хосты, сгруппированные в кластер. Чем-то похоже на Host Profiles в vSphere. Давайте рассмотрим его подробнее, на картинке пример с использованием VDS.
- Конфиги разбиты по разделам виртуальных коммутаторов, которые NSX будет использовать для работы. Как мы знаем на одной транспортной ноде виртуальных коммутаторов может быть несколько. И нажимая плюсик мы создаем конфигурацию для еще одного свича на Транспортной Ноде.
- Определяем виртуальный коммутатор – N-VDS или VDS. Если мы выбираем VDS, то он должен уже существовать в vSphere на наших ESXi хостах и его MTU должен быть не меньше 1600. Если наш выбор пал на N-VDS, то нам нужно настроить дополнительные настройки – NIOC Profile (о нем упоминали выше) и LLDP Profile. А также мы определяем дополнительные настройки в графе Mode (о них позже).
- Если выбрали VDS, нужно указать vCenter и имя свича. Как видим добавить новый у нас не получиться из NSX Manager-а. VDS уже должен существовать в vSphere и быть корректно настроенным (MTU).
- Определяем Транспортные Зоны, которые будут обслуживаться этим виртуальным коммутаторам. Мы можем сгруппировать несколько TZ на один коммутатор, либо распределить TZ по нескольким коммутаторам, создав новые.
- Определяем Uplink Profile.
- Определяем, как на TEP интерфейсы на этом коммутаторе будут назначаться IP адреса. В нашем примере адреса будут браться из IP Pool, о котором написано выше.
- Указываем из какого IP Pool будут браться адреса для TEP интерфейсов.
- В Teaming policy Uplink Mapping сопоставляем аплинки присутствующего в инфраструктуре VDS с теми, которые будет использовать NSX согласно Uplink Profile.
Теперь для сравнения посмотрим Transport Node Profile с использованием N-VDS.
Разберем различия:
- Мы сами выбираем имя для N-VDS свича.
- Назначаем NIOC профиль.
- Определяем будет ли работать LLDP на свиче.
- И определяем какие физические интерфейсы хоста будут аплинками на свиче.
Но это еще не все. Есть пара настроек, которые нужны в случае миграции management сети ESXi на N-VDS. Это нужно, когда у нас, например, только два сетевых адаптера на хосте и неправильно с точки зрения отказоустойчивости оставлять один адаптер для существующего в vSphere VDS (для management), а другой добавлять в N-VDS (для трафика NSX). Поэтому вся сеть хоста «перевозиться» на N-VDS.
- PNIC only Migration — переводим переключатель в позицию Yes в случае если ни один физический адаптер, который мы добавляем в N-VDS не используется существующим vmk интерфейсом хоста. Если же это не так, то оставляем в No и переходим к параметрам ниже.
- Network Mappings for Install — данная настройка определяет какой vmk интерфейс будет смигрирован в какой сегмент при установке NSX на хосте. Сегмент должен быть в VLAN TZ, так как трафик управления хостом не может находиться в Overlay.
- Network Mappings for Uninstall — определяет на какую порт-группу переедет vmk в случае удаления NSX с хоста.
Добавление ESXi к NSX-T
После того как мы настроили MTU, создали IP Pool, осознали, что такое Транспортные Зоны, добавили Uplink Profile и Transport Node Profile настало время добавить наконец хосты ESXi к NSX-T.
Мы можем добавлять, как одиночные хосты, не подключенные к vCenter, так и добавить сначала vCenter к NSX, а потом уже добавлять нужные нам кластера или одиночные хосты, подключенные к этому vCenter. Конечно подключение vCenter даст нам больше гибкости и дополнительных функций в NSX, например, возможность создать Kubernetes кластера, но это уже другая история.
Добавить vCenter мы можем, пройдя в System> Fabric> Compute Managers, и нажимая +. После этого откроется форма, как на картинке ниже.
Все стандартно — FQDN, логин и пароль. Внизу мы можем определить несколько параметров доверия между vCenter и NSX Manager. Нужно это по нескольким определенным причинам, например, при развертывании тех же Kubernetes на vSphere. Жмем NEXT, подтверждаем сертификат и вот наш vСenter добавлен. После этого вы можете видеть кластера и хосты из добавленного vCenter в панели System> Fabric> Nodes> Host Transport Nodes, выбрав в Managed by свой вицентр.
Итак, инфраструктура добавлена в NSX-T, но сам NSX на Транспортных Нодах не развернут и соответственно они не принимают участие в обработке трафика виртуальной сети. Для того что бы магия NSX заработала на них нужно его установить. Выбираем наш кластер, в нашем примере это temp, а в нем аж целый один хост, нажимаем CONFIGURE NSX. Далее выбираем Профиль Транспортной Ноды (в котором описано как хосты в кластере нужно конфигурировать, Какие Транспортные Зоны добавлять и к каким свичам), жмем NEXT и пошла установка. Установка займет какое-то время, поэтому можно пойти попить кофе.
После завершения инсталляции наш ESXi хост полностью готов к работе с виртуальными сетями.
Мы видим, что в интерфейсе стали видны версия NSX, установленная на хост, добавленные свичи и адреса TEP интерфейсов (их у нас два, потому что в Uplink Profile назначены два активных аплинка). На этом шаге мы закончили подготовку инфраструктуры к работе с NSX-T. Далее мы можем создавать Сегменты, Виртуальные роутеры и все прочее добро, которым изобилует NSX, и оно будет работать на нашей инфраструктуре vSphere.