Boa tarde,
Estou com o seguinte problema, tenho uma VPN entre dois estabelecimentos, mas eles tem IP DINAMICO, entao pensei em amarrar por DDNS, e fiz, ele comunica, só que quando atualiza o IP ele desconecta, então montei um script para reconectar, só que gostaria de deixa-lo mais inteligente, segue abaixo os scripts, me ajudem por gentileza.
----------------------------------
SCRIPT QUE ESTA RODANDO HOJE
:local novoip [:resolve servidorvpn.ddns.ms];
:interface pptp-client set numbers=interface_vpn connect-to=$novip
:log info "NOVO IP DA VPN: $novoip"
#FIM
Prós: Adcionado ao agendamento, ele reconecta sem problemas, então enquanto o servidor da VPN tiver o IP atualiznado ele reconecta. No outro lado o servidor tem de estar enviando o IP da interface pro seu provedor de DNS, tem scripts na internet pra isso.
Contras: Como agendei pra reconectar de 1 em 1 minuto causa um baita lag, o sistema trava, por que a vpn reconectou etc...
Solução: Montar um script que use IF e ELSE para enquanto o IP da VPN for igual o fornecido pelo servidor, ele não reconecta, quando ele ver que o IP for diferente ai sim ele reconecta, desta forma a rede se mantem conectada o tempo que for possivel.
Segue o que estava montando:
SCRIPT QUE ESTOU MONTANDO E PEDINDO AJUDA PRA TERMINAR
:global vpnold [:ip address get [:ip address find interface=vpn_01] address ]
:global vpnnew [:resolve servidorvpn.ddns.ms]
:if ($vpnold != $vpnnew) do={
:log info "VPN: Atualizando IP da VPN!";
:interface pptp-client set numbers=vpn_01 connect-to=$vpnnew disable=no;
:log info "VPN: Atualizado com sucesso: $vpnnew"
}
else={
:log info "VPN: Nao Necessita Ser Alterado."
}
# FIM DO SCRIPT
Ajudem ai, Vlw!
Cleverson Pompeu
Respostas
eu mando um ping para um ip local , se a vpn esta conecta ele responde o ping senao ele resolve o ddns e altera na vpn coloquei esse script para rodar de 5 em 5 minutos
:if ([/ping 192.168.1.1 count=15 size=28] < 10) do={:local ipteste [:resolve internet.ddns.info] ;/interface pptp-client set pptp-webconnect1 connect-to=$ipteste}
Simão, perfeito! rsrs na real trabalhei na mesma linha de raciocínio veja, rsrsrs, interessante como pensamos igual! rsrs. No caso considerei se o status da interface está Running, se nao ele reconecta =)
:global vpnnew [:resolve dinizrj001.ddns.ms]
:if ([/interface get vpn_01 value-name=running]) do={
:log info "VPN: Nao Necessita Ser Alterado."
}
}else={
:log info "VPN: Atualizando IP da VPN!";
:interface pptp-client set numbers=vpn_01 connect-to=$vpnnew disable=no;
:log info "VPN: Atualizado com sucesso: $vpnnew"
}
}
# FIM DO SCRIPT
faz um teste e me fala
flw
Valeu parceiro, eu gostei do teu script! Simpes e perfeito, vou dar uma mexidinha e posto aqui os resultados, abraços!