Диспетчер устройств показывает TAP-Windows Adapter V9, хотя профиль говорит dev tun, и туннель работает. Такое сочетание не является ошибкой конфигурации, и переключение режима туда-обратно его не изменит. Имя адаптера отражает, какой драйвер Windows загрузил клиент, а не то, какие пакеты несёт туннель. Прочитайте строку драйвера в журнале клиента, прежде чем что-либо менять.

Почему туннель уровня 3 получает адаптер Ethernet

На протяжении большей части истории клиента в Windows не было ни одного пригодного виртуального адаптера уровня 3. Единственным вариантом был драйвер TAP-Windows, который предоставляет интерфейс Ethernet. Затем клиент эмулировал недостающее поведение уровня 2, чтобы Windows мог его настроить. Именно из-за этой эмуляции адаптер до сих пор выглядит как сетевая карта.

Две части этой эмуляции видны, если присмотреться: клиент отвечает на ARP для адреса туннеля и выдаёт локальной машине небольшую аренду DHCP. Поэтому Windows видит обычный адаптер Ethernet с MAC-адресом и драйвером NDIS, тогда как сам туннель несёт голые пакеты IP. Костюм Ethernet принадлежит драйверу, а не режиму туннеля.

Найдите строку драйвера, а не судите по имени

Два адаптера могут делить имя между версиями драйвера, поэтому одно имя не может сказать, что работало. Журнал клиента называет устройство, которое он открыл, а в новых сборках ещё и драйвер, который он выбрал; именно эту строку и нужно читать.

Проверьте в журнале три вещи в таком порядке: открыл ли клиент вообще адаптер, какой драйвер он указывает и откатился ли он после сбоя. Строку отката легко пропустить, потому что соединение всё равно поднимается, и туннель работает на старом драйвере, пока пользователь считает, что активен новый.

Перейдите на драйвер уровня 3 и проверьте, что должно присутствовать

Драйвер уровня 3, поставляемый проектом WireGuard, доступен начиная с версии клиента 2.5, но он необязателен. Его выбирает одна директива:

windows-driver wintun

Драйвер должен быть установлен на машине, и официальные сборки содержат подписанную копию. Поставляйте именно подписанный выпуск, если собираете клиент сами, потому что драйвер, собранный в частном порядке, конфликтует с копиями, которые устанавливают другие VPN-продукты. Такие конфликты дают сбои, которые трудно отнести к причине, и обычно проявляются после появления на машине второго VPN-клиента. Отсутствующий драйвер, напротив, оставляет в журнале чёткую строку.

Драйвер также требует более строгих разрешений, поэтому клиент создаёт адаптер через свою интерактивную службу, работающую от привилегированной учётной записи. Запустите клиент обычным пользовательским процессом без этой службы, и директива может не сработать, оставив ранее установленный адаптер видимым, и будет казаться, что переключение проигнорировано.

Когда TAP остаётся правильным ответом

Если туннель должен нести кадры Ethernet, широковещательный трафик или протоколы, отличные от IP, требуется адаптер уровня 2, и драйвер TAP следует из этого требования. Мостовая схема в Windows имеет то же ограничение, поскольку интерфейс должен войти в домен уровня 2.

Производительность не является причиной предпочитать один другому на уровне имени адаптера. Версия 2.6 добавляет драйвер разгрузки канала данных, который переносит обработку пакетов в ядро, и именно этот вариант меняет характеристики пропускной способности. Это решение о возможностях, а не требование для подключения, и оно зависит от сборки и установленного пакета. Профиль, который работает без него, продолжает работать.

What the tunnel must carryAdapter familyWhere it is selected
IPv4 and IPv6 packetsLayer-3 driver, or the older TAP emulationClient directive plus installed signed driver
Ethernet frames, non-IP protocolsTAP-WindowsProfile mode and the TAP driver package
Higher throughput on a supported buildData-channel offload driverClient build and driver package, separately from the profile

Уберите за собой после переключения

Удалить старый адаптер так же важно, как добавить новый. Оставшийся интерфейс TAP может сохранить адрес и маршрут из прошлого сеанса, и эти записи живут дольше соединения, которое их создало. Удалите устаревшее устройство в диспетчере устройств, затем подключитесь снова и убедитесь, что таблица маршрутизации его больше не упоминает.

Если установлено несколько VPN-продуктов, запишите, какой пакет драйверов приносит каждый, прежде чем отлаживать профиль. Два клиента, устанавливающие разные сборки одного драйвера, — это конфликт, который не решит никакое редактирование профиля. Удалите неиспользуемый клиент и перезагрузитесь, затем поищите дублирующиеся адаптеры в диспетчере устройств. Только после этого стоит сравнивать строки журнала между двумя продуктами.

Похожие статьи