Encaminhando todos os dados através de um túnel VPN com ppp

1

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.

    
por Oliver 01.12.2012 / 17:18

1 resposta

0

Apenas do ponto de vista da rede, você ainda precisará de uma rota saindo da eth0 para o endereço IP específico do servidor VPN (seu IP externo).

Você pode adicionar uma rota para isso em um script de inicialização ou no script if-up. Não importa se existe quando a rota padrão já está saindo da eth0.

Todos os outros dados devem sair do ppp0 (que sai da eth0 ..)

    
por 01.12.2012 / 17:31