пятница, 22 октября 2010 г.

Standard vSwitch - часть 2

Продолжаем знакомиться с вирутальной сетевой инфраструктурой 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"

При написании статьи использованы материалы "The Great vSwitch Debate" by Ken Cline.

1 комментарий:

  1. Спасибо за статью!
    Promiscuous Mode Я использовал, когда надо было организовать прозрачный шлюз. Есть в конторе группа лиц, которая не хотела бы, чтобы к их компам могли подключаться другие люди. Чем пихать их в отдельную подсеть и потом настраивать маршруты, решил поднять мост на виртуальной фрихе и на фрихе рулить, кто куда может ходить. Для этого обязательно на портгруппе, куда подключена фриха, надо включать Promiscuous Mode.
    Также эта функция позволяет проследить трафик виртуальной машины во время загрузки, с помощью его понял почему не ставятся софт из nexenta через GPO, но проблему так и не решил :(

    ОтветитьУдалить