У меня есть MacBook с Mac OS High Sierra. На нем размещены три виртуальные машины с Ubuntu 16.04. У всех виртуальных машин включены два адаптера: NAT и Host-Only. Mac подключен к другому хосту через коммутатор. Виртуальные машины координируют работу и предоставляют услугу, которая, как мне хотелось бы, была доступна хосту на другом конце коммутатора, подключенного к моему ноутбуку.
en8
192.168.57.0 192.168.57.200 192.168.57.100 /---|VM1| 192.168.56.3
|------------| /--------------\ |--------------| /
| Host1 |--| switch |--| Host2 |------|VM2| 192.168.56.4
|------------| \--------------/ |--------------| \
192.168.56.1 \---|VM3| 192.168.56.5
vboxnet0
Хосты находятся в подсети 192.168.57.0\24
. Ноутбук подключен к коммутатору через интерфейс en8
с IP-адресом 192.168.57.100
. Ноутбук и коммутатор могут пинговать друг друга.
Mac OS подключена к виртуальным машинам через шлюз 192.168.56.1
на интерфейсе vboxnet0
. Виртуальные машины могут пинговать друг друга и свой хост. Хост может взаимодействовать с каждой виртуальной машиной.
Я хочу, чтобы виртуальные машины могли управлять коммутатором, поэтому мне нужно настроить правило маршрутизации для соединения трафика от коммутатора к виртуальным машинам и обратно. Я хочу использовать свой Mac как маршрутизатор, чтобы сделать это.
Я попробовал последовать примеру Джеффа Уоррена:Virtualbox: подключение сетей Host-Only на отдельных хостах, но в моем случае это не работает.
В частности, я попытался...
sudo route -n add -net 192.168.56.0/24 192.168.57.100
но это не сработало. Я получил сообщение о том, что файл уже существует.
Буду очень признателен за любые идеи о том, как можно настроить мой коммутатор из виртуальных машин. Спасибо.
Я пробовал другие подходы, например, помещать виртуальные машины в ту же логическую подсеть, что и коммутаторы. Однако, когда я это делал, я терял связь между виртуальными машинами и их хостом. Я также пробовал использовать мостовую сеть вместо только хоста, но это тоже не сработало.
решение1
Предположим, что интерфейсы 192.168.56.0/24 на виртуальных машинах являются только хостовыми (т.е. не NAT).
Вам не нужны маршруты на вашем MAC (host2), потому что это единственный, который имеет прямое подключение к обоим /24. Вам нужно, чтобы ваши виртуальные машины шли этим путем, чтобы достичь коммутатора, и чтобы коммутатор шел этим путем, чтобы добраться до виртуальных машин.
На виртуальных машинах команда «ip route add 192.168.57.0/24 via 192.168.56.1» должна сработать.
На коммутаторе... какой бы синтаксис ни требовался, возможно, для того, чтобы сделать host2 шлюзом по умолчанию (@192.168.57.100)