У меня есть две хост-машины под управлением VirtualBox. Мне нужно, чтобы виртуальные машины на каждом хосте общались с виртуальными машинами того же и другого соответствующего хоста. Простейшим решением было бы использование мостовой сети, увы, ограничения безопасности в локальной сети нашей компании запрещают это.
Я попытался следовать описанию Джеффа Уоррена, приведенному в качестве ответа на этот (очень похожий) вопрос здесь: Virtualbox: подключение сетей только для хоста на отдельных хостах
Увы, ссылка на документацию Microsoft, касающуюся "Настройка нескольких сетевых шлюзов", кажется разорванной. Я следовал так хорошо, как мог.
У меня есть два хоста ("host1" и "host"), каждый из которых настроен со своей сетью "только для хоста" VirtualBox (один на host1, использующий диапазон IP-адресов 192.168.33.0/24, а на host2 - 192.168.34.0/24). Далее, на каждом хосте я добавил маршрут к соответствующей другой сети VirtualBox. Теперь я могу пропинговать хосты через IP-адрес, который они имеют в соответствующей сети только для хоста, то есть на хосте 1, я могу успешно пропинговать 192.168.34.1 и на хосте 2, я могу пропинговать 192.168.33.1, но я не могу пропинговать любую виртуальную машину внутри сеть только для хоста на соответствующем другом хосте. Я думаю, что правильные записи локального маршрута (то есть между хостом и хост-сетью только хоста) уже существуют, например, на host1, "печать маршрута" показывает мне следующие записи в сеть VB хоста только этого хоста
192.168.33.0 255.255.255.0 On-link 192.168.33.1 276
192.168.33.1 255.255.255.255 On-link 192.168.33.1 276
192.168.33.255 255.255.255.255 On-link 192.168.33.1 276
Если я правильно прочитал, первое правило отправляет любые запросы к IP в сети 192.168.33.0/24 на мой интерфейс только для хоста, второе относится к адресу хоста внутри этой сети, а последнее относится к широковещательным сообщениям. , По-видимому, мой хост не правильно маршрутизирует запросы, хотя он принимает запросы (также) под своим IP-адресом в соответствующей локальной сети только для хоста.
Есть идеи, чего не хватает? "Маршрутизация и удаленный доступ" выполняется на обеих машинах (если я остановлю его, пинг по IP-адресу в сети "только для хоста" не будет работать, поэтому он действительно что-то делает).
Я также включил IP-маршрутизацию, как описано здесь https://social.technet.microsoft.com/Forums/lync/en-US/8f5ef2ca-c6e8-42e6-a70d-6d09bfdafa48/configuring-windows-7-as-a-router- в-лан? форум = w7itpronetworking
установив HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\ Tcpip\ Parameters\ IPEnableRouter в 1 и перезагрузив обе машины, но это не помогло.
ОБНОВЛЕНИЕ После добавления маршрутов ко всем виртуальным машинам я теперь могу успешно пропинговать виртуальные машины на разных хостах. Увы, теперь у меня есть проблема в том, что, когда я теперь пингую между виртуальными машинами на хосте 1 (который является машиной Win7), я получаю повторяющиеся ответы пинга, как это:
[root@centos1 network-scripts]# ping 192.168.33.203
PING 192.168.33.203 (192.168.33.203) 56(84) bytes of data.
From 192.168.33.1 icmp_seq=1 Redirect Network(New nexthop: 192.168.33.203)
From 192.168.33.1: icmp_seq=1 Redirect Network(New nexthop: 192.168.33.203)
64 bytes from 192.168.33.203: icmp_seq=1 ttl=64 time=0.363 ms
64 bytes from 192.168.33.203: icmp_seq=1 ttl=64 time=0.368 ms (DUP!)
64 bytes from 192.168.33.203: icmp_seq=1 ttl=63 time=0.566 ms (DUP!)
64 bytes from 192.168.33.203: icmp_seq=1 ttl=63 time=0.571 ms (DUP!)
Wireshark показывает, что, по-видимому, сам хост постоянно отправляет сообщения "Перенаправление ICMP для сети" на все мои виртуальные машины (! без какой-либо команды "ping", работающей внутри виртуальной машины). Я нашел несколько сообщений о похожем поведении, и отключение службы "Маршрутизация и удаленный доступ" "решает" это, но, увы, это служба, которая мне нужна для маршрутизации между хостами. Есть идеи?
Проблема НЕ существует на host2 (который является коробкой Win10), я попытался выяснить, отличается ли маршрутизация на двух хостах, но это не так.
ОБНОВЛЕНИЕ 2:
Обновление VirtualBox с 5.1.18 до 5.2.4 решило эту проблему.