Eu tenho uma caixa Linux configurada como o cliente roteador / DNS / DHCP / OpenVPN da minha rede doméstica. O servidor DHCP do ISC distribui endereços para minhas duas sub-redes:
172.16.1.0/24
172.16.2.0/24
O primeiro contém todos os dispositivos da minha rede exceto meu PC de home theater (HTPC). O segundo contém apenas o HTPC. A razão para isso é que o HTPC é essencialmente um dispositivo Netflix e tem que se originar do meu IP devido à restrição geográfica da Netflix.
Estou usando o OpenVPN para me conectar a um serviço VPN do qual sou membro.
Meu objetivo é ter todo o tráfego da rota de sub-rede 172.16.1.0/24 através da VPN como normal (que funciona!), mas ter o tráfego da rota de sub-rede 172.16.2.0/24 diretamente na interface WAN do meu roteador. Essa sub-rede 172.16.2.0/24 também precisa ser capaz de se comunicar com dispositivos na primeira sub-rede, já que existe um NAS (172.16.1.11). Eu tentei usar o iproute2 e o iptables para realizar isso com o roteamento baseado em políticas, mas estou tendo problemas.
Arquivo de configuração do 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
Script de túnel: 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
Script de túnel:
#!/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
Quando o OpenVPN é iniciado, todos os clientes na rede têm acesso à Internet através da VPN incluindo a sub-rede que deve acessar a Internet contornando a VPN. Enquanto o túnel está em alta, posso ver que meu caminho está no lugar, mas não está sendo usado aparentemente.
$ ip route show table novpn
172.16.2.0/24 dev wan scope link
Além disso, o HTPC (172.16.2.50) não consegue ver meu NAS (172.16.1.11).
Quaisquer sugestões que me ajudem a identificar onde eu errei seriam bem-vindas.
Tags networking vpn openvpn routing subnet