Как VPN-серверы / клиенты избегают маршрутизации собственных пакетов удаленного подключения через себя?

Я пытаюсь понять, как сеть работает под капотом Linux VPN, использующих интерфейсы TUN.

Мое лучшее предположение следующее (пожалуйста, поправьте меня):

  1. Соединение установлено к удаленному клиенту / серверу.
  2. Интерфейс TUN создан и запущен
  3. Таблица маршрутизации обновлена, чтобы установить шлюз по умолчанию для интерфейса TUN

Но разве пакеты, предназначенные для удаленного клиента / сервера, не попадут в Интерфейс TUN и формирование своего рода петли? Как это решают системы VPN? В чем состоит пробел в моем понимании?

5
задан 11 January 2016 в 16:38
3 ответа

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

Я обычно видел, как это делается, и делал это сам на различных маршрутизаторах, - это использовать маршрутизацию с политикой:

  • Маршрутизатор, выступающий в качестве конечной точки VPN, сохраняет свой маршрут по умолчанию, указывающий на Интернет через его канал ISP
  • . Он также имеет маршрут политики с правилом на основе источника, согласно которому трафик, исходящий из подсетей, находящихся за ним, независимо от их назначения, должен быть отправлен через туннель.
4
ответ дан 3 December 2019 в 01:30

С маршрутизацией на основе пункта назначения это тоже не сложно.

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

1
ответ дан 3 December 2019 в 01:30

Представьте себе систему с 1 физическим адаптером: enp2s0.

Эта таблица маршрутизации может начинаться, когда весь трафик выходит из enp2s0.

Как только система подключается к VPN, инициализируется интерфейс TUN (tun0), и VPN обновляет таблицу маршрутизации: Весь трафик, направляемый на адрес VPN-сервера на порту X (адрес и порт VPN-сервера), выходит через enp2s0.Весь остальной трафик проходит через tun0.

Конечно, VPN не обязана маршрутизировать весь трафик. Например, я раньше настраивал VPN, в которых через VPN проходит только трафик, который идет в определенную частную подсеть, поэтому обычный интернет-трафик не изменяется. То, как вы это делаете, зависит от программы VPN.

1
ответ дан 3 December 2019 в 01:30

Теги

Похожие вопросы