Как перенаправить одну локальную сеть через VPN, а другую напрямую?

У меня программный маршрутизатор на базе CentOS Linux 6. У меня есть 2 локальные сети, скажем Local1 и Local2 . У меня есть одно подключение к Интернету, и у меня есть VPN-соединение, которое я использую через этот Интернет.

Я использую iptables и DHCP-сервер для совместного использования Интернет-соединения. Когда я включаю VPN, трафик Local1 и Local2 проходит через VPN, без VPN обе локальные сети выходят напрямую в Интернет.

Мой вопрос: как настроить программный маршрутизатор на базе CentOS для перенаправления одной локальной сети через VPN, а другой напрямую?

0
задан 15 August 2016 в 17:59
4 ответа

Я не могу сказать вам, как ... но я могу сказать вам теоретически.

Скорее всего, ваша VPN состоит только из определенной сети (или набора сетей). Вы можете настроить разделенное туннелирование, чтобы на псевдо-псевдониме сказать: «Любой трафик, предназначенный для« сети VPN », проходит через VPN-соединение». Тогда ваш маршрут по умолчанию 0.0.0.0 будет настроен на выход через интернет-соединение.

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

0
ответ дан 5 December 2019 в 09:41

Сначала вы должны изменить конфигурацию VPN, чтобы она не настраивалась в качестве шлюза по умолчанию. Что это за VPN? Во-вторых, вам нужно добавить правило iptables для перенаправления трафика с Local2 (eth0) на VPN (tun0) ex.commands: iptables -I FORWARD -i eth0 -o tun0 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT и второй iptables -t nat -I POSTROUTING -o tun0 -s 192.168.0.0/24 -j MASQUERADE

0
ответ дан 5 December 2019 в 09:41

Наконец, я нашел прочь. Требуется использовать iproute2 , но присутствуют некоторые неочевидные вещи.

  1. Используйте ip rule для создания политики маршрутизации на основе источника.
  2. Используйте ip route .... таблица , чтобы добавить 3 маршрута к политике маршрутизации на основе источника: один, который устанавливает шлюз по умолчанию для Интернета, и два, которые задают шлюзы для обеих локальных сетей. Он не работает без настройки шлюзов локальных сетей, вероятно, потому что OpenVPN вносит много изменений в таблицу маршрутизации.
  3. Важно: правило ip и ip route не сохраняются, поэтому правила исчезают при перезагрузке. Обычно используются файлы интерфейса правил и интерфейса маршрута для установки статических маршрутов. Однако эти файлы проблематичны, если вы используете их с DHCP и / или точкой доступа Wi-Fi. Причина в том, что эти файлы применяются параллельно (как и раньше) при инициализации DHCP и hostapd . Вот почему эти 2 файла часто приводят к неправильной таблице маршрутизации. Вместо этого я использую rc.local для добавления маршрутов и правил с помощью командной строки при запуске системы, и с таким подходом я могу маршрутизировать один локальный сетевой адаптер через VPN, а другой напрямую.
0
ответ дан 5 December 2019 в 09:41

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

Затем вы можете добавить статический маршрут, который будет перенаправлять трафик в подсеть local1 в шлюз VPN.

0
ответ дан 5 December 2019 в 09:41

Теги

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