Estou tentando criar um túnel de VPN que encaminha todos os dados da máquina local para o servidor VPN.
Estou usando o ppp-2.4.5 para isso com a seguinte configuração:
pty "pptp <VPNServer> --nolaunchpppd"
name <my login name>
remotename PPTP
usepeerdns
require-mppe-128
file /etc/ppp/options.pptp
persist
maxfail 0
holdoff 5
Eu tenho um script em if-up.d com o seguinte conteúdo:
route del default eth0
route add default dev ppp0
Antes de iniciar o túnel VPN, meu roteamento se parece com:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 2 0 0 eth0
127.0.0.0 127.0.0.1 255.0.0.0 UG 0 0 0 lo
192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
Depois de iniciar o túnel (via pon), parece que:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
12.34.56.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
127.0.0.0 127.0.0.1 255.0.0.0 UG 0 0 0 lo
192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
Agora, o problema é que o túnel VPN parece estar em loop em si mesmo.
Se eu executar o ifconfig após alguns segundos sem tráfego:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.10 netmask 255.255.0.0 broadcast 192.168.255.255
ether 00:01:2e:2f:ff:35 txqueuelen 1000 (Ethernet)
RX packets 39931 bytes 6784614 (6.4 MiB)
RX errors 0 dropped 90 overruns 0 frame 0
TX packets 34980 bytes 7633181 (7.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xfbdc0000-fbde0000
ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1496
inet 12.34.56.78 netmask 255.255.255.255 destination 12.34.56.1
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 7 bytes 94 (94.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 782863 bytes 349257986 (333.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Ele afirma que já foram enviados mais de 300 MiB, o ppp0 está online apenas por alguns segundos e a conexão não está funcionando de qualquer maneira.
Alguém por favor pode me ajudar a consertar a tabela de roteamento, para que o tráfego do ppp0 não seja enviado novamente através do ppp0, mas vá para o servidor remoto?
Atualizar
Eu finalmente resolvi isso criando a seguinte rota:
route add -host <VPNServer> gw 192.168.0.1
route add -net default gw 12.34.56.1
então a única coisa que estava errada era que eu misturei o ponto final da conexão VPN com o endereço IP do próprio servidor VPN.