Как настроить перенаправление трафика с основного inet интерфейса на tap интерфейс?

Пытаюсь настроить не самое популярное VPN решение govpn через tap интерфейсы.

Сконфигурировал на сервере:
ip tuntap add dev tap10 mode tap
ip addr add 172.16.0.1/24 dev tap10
ip link set up dev tap10

Сконфигурировал на клиенте:
ip tuntap add dev tap10 mode tap
ip addr add 172.16.0.2/24 dev tap10
ip link set up dev tap10

Если добавить на клиенте
ip route add 0/1 via 172.16.0.1
ip route add 128/1 via 172.16.0.1

из туториала, то сеть в принципе перестает отвечать. Я так понимаю, это из-за того, что трафик (включая коннект к серверу) пытается идти через внутренний tap10 интерфейс, но тот в свою не знает, как роутить трафик. (Подключение клиента к VPN серверу при такой конфигурации просто не происходит, клиент не может достучаться до сервера).

Без последних двух строк клиент может успешно пинговать сервер по 172.16.0.1, но весь остальной интернет трафик идет через стандартный интерфейс.

Посмотрел, как выглядит вывод ip route при подключении по OpenVPN, там 2 строки с default via появляется помимо остальных:
default via <ip на tun0> dev tun0 proto static metric 50
default via <ip на wlp3s0> dev wlp3s0 proto static metric 750

Таблицы iptables при этом пустые.

Возникает два вопроса:
1) Как система понимает, что трафик из tap/tun интерфейса в итоге на выходе из tap/tun идет через интерфейс, имеющий выход в сеть в случае с OpenVPN?
2) Как в итоге перенаправить весь интернет трафик через tap интерфейс? (Главный вопрос)
  • Вопрос задан
  • 1413 просмотров
Решения вопроса 1
@younghacker
Прежде чем заворачивать default gateway через ваш tap интерфейс сначала нужно добавить роут до вашего VPN сервера через ваш eth (или что там у вас) сетевой интерфейс и назначить ему самую маленькую метрику. После этого добавить шлюз по умолчанию через tap интерфейс и дать ему метрику побольше.

Вот часть моей таблицы маршрутизации
$ ip route
default via 10.22.0.5 dev tun0
10.22.0.1 via 10.22.0.5 dev tun0
10.22.0.5 dev tun0  proto kernel  scope link  src 10.22.0.6
80.232.124.241 via 172.16.35.1 dev eth0
172.16.35.0/24 dev eth0  proto kernel  scope link  src 172.16.35.254  metric 100


Другими словами когда у вас маршрут по умолчанию заворачивается в tap интерфейс то система не должна потерять маршрут к VPN серверу через eth интерфейс.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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