Продолжаем знакомиться с вирутальной сетевой инфраструктурой VMware vSphere. В этом посте мы рассмотрим расширенный функционал, предлагаемый VMware для vSwitch.
Начнем с функций обеспечения безопасности:
- Security
- * Promiscuous mode enable/disable
- * MAC Address Change enable/disable
- * Forged Transmit enable/disable
Promiscuous Mode
Wikipedia описывает Promiscuous mode как «неразборчивый» режим, в котором сетевая плата позволяет принимать все пакеты независимо от того, кому они адресованы. Этот режим используется в анализаторах сетевого трафика. Однако у нас не конкретная машина и сетевой адаптер, а vSwitch – L2 коммутатор. Хотя в целом режим похож, но он куда ближе к Port mirroring, пересылке всего трафика с указанного порта на выделенный, к которому подключают анализатор. При включении Promiscuous Mode на уровне vSwitch (портгруппы) vNIC (сетевой интерфейс ВМ) получает все пакеты, проходящие через vSwitch (портгруппу). Попробую это проиллюстрировать.
VLAN A – любой VLAN от 1 до 4094, а VLAN B – любой другой VLAN от 1 до 4094, но не равный A. Конкретные числа не имеют значения, достаточно того, что VLAN’ы не совпадают.
Итак, чтобы увидеть, кто с кем может общаться:
Если vSwitch сконфигурирован с включенным режимом “Promiscuous Mode”, то vNIC в PG_VGT сможет увидеть весь трафик vSwitch. В то же время, vNIC из PG_EST сможет увидеть только трафик внутри своей портгруппы (или любой другой портгруппы в EST режиме, VLAN = 0). В остальном таблица довольно проста для понимания, за исключением колонки PG_VGT. Строки PG_VLA, PG_VLB и PG_VLB1 содержат и “Yes” и “No” – vNIC в PG_VLA (например) сможет увидеть трафик только для VLAN A, который может включать в себя трафик для PG_VGT.
MAC Address Change
MAC адрес – псевдо-уникальный идентификатор сетевого устройства на уровне L2, в то время как IP-адреса идентифицируют устройства на L3. В VMware vSphere vNIC получает MAC адрес при первом запуске ВМ (если только он не был заранее сконфигурирован и записан в .vmx файле). Точный алгоритм генерации MAC можно увидеть в “ESX Configuration Guide” на стр. 59. Важно запомнить, что количество уникальных MAC адресов на ESX хост ограничено, и можно может привести к проблемам в следующих ситуациях:
- * В VDI окружении при большом количестве создаваемых и включаемых ВМ
- * В среде, где ВМ стартуют на хосте-стартовой площадке, а в дальнейшем перераспределяются по другим хостам с помощью DRS.
Так почему же нас должна беспокоить смена MAC адреса гостевой ОС? Одна из причин – спуфинг (подмена) MAC является ключевым элементом в отравлении ARP. Поэтому наличие возможности жестко привязать MAC адрес ВМ к записанному в .vmx серьезно поднимает уровень безопасности до уровня, недоступного в физических сетях.
Параметр “MAC Address Change” влияет на получаемый ВМ трафик. При состоянии “Accept” vSwitch примет измененный MAC адрес и продолжит обслуживание ВМ. В случае “Reject” и изменении MAC адреса порт на vSwitch’е будет отключен, и ВМ не будет получать никаких пакетов вообще, пока не изменит MAC адрес обратно. Гостевая ОС при этом НЕ будет уведомлена.
Forged Transmit
Параметр Forged Transmit схож по своему действию с MAC Address Change, с той лишь разницей, что он затрагивает исходящий, а не входящий трафик. При “Accept” vSwitch будет обрабатывать и пересылать пакеты с “подделанным” (forged) MAC адресом. “Reject” соотв. запрещает пересылку пакетов от MAC адреса, не совпадающего с прописанным в .vmx, и заставляет vSwitch игнорировать подобные пакеты. Точно так же, без уведомления гостевой ОС.
Параметры Forged Transmit и MAC Address Change необходимо установить в “Accept” для поддержки Unicast NLB.
Настройка Traffic Shaping
vSwitch позволяет контролировать ширину полосы пропускания трафика, для этого есть три параметра:
- Average Bandwidth. Это “гарантированная” ширина полосы для передачи данных
- Peak Bandwidth. Это абсолютное значение потолка для скорости передачи данных.
- Burst Size. И последний параметр Traffic Shaping, отвечающий за количество байт, которые могут быть переданы за одну “волну” трафика на скорости выше Average Bandwidth.
Дополнительные функции безопасности
- * vSwitch знает MAC адреса всех подключенных vNIC, основываясь на механизме уведомлений и не использует традиционное для физических коммутаторов изучение проходящего трафика.
- * Трафик, полученный одним физическим интерфейсом (аплинком) никогда не передается на другой интерфейс. Из чего следует невозможность создания vSwitch’ом сетевой петли и отсутствие необходимости участия в Spanning Tree Protocol (STP).
- * vSwitch не участвует в IGMP snooping, функции третьего уровня. Тем не менее, поскольку vSwitch знает какие vNIC хотят получать muticast трафик, он не передается на все подключенные vNIC.
- * vSwitch не доверяет пользовательским даннымв сетевом кадре:
- * vSwitch сохраняет копию всех данных сетевого кадра, используемых для пересылки и фильтрации.
- * vSwitch разделяет данные VLAN и кадр при прохождении через виртуальный коммутатор. Фильтрация осуществляется простым целочисленным сравнением.
- * vSwitch не поддерживает дианмическую агрегацию (802.3ad)
- * vSwitch не поддерживает “native VLAN”
Виртуальные сети в VMware vSphere. Standard vSwitch – часть 1.
При написании статьи использованы материалы “The Great vSwitch Debate” by Ken Cline.
Антон Жбанков
Антон, фраза “Поэтому наличие жестко привязать MAC адрес…” видимо должна звучать “Поэтому наличие возможности жестко привязать MAC адрес…”.
Rumata, спасибо