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