Caros Amigos.
Depois de muito pesquisar, sem sucesso e já cansado, resolvi estudar um pouquinho mais sobre scripts no mikrotik, pois queria redirecionar minha porta 80 para um webserver atrás do mikrotik e não conseguia com nenhum tutorial encontrado na internet.
Vou explanar melhor:
Minha rede tem a seguinte topologia:
O Problema: Com o modem no modo PPPOE, se eu criase um DSTNAT, com protocolo 6(tcp), dstport 80 para o endereço 192.168.2.16 (Debian Servidor), todos os sites acessados pelo cliente cairiam dentro do meu servidor.
Se eu selecionasse a porta WAN, os clientes navegavam normalmente, porém não conseguia acesso externo ao servidor.
Resolvi este problema de uma maneira simples. Mudei o modem de PPPOE para BRIDGE e criei um script para automatizar a mudança do ip na regra NAT.
A REGRA NAT
Criei uma regra NAT DST-NAT com a seguinte configuração:
Na aba General:
Chain: dstnat
protocol: 6(tcp)
dstport: 80
Na aba Action:
To-Address: 192.168.2.16
To-Ports: 80
Criei também um cliente PPPOE, que disca para o ADSL e conecta o link.
O comentário que identifica esse regra NAT é webserver, aqui no meu mikrotik. Agora vamos a parte que faz o trabalho no script:
:local ipAtual [/ip address get [find interface="NOME DA CONEXAO PPPOE" disabled=no] address]
# Separar máscara de rede
:for i from=( [:len $ipAtual] - 1) to=0 do={
:if ( [:pick $ipAtual $i] = "/") do={
:set ipAtual [:pick $ipAtual 0 $i]
}
}
/ip firewall nat set [find comment="webserver"] dst-address=$ipAtual
e adiciona uma automação para a regra:
/system scheduler add comment="Atualização IP-NAT" disabled=no interval=5m \
name=NomeDoScript on-event=NomeDoScript policy=read,write,test
Onde NomeDoScript é o nome que você salvou o script no servidor.
Pronto. Ele vai atualizar o campo dst-address da regra de NAT chamda webserver com o ip externo coletado do PPPOE.
Notas: Na regra nat, você pode adicionar em dstport as portas que deseja abrir para seu servidor.
Lembre-se: Se adicionar mais que uma porta, em To-Ports (aba Action) você também devera especificar as portas que abriu.
Exemplo:
Aba General: dstport: 21,80,2082
Aba Action: To-Ports: 21-2082
Para quem usa o no-ip, bem vindo. Também uso e funciona 100% junto com o script de auto-update do no-ip
Para melhor entendimento, e para facilitar sua vida, o script está em anexo, junto com a automação scheduler.
Espero que tenham entendido, e gostado.
Respostas
Gostei parece que funciona mais não entendi muito bem esse método, se no caso fosse um mkauth conectado em uma interface como seria
CORREÇÃO PARA O SCRIPT -> A ÚLTIMA LINHA ONDE SE LÊ:
espero que ajude o pessoal assim como me tirou do sufoco kk
valeu a dica amigo...