Назад | Перейти на главную страницу

Как программное обеспечение VPN «перехватывает» пакеты для туннелирования?

Моя текущая ментальная модель

  1. Приложение взаимодействует с операционной системой для создания пакетного процесса на основе стека модели OSI - последующие уровни инкапсуляции
  2. Где-то на линии до того, как пакет будет инкапсулирован в кадр Ethernet, но при условии, что после того, как ему был присвоен IP-заголовок, программное обеспечение VPN перехватывает его и добавляет к нему еще один уровень инкапсуляции (заголовок AH и шифрует полезную нагрузку) для маршрутизации туннеля VPN.
  3. новый пакет с (возможно) заголовками ESP и AH и зашифрованной полезной нагрузкой передается драйверу сетевого интерфейса, который выдает ему кадр Ethernet и передает его по сети

Чего я не понимаю, так это того, как программное обеспечение VPN перехватывает такие каналы межпроцессного взаимодействия - откуда оно знает, какие приложения нужно захватить, и как оно может делать это выборочно, не изменяя всю сетевую связь с хостом.

Пожалуйста, объясните, как процесс VPN будет перехватывать IPC, предназначенные для драйвера сетевого интерфейса.

Программное обеспечение VPN обычно работает, добавляя к вашей системе «виртуальный» сетевой интерфейс.

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

Он ничего не «угоняет».

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

Если вы используете клиент для подключения к VPN, ваш компьютер выполняет часть шифрования (и дешифрования при получении пакетов). Он зашифрует и инкапсулирует пакеты при создании и отправит их другому узлу в туннеле.

Затем этот партнер расшифровывает пакеты.

Если вы входите в туннель B2B, то узел на вашей стороне туннеля шифрует / дешифрует пакеты.