У меня есть окно Linux, настроенное как маршрутизатор /DNS /DHCP /OpenVPN моей домашней сети. DHCP-сервер ISC распределяет адреса в две мои подсети:

172.16.1.0/24
172.16.2.0/24

Первый содержит все устройства в моей сети, кроме ПК для домашнего кинотеатра (HTPC). Второй содержит только HTPC. Причина этого заключается в том, что HTPC по сути является устройством Netflix и должен происходить из моего IP-адреса из-за географического ограничения Netflix.

Я использую OpenVPN для подключения к VPN-сервису, членом которого я являюсь.

Моя цель - получить весь трафик из маршрута подсети 172.16.1.0/24 через VPN, как обычно (что работает!), Но получить трафик из маршрута подсети 172.16.2.0/24 непосредственно через интерфейс WAN моего маршрутизатора. Эта подсеть 172.16.2.0/24 также должна иметь возможность обмениваться данными с устройствами в первой подсети, поскольку там есть NAS (172.16.1.11). Я пытался использовать iproute2 и iptables для достижения этой цели с помощью маршрутизации на основе политик, но у меня возникли проблемы.

Файл конфигурации OpenVPN:

client
dev tun
proto udp
remote GATEWAY 1197
resolv-retry infinite
nobind
persist-key
persist-tun
cipher aes-256-cbc
auth sha256
tls-client
remote-cert-tls server
auth-user-pass /etc/openvpn/credentials
comp-lzo
verb 1
reneg-sec 0
crl-verify crl.rsa.4096.pem
ca ca.rsa.4096.crt
disable-occ
#
# Troy's modifications
#
up ./auto_vpn/route_up.sh               # Run script on tunnel up.
down ./auto_vpn/route_down.sh           # Run script on tunnel down.
auth-nocache                            # Don't cache user/password in memory.
mute-replay-warnings                    # Mute packet replay warnings.
script-security 2                       # 2: Allow calling of built-in scripts.
dhcp-option DNS 209.222.18.222          # PIA's DNS servers.
dhcp-option DNS 209.222.18.218

Сценарий туннелирования:172.16.2.0/24 dev wan

#!/bin/sh
ip rule add from 172.16.2.0/24 table novpn
ip route add 172.16.2.0/24 dev wan table novpn
/etc/openvpn/update-resolv-conf

Скрипт туннелирования:

#!/bin/sh
ip rule del from 172.16.2.0/24 table novpn
ip route del 172.16.2.0/24 dev wan table novpn
/etc/openvpn/update-resolv-conf

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

$ ip route show table novpn
172.16.2.0/24 dev wan  scope link

Кроме того, HTPC (172.16.2.50) не может видеть мой NAS (172.16.1.11).

Буду признателен за любые указатели, которые помогут мне определить, где я ошибся.

0