Encaminhando tudo, exceto um determinado intervalo de IP através de um túnel OpenVPN

2

Eu tenho trabalhado com o meu servidor OpenVPN por um tempo, e eu tenho um problema bastante interessante. Preciso redirecionar o tráfego do cliente all pelo túnel exceto para alguns IPs que precisam ser resolvidos localmente. A maneira como estou fazendo isso é pressionar essas rotas do servidor:

Diretivas 'PUSH' do servidor

 push "redirect-gateway def1 bypass-dhcp" 
 push "dhcp-option DNS 8.8.8.8" 
 push "dhcp-option DNS 8.8.4.4"

Estou vendo essa tradução para essas rotas do Windows:

Rotas do Windows ocorrendo

Wed Aug 31 15:14:35 2011 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 8.8.8.8,dhcp-option DNS 8.8.4.4,route 10.8.0.1,topology net30,ping 5,ping-restart 30,ifconfig 10.8.0.6 10.8.0.5'
Wed Aug 31 15:14:35 2011 ROUTE default_gateway=192.168.1.254

Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 199.[*.*.*] MASK 255.255.255.255 192.168.1.254
Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 0.0.0.0 MASK 128.0.0.0 10.8.0.5
Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 128.0.0.0 MASK 128.0.0.0 10.8.0.5
Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.5

Eu ocultei o IP do meu servidor começando com 199 para fins de segurança.

O que eu recolhi

Estou assumindo que 0.0.0.0 é um tipo de código para "tudo", então não tenho certeza de como fazer isso funcionar, mas a ideia geral é que eu preciso de um intervalo de IP específico ( 172.16.* ) para ser resolvido na REDE LOCAL (do cliente), o que significa que não passa pelo túnel VPN e o cliente pode se conectar a 172.16.* localmente.

Isso é possível? Rotas podem ser executadas através da linha de comando, servidor "push" ou opções de configuração do cliente. Qualquer maneira Qualquer de fazer com que isso funcione enquanto ainda encaminhava outro tráfego, realmente.

Informações adicionais

Eu tenho o servidor rodando no Debian de 64 bits e o cliente rodando no Windows 7 (embora o Vista precise funcionar também).

As configurações de cliente / servidor podem ser fornecidas se necessário .

    
por caesay 01.09.2011 / 00:31

2 respostas

4

Parece que depois de fazer mais algumas pesquisas, com base na resposta de Grawity, que rotas mais específicas terão precedência, após o PUSH do servidor, eu posso simplesmente fazer um

--route [ip to bypass] 255.255.255.0 net_gateway

net_gateway conforme definido na diretiva 'route' na página do manual openvpn será resolvida para o gateway padrão ip preexistente

    
por 01.09.2011 / 01:30
1

Basta adicionar outra rota e ela terá precedência sobre as menos específicas:

172.16.* traduz a 172.16.0.0 com netmask 255.255.0.0 :

route add 172.16.0.0 mask 255.255.0.0 if index

em que index é o índice da sua interface de rede LAN, conforme mostrado por route print . Por exemplo, 0x3 ou similar.

    
por 01.09.2011 / 00:46