Трафик Windows Sandbox по умолчанию не идёт через VPN хоста
Песочница выходит в сеть через виртуальный адаптер на коммутаторе по умолчанию. Покрывает ли её туннель — свойство клиента, поэтому проверяйте изнутри.
Вы запускаете Windows Sandbox, открываете в нём браузер, и страница загружается через обычное подключение, хотя минуту назад хост был в VPN. Ничего не сломано. Песочница получает виртуальный сетевой адаптер, подключённый к коммутатору по умолчанию хоста, и то, покрывает ли туннель хоста этот путь, — свойство клиента VPN, а не Windows.
Что песочница получает на самом деле
Песочница — это лёгкая виртуальная машина с собственным сетевым адаптером. Этот адаптер подключается через коммутатор по умолчанию Hyper-V хоста, который транслирует трафик песочницы в виртуальный интерфейс Ethernet хоста, прежде чем он покинет машину. Эта деталь объясняет почти каждый симптом, о котором люди сообщают в связи с этим.
Значит, песочница — не процесс на вашем рабочем столе. Это отдельная сетевая конечная точка, пакеты которой пересылает хост, и межсетевой экран хоста и клиент VPN видят эту пересылку каждый по-своему. Правило, написанное для процесса браузера, не совпадает автоматически с преобразованным кадром от виртуального коммутатора.
Два требования, которые выглядят как одно
Добраться до приватного ресурса и принудительно провести каждый запрос песочницы через туннель — разные цели. Первой нужны маршрут и разрешение имён, которые работают для конечной точки песочницы. Второй нужен принудительный контроль, переживающий переподключение и сбой. Ни одно не следует из другого, и проверка, удовлетворяющая одному, ничего не говорит о втором.
Проверка публичного адреса не отвечает полностью ни на один из двух вопросов. Видеть выход VPN изнутри песочницы показывает, что часть трафика использовала туннель. Она ничего не говорит о том, разрешаются ли приватные имена, или о том, что происходит с запросом, который начинается, пока туннель отключён.
Запишите, какое из двух вам нужно, прежде чем что-либо тестировать, потому что эти требования ведут к разным проектам и только одно можно проверить браузером.
Проверяйте изнутри песочницы
Единственное осмысленное наблюдение приходит из сеанса самой песочницы, а не с хоста. Откройте там PowerShell и посмотрите на адаптер, разрешение имён и путь к адресу из документации:
ipconfig /all Resolve-DnsName files.corp.example Test-NetConnection 198.51.100.7 -Port 443 Get-NetRoute -DestinationPrefix 0.0.0.0/0
Список адаптеров показывает адрес и шлюз, которые получила песочница. Другой шлюз, чем у хоста, нормален для коммутатора по умолчанию, поэтому сравнивайте выход, а не шлюз. Тест разрешения показывает, отвечают ли на приватное имя вообще, и именно здесь настройки split-horizon обычно расходятся с хостом. Строка маршрута показывает, какой шлюз песочница считает владельцем маршрута по умолчанию.
Повторите те же три проверки при подключённом и отключённом туннеле. Результат, который не меняется между этими состояниями, — доказательство того, что туннель вообще не на пути песочницы, какой бы адрес ни показала публичная проверка.
Отключите сеть, когда песочнице она не нужна
Для автономной проверки собственный файл конфигурации может полностью убрать сеть. Параметр — единственный элемент в документе конфигурации:
<Configuration> <Networking>Disable</Networking> </Configuration>
Справочник по конфигурации песочницы описывает этот элемент и предупреждает, что включённая сеть может открыть внутренние сети приложениям, которым вы не доверяете. Это предупреждение — вся причина задать параметр явно, а не принимать значение по умолчанию.
Однако коммутатор не выбирает интерфейс VPN. Это бинарное решение о наличии сети, а не способ привязать песочницу к конкретному туннелю. Требование, в котором назван выход, нельзя выполнить коммутатором, который решает только, есть ли он.
Проектируйте границу, прежде чем что-либо разрешать
Если требование — строгая изоляция, выберите сетевой проект виртуальной машины, способный её обеспечить, и используйте поддерживаемую политику продукта VPN для перенаправляемого трафика или трафика виртуальных машин. Угадывать поведение клиента хоста — не проект, а одна успешная проверка — не реализация.
Не давайте недоверенной песочнице корпоративный профиль VPN или приватные учётные данные, чтобы тест прошёл. Это меняет границу, которую вы пытались установить, на зелёный результат, а учётные данные живут дольше теста.
Запишите режим сети, наблюдаемый выход и поведение при переподключении в заметки о развёртывании. Когда обновление клиента изменит обработку перенаправляемого трафика, именно эти заметки скажут, что требование никогда не выполнялось по-настоящему.