Я настроил Windows Server 2016 с ролью Hyper-V. Хост-компьютер подключен к двум сетям:
10.101.8.0/22
(dept.local ссылка-только локальная сеть)10.13.80.0/24
(ad.company.com сеть, подключенная к Интернету)Я создал сеть NAT 172.16.0.0/16
и некоторые внутренние vSwitches под ним, чтобы гости могли общаться через NAT. Каждая виртуальная машина имеет только один сетевой интерфейс, подключенный к одному vSwitch, который обеспечивает интерфейс для сети NAT. Их IP-адрес и DNS-серверы устанавливаются вручную. Каждый гость добавляет DNS-сервер из каждой подключенной сети.
Из гостей Linux за NAT я могу подключиться к обеим сетям, подключенным к хосту одновременно, без проблем. Управляющая ОС Server 2016 также может без проблем подключаться к обеим сетям. Однако основная проблема в том, что Гости Windows, похоже, могут общаться только с одной из двух сетей на хосте в любой момент времени и будут переключаться между ними, казалось бы, неопределенно..
Например, в Linux (RHEL 7) я могу общаться с хостами в обеих сетях одновременно. Однако в гостевых системах Windows (тестирование с гостевыми системами Windows 8.1 и Server 2016) я могу подключиться только к одной из двух сетей, подключенных к хосту в любой момент времени. Соединения, предназначенные для одной сети, будут работать нормально, в то время как соединения, предназначенные для другой сети, всегда будут отключены.
Сеть, в которой есть подключение, также иногда «переключается». Если я сделаю tracert
в пункт назначения в сети без подключение, он будет зависать на некоторое время (от 30 секунд до минуты или двух), но в конечном итоге он получит возможность подключения. Мне кажется, что это просто игра в кости, к которой я подключен. Хотя, когда происходит этот «переключатель», соединение с другой сетью будет потеряно. Когда соединение используется регулярно, активное сетевое соединение кажется относительно стабильным ...
Я попытался изменить настройки DNS-суффикса подключения, а также попытался включить / отключить NetBIOS. Я проверил таблицы маршрутизации на гостях и хосте, вроде ничего плохого. Не уверен, где искать неисправности отсюда. Я не использую ни одну из ролей dhcp / routing в операционной системе управления.
Я смог решить (своего рода) основную проблему, добавив второй сетевой интерфейс, предназначенный для трафика в локальную сеть, удалил маршруты по умолчанию и вручную добавил новый маршрут по умолчанию для использования определенного интерфейса и другого маршрута для dept.local
сеть.
Я выполнил следующие команды, где 172.16.1.1
это IP-адрес виртуального коммутатора и if 4
используется для маршрута по умолчанию и if 7
используется для dept.local
сеть.
route delete 0.0.0.0
route add -p 0.0.0.0 mask 0.0.0.0 172.16.1.1 metric 200 if 4
route add -p 10.101.8.0 mask 255.255.252.0 172.16.1.1 metric 100 if 7
Однако мне все еще неясно, почему трафик не работает при попытке маршрутизации через тот же интерфейс, даже если шлюз тот же, и, кроме того, почему это не проблема в Linux. Если кто-нибудь сможет мне это объяснить и / или предложить лучшее решение, не требующее второго интерфейса, я с радостью приму ответ.