У меня возникла проблема при попытке передать двойные теги через vSwitch.
Физический интерфейс на хост-машине VMWare получает двойной тегированный трафик - внешний тег различает несколько коммутаторов (зеркальный удаленный тег), а внутренние теги - из собственного внутреннего трафика коммутаторов. Внутренний трафик может быть как тегированным, так и нетегированным в зависимости от того, был ли зеркалируемый порт портом доступа или транковым каналом.
Виртуальный коммутатор настроен на работу с несколькими сетями (каждая для отдельного внешнего тега от отдельного коммутатора), и гостевая машина должна видеть только (один) тегированный трафик.
Проблема в том, что гостевая машина не получает трафик, который был получен (на phy) как дважды помеченный. Если исходный внутренний трафик не был помечен (phy на хостовой машине получает только 1-тег), гость видит этот трафик правильно.
Я также провел тест и настроил сеть на vSwitch с тегом 4095, где должен передаваться любой тегированный трафик (VGT). Опять же, гостевая машина получает только один тегированный трафик, полученный от phy, единственное отличие в том, что гость видит его как тегированный. Это доказывает, что гостевая ОС правильно видит тегированный трафик, и приводит меня к выводу, что проблема в vSwitch.
Так есть ли способ заставить vSwitch игнорировать внутренние теги и передавать трафик гостю независимо от внутреннего тега?
Рассматривается версия vSphere/vcenter/ESXi 5.1.0.
решение1
Я просмотрел документацию и не нашел упоминаний о поддержке тегирования QinQ VLAN (802.1ad) для vSwitches или Distributed Switches и должен сделать вывод, что он не поддерживается в vSphere. Я возлагал большие надежды на то, что виртуальный коммутатор Cisco Nexus 1000v будет поддерживать QinQ, но онтакжепохоже, что он не поддерживается. Судя по всему, поддержка QinQ даже недоступна в серии Nexus 5000, но похоже, что она есть вСерия Nexus 7000.
Я бы уточнил это у службы поддержки VMware и Cisco, прежде чем принимать какие-либо решения по проектированию, но, похоже, такая конфигурация невозможна.
решение2
Проблема на самом деле в концепции vmware, как она обрабатывает помеченный трафик на выходящей группе портов. Если она удаляет внешнюю VLAN, то она также удаляет любую внутреннюю VLAN, если таковая имеется. Единственное решение — не допустить, чтобы vmware перехватывал/изменял пакеты по мере их поступления, то есть не должно выполняться добавление или удаление vlan. Мне удалось добиться этого, используя vDSW и транкинг VLAN в каждой группе портов. При такой настройке виртуальная машина получает двойной помеченный трафик без изменений. Для зеркалирования и анализа трафика это приемлемо, но для производственных систем это нежизнеспособное решение. Должна быть опция туннелирования VLAN, доступная на v(D)SW.