Вопрос или проблема
У меня следующая конфигурация:
- Хост на Windows 10
- Hyper-V работает на хосте
- Гостевая система на Windows 10
- AnyConnect VPN по желанию работает на хосте
Желаемое поведение:
- Гостевая ОС подключена к интернету независимо от того, подключен ли хост к VPN
- Гостевая ОС имеет доступ к ресурсам VPN, когда хост подключен к VPN
Как описано здесь (и аналогично на других блогах и т.д.), я выполнил следующие команды на хосте:
New-VMSwitch -SwitchName "WindowsNAT" -SwitchType Internal
New-NetIPAddress -IPAddress 192.168.50.1 -PrefixLength 24 -InterfaceAlias "vEthernet (WindowsNAT)"
New-NetNAT -Name "WindowsNAT" -InternalIPInterfaceAddressPrefix 192.168.50.0/24
Затем я:
- Изменил гостевую систему на использование WindowsNAT
- Изменил настройки TCP гостевой системы на:
- Статический IP: 192.168.50.3
- Маска подсети: 255.255.255.0
- Шлюз: 192.168.50.1
- DNS Primary: 8.8.8.8
- DNS Secondary: 4.2.2.1
Фактическое поведение:
- Подключение к интернету на гостевой системе, когда хост не подключен к VPN.
- Нет подключения к интернету на гостевой системе, когда хост подключен к VPN
- Нет подключения к VPN на гостевой системе, когда хост подключен к VPN
Дополнительная информация:
- VPN использует полный туннель
- Желаемое поведение работает по умолчанию с VirtualBox
Есть ли советы, как сделать это возможным? Моему системному администратору нужно настроить раздельный туннель? Если да, то как VirtualBox может добиться того же поведения, используя полный туннель?
Я долго исследовал эту проблему. Есть простое решение (или, возможно, обходной путь?), но я не могу точно объяснить, почему оно работает.
Я воспроизвел сценарий, описанный в вопросе, и столкнулся с проблемой: нет интернета на виртуальной машине, когда хост подключен к Cisco AnyConnect VPN.
На вашем хосте перейдите в Панель управления -> Центр управления сетями и общим доступом -> Изменение параметров адаптера
Щелкните правой кнопкой мыши на вашем Cisco AnyConnect Secure Mobility Client Connection и выберите ‘Свойства’. Перейдите на вкладку ‘Совместное использование’ и отметьте ‘Разрешить другим пользователям сети подключаться через подключение к интернету этого компьютера’ и ‘Разрешить другим пользователям сети управлять общим подключением к интернету или отключать его’. Вот где магия:
В раскрывающемся списке ‘Подключение домашней сети:’ выберите Default Switch для вашего Hyper-V (я назвал своё vEthernet (Default Switch)).
Нажмите ОК и проверьте подключение к интернету на вашей виртуальной машине.
Кто-то более опытный, возможно, сможет объяснить, почему это работает, но это действительно так!
Есть некоторые недостатки: когда VPN отключается на хосте и вы переподключаете VPN, возможно, придется снова настроить общий доступ. Когда хост перезагружается, нужно повторять вышеописанные шаги.
Надеюсь, это поможет некоторым из вас! Удачи!
Вот проблемы, с которыми я столкнулся с AnyConnect и гостевой виртуальной машиной, и я расскажу, что помогло мне их решить.
Решение от MatthiasPettersson больше не работает, потому что Default Switch не отображается в списке сетевых адаптеров. Он либо скрыт (Windows 11), либо использует какой-то другой механизм. Я не уверен, когда это поведение изменилось… но сейчас это так.
- Гостевая ОС не могла получить доступ к интернету, пока AnyConnect на хосте был подключен к VPN.
- Хост не мог установить безопасное сетевое соединение с гостевой системой “Trust Relationship Between This Workstation And The Primary Domain Failed”
- Разрешение доменов работало неправильно. Ранее мне нужно было использовать guestosname.mshome.net, чтобы получить доступ к моей виртуальной машине с именем guestosname, но недавно это тоже перестало работать.
Решение: Удалите Hyper-V и затем переустановите его. Вы можете сделать это через меню “Функции Windows” (выполните команду: optionalfeatures)
После этого все перечисленные выше проблемы были решены без дальнейших изменений.
Ответ или решение
Конфигурация вашей системы, включающая в себя Windows 10 в качестве хоста с установленным Hyper-V, виртуальной машиной на Windows 10 и использованием AnyConnect VPN, требует детального анализа для решения проблем с подключением гостевой операционной системы. Рассмотрим текущую ситуацию, проблемы и предлагаемое решение, адаптированное для вашего случая.
Теория (Theory)
Эти проблемы связаны в основном с механизмами маршрутизации и компоновки сетевых адаптеров, используемых в Hyper-V и AnyConnect VPN. При подключении хоста к AnyConnect VPN с полным туннелированием, все сетевые трафики перенаправляются через VPN, блокируя доступ виртуальной машины к интернету и ресурсам VPN. Этот эффект возникает из-за того, что трафик с виртуального адаптера не маршрутизируется через VPN или через правильный шлюз.
Пример (Example)
Рассмотрим пример реализации сети на основе Hyper-V с использованием NAT. Вы уже создали внутренний виртуальный коммутатор и настроили статический IP-адрес для виртуальной машины, как рекомендовано в различных источниках.
Благодаря данной конфигурации без VPN подключение к интернету функционирует корректно, а вот при активации VPN возникает проблема. Это обусловлено отсутствием правильного маршрутизационного пути для пакетов, которые отправляются от гостевой ОС к интернету или в локальную сеть через VPN.
Применение (Application)
Шаги по исправлению
- Настройка совместного использования интернет-соединения:
- Откройте «Центр управления сетями и общим доступом» на вашем хосте и выберите «Изменение параметров адаптера».
- ПКМ на Cisco AnyConnect Secure Mobility Client, выберите «Свойства».
- Перейдите на вкладку «Доступ», отметьте опцию «Разрешить другим пользователям сети использовать подключение к интернету этого компьютера».
- В выпадающем меню «Домашняя сеть» выберите ваш виртуальный адаптер (например,
vEthernet (Default Switch)
).
Эта конфигурация помогает делить соединение с VPN между хостом и гостевой ОС. Однако важно понимать, что после отключения подключения или перезагрузки хоста, вам придется повторять процедуры настройки совместного использования.
-
Рассмотрение возможности использования Split Tunneling:
- Попросите системного администратора настроить split-tunneling (разделённое туннелирование), если ваша компания позволяет такую конфигурацию.
- Это позволит вашей виртуальной машине иметь прямой доступ к интернету, обрабатывая только специфически настроенный трафик через VPN.
-
Полная переустановка Hyper-V:
- Некоторые пользователи сообщают, что переустановка Hyper-V решает проблемы с подключением.
- Перейдите в "Функции Windows" (команда для запуска:
optionalfeatures
), снимите галочку с функции Hyper-V, перезагрузите компьютер, затем снова установите Hyper-V.
Альтернативное решение
Если проблемы продолжаются или данное решение не удовлетворяет производственные требования, рассмотрите использование альтернативных гипервизоров, таких как VirtualBox или VMware Workstation. Эти платформы могут предусматривать более гибкие настройки сетевых адаптеров и работать без необходимости дополнительных манипуляций с VPN-соединением.
Заключение
Ваша текущая конфигурация сталкивается с типичными проблемами совместимости VPN и виртуализационного ПО. Несмотря на то, что любые изменения следует осуществлять с осторожностью, предлагаемые решения предоставляют соответствующие подходы для достижения ваших ожидаемых результатов подключения. В случае возникновения трудностей с выполнением предложенных действий, настоятельно рекомендуется проконсультироваться с вашим сетевым администратором или IT-специалистом.