Я использую CentOS 7 на всем (кроме Mac, отмеченного ниже). Хост имеет VirtualBox 5.1.8. Сеть 192.168.10.0/24. Брандмауэров нет нигде.
В этом сценарии все работает как положено:
Ничего не помечено, хосты и гости могут общаться на любом порту, с любого ip. Сетевой интерфейс на каждом госте соединен мостом. Жизнь здесь хороша.
Этот сценарий терпит неудачу:
Я создал интерфейсы VLAN на хосте и каждом госте. Мы назовем это eth0.10. Каждый гость продолжает использовать eth0 (потому что использование eth0.10 фактически удаляет его из сети). Сетевой интерфейс на каждом госте соединен мостом.
Примечание: когда я упоминаю ping здесь, я понимаю, что это просто ICMP, но мои тесты также включали тесты TCP. Использование пинга для краткости.
Теперь я могу пинговать гостя (192.168.10.5) с гостем (192.168.10.10), но не могу пинговать гостя (.10.5) с хоста (.10.50). Хост (.10.50) для гостя (.10.5 или .10.10) тоже не работает.
Когда я пингую гостя (.10.5 или .10.10) с другой физической системой, Mac / OS X, также в VLAN10 (.10.200), я получаю ответ. Когда я пингую хост (.10.5) на Mac (.10.200), я получаю ответ. Обратное также верно.
Я также запустил Wireshark (анализатор пакетов) на Mac (.10.200). Я использовал фильтр vlan host 192.168.10.5 и я вижу vlan id 10 в пакете! То же самое верно для каждого хоста в vlan 10.
Так что все, кроме хозяина, могут видеть гостей. Гости могут видеть друг друга и всех, кроме хозяина. Сумасшедший, верно?
Я прочитал несколько вещей об Open Vswitch, но я не знаю, нужно ли мне это. Кажется, что я упускаю из виду кое-что фундаментальное здесь, но я проверил работу с многих сторон.
Любые предложения будут ценны!
источник
Ответы:
Я был в состоянии воспроизвести ваш точный сценарий.
Вот мой тестовый env
Точно то же самое происходит.
Когда обе виртуальные машины соединены с en0:
При подключении виртуальных машин к vlan0 вместо en0 - они теряют связь с внешним миром (не может пинговать микротик)
Таким образом, похоже, что ситуация действительно очень похожа на способ мостового соединения в KVM с macvtap. Виртуальные машины Macvtap не могут взаимодействовать с хостом, поэтому здесь объясняется проблема https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Host_Configuration_and_Guest_Installation_Guide/App_Macvtap.html
Похоже, что тот же механизм действует с мостовыми VLAN. Я не знаю точно, просто спекулирую здесь.
Изменить: я нашел этот блог из стойки, которая объясняет именно эту проблему http://blog.rackspace.com/vms-vlans-and-bridges-oh-my-part-2
источник