Я использую 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, но я не знаю, нужно ли мне это. Кажется, что я упускаю из виду кое-что фундаментальное здесь, но я проверил работу с многих сторон.
Любые предложения будут ценны!