Маршрутизация трафика wlan1 через vpn и трафика wlan0 на eth0

Маршрутизация трафика wlan1 через vpn и трафика wlan0 на eth0

Я пытаюсь настроить беспроводной маршрутизатор и использовать vpn. Поскольку я довольно новичок в этой конкретной теме. Надеюсь, кто-нибудь здесь сможет дать мне подсказку или, если возможно, практическое решение. Я перерыл весь интернет, но не нашел убедительного решения следующей проблемы:

У меня есть устройство на базе Ubuntu с двумя беспроводными интерфейсами (wlan0 и wlan1), а также физическим сетевым интерфейсом (eth0), который подключен к Интернету. Я также планирую подключиться к vpn (openvpn к провайдеру vpn, которого мне придется сначала купить), который, вероятно, будет tun0 или что-то в этом роде. Я хочу, чтобы весь трафик с устройств, подключенных к wlan1, направлялся через vpn, а весь трафик на wlan0 направлялся напрямую в Интернет.

Вот мои вопросы: а) возможно ли это вообще? б) если ( а == да ), то как мне это сделать?

Мне нужно надежное решение, поэтому, пожалуйста, по возможности не прибегайте к грязным трюкам.

Спасибо заранее, Пэр

решение1

Это делается с помощью маршрутизации на основе политик.

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

Сначала мы настраиваем новую таблицу маршрутизации под названием «vpn» (или как вам больше нравится):

echo "200 vpn" >> /etc/iproute2/rt_tables

Или вы можете отредактировать этот файл и добавить 200 vpnв конец.

Далее нам нужно добавить правило:

sudo ip rule add iif wlan1 lookup vpn

Это означает, что «если входящий интерфейс — wlan1то используйте таблицу маршрутизации с именем «vpn», а не обычную».

Затем добавляем маршрут по умолчанию в таблицу маршрутизации VPN:

sudo ip route add default dev tun0 table vpn
sudo ip route flush cache

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

Эту команду можно использовать для просмотра таблицы маршрутизации VPN:

sudo ip route list table vpn

Теперь это просто случай запуска этих команд, возможно, как скрипт после активации vpn. Я почти уверен, что у openvpn есть post-up скрипт, в который вы можете их добавить.

Связанный контент