OpenVPN: Encaminhar somente sub-redes específicas através da vpn - funciona para endereços IP únicos

2

Eu estava tentando rotear apenas uma sub-rede / single específica por meio da VPN aberta.

Eu li várias perguntas como esta no superusuário, e até encontrei boa resposta à minha pergunta.

Portanto, agora posso rotear o endereço IP único por meio da VPN. Para fazer isso, adicionei algo assim a /etc/openvpn/client.conf :

route-nopull

route 1.2.3.4 255.255.255.255
route 5.6.7.8 255.255.255.255
route 9.10.11.12 255.255.255.255

No entanto, isso resolve apenas metade do meu problema, porque o que eu gostaria de fazer é encaminhar sub-redes específicas através da vpn, não apenas endereços únicos.

Eu tentei seguir

route x.y.19.178 255.255.255.0

que, creio eu, deve direcionar o tráfego para a sub-rede x.y.19.178 / 24 através da vpn, mas isso não acontece. Em vez disso, vejo o seguinte erro no syslog:

Dec 18 16:11:01 wi-dev ovpn-client[31421]: /sbin/ip route add x.y.19.178/24 via z.a.0.1
Dec 18 16:11:01 wi-dev ovpn-client[31421]: ERROR: Linux route add command failed: external program exited with error status: 2 

Alguma ideia do que pode estar errado com a configuração do meu cliente (ou servidor)?

    
por running.t 18.12.2014 / 17:05

1 resposta

3

Sua máscara de rede não é válida para o endereço IP que você está usando. Especificamente, se você pegar seus endereços IP e convertê-los em binários, verá:

IP   = x.y.19.178            = XXXXXXXX.YYYYYYYY.00010011.10110010
MASK = 255.255.255.252 (/30) = 11111111.11111111.11111111.11111100

Para que um endereço IP seja válido para uma sub-rede, o IP deve estar no início da sub-rede ou, em termos binários, o IP só pode ter 1 s onde a máscara de sub-rede tem 1 s . Então, se removermos o último 1 do IP, obteremos:

IP   = x.y.19.176            = 00001010.00000000.00010011.10110000

Portanto, o início da sua sub-rede deve ser x.y.19.176 . Você terá que calcular os IPs apropriados se quiser uma sub-rede diferente de um /30 . Eu usei esta ferramenta para fazer alguns cálculos.

Observe também: se você acabou de executar o comando dado no log na linha de comando

/sbin/ip route add x.y.19.178/24 via z.a.0.1

Você receberá o erro de volta. Na minha máquina eu recebi "argumento inválido", enquanto este comando teve sucesso:

/sbin/ip route add 192.168.19.176/24 via 192.168.0.1
    
por 18.12.2014 / 18:32