No momento, sempre que me conecto a um servidor VPN (comercial), uma tun
interface é ativada com um inet
endereço atribuído a ele e peer
um (o que quer que isso signifique).
root@mininet-vm:/etc/openvpn# ip -4 a show dev tun0
33: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
inet 10.9.10.6 peer 10.9.10.5/32 scope global tun0
valid_lft forever preferred_lft forever
Tenho duas interfaces virtuais que quero que todo o seu tráfego passe pela VPN. Eu posso fazer isso funcionar roteando o tráfego dessas interfaces para tun0
e fazendo um SNAT
para 10.9.10.6
. Eu tentei atribuir ips como 10.9.10.7
e 10.9.10.8
para eles, mas só recebo tráfego de resposta tun0
quando o src
é 10.9.10.6
(daí por que o SNAT funcionou).
Eu queria saber se é possível se transformar tun0
em uma sub-rede regular para que eu possa atribuir mais de um cliente nessa sub-rede e fazer isso sem recorrer ao NAT.
Eu encontrei a opção de topologia na página de manual do openvpn, mas esta opção parece ser empurrada pelo servidor
subnet -- Use a subnet rather than a point-to-point topology by
configuring the tun interface with a local IP address and
subnet mask, similar to the topology used in --dev tap and
ethernet bridging mode.
Eu tentei substituí-lo /usr/sbin/openvpn --topology subnet --pull-filter ignore "topology" ...
, mas ele falha ao adicionar o IP:
Fri Dec 28 01:52:47 2018 /sbin/ip addr add dev tun0 10.66.10.6/-1 broadcast 255.255.255.254
Error: an inet prefix is expected rather than "10.66.10.6/-1".
Existe alguma outra maneira de fazer isso funcionar? (infelizmente não consigo controlar o servidor esta VPN comercial)
Se você não tiver controle sobre o servidor, não poderá fazer isso.
As interfaces TUN tratam dos pacotes da camada três (ao contrário de uma interface TAP, que trata da camada dois). O servidor terá regras estáticas para roteamento e você não poderá alterar isso usando apenas a configuração do lado do cliente.