Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. Boa noite pessoal, segue script para fazer o CGNAT em sua rede, ele já inclui um contador que facilita sua vida para vc não precisar criar na mão 2 regras para cada cliente mais os jumps.

    _____________________________________________________________________________
    :global sqrtbin do={ :local count 0 :local value $1 :do { :set count ($count + 1) :set value ($value / 2) } while=($value > 0) :return $count}:global addNatRules do={ :global sqrtbin; :local toAddrCount $toAddr; :local x (1<<(([$sqrtbin ($count)])/2)); :local y ($count / $x); :for j from=$srcStartOct1 to=$srcStopOct1 do={ :for k from=$srcStartOct2 to=$srcStopOct2 do={ :for l from=$srcStartOct3 to=$srcStopOct3 do={ /ip firewall nat add chain=srcnat action=jump jump-target="CGNAT-$($toAddrCount)" \ src-address=(($j.".".$k.".".$l.".".$srcStartOct4)."-".($j.".".$k.".".$l.".".$srcStopOct4)) \ comment="CGNAT" out-interface=LINK :set toAddrCount ($toAddrCount + 1) } } } :set toAddrCount $toAddr; :for j from=$srcStartOct1 to=$srcStopOct1 do={ :for k from=$srcStartOct2 to=$srcStopOct2 do={ :for l from=$srcStartOct3 to=$srcStopOct3 do={ :if ($x * $x = $count) do={ :set y ($x + 1) } :for i from=0 to=($y-1) do={ :local inicio [:toip (($j.".".$k.".".$l.".".$srcStartOct4) + ($x * $i))] :local fim [:toip (($j.".".$k.".".$l.".".$srcStartOct4) + ($x * ($i + 1) - 1))] /ip firewall nat add chain="CGNAT-$($toAddrCount)" action=jump jump-target="CGNAT-$($toAddrCount)-$($i)" \ src-address=([:tostr $inicio]."-".[:tostr $fim]) comment="CGNAT" } :set toAddrCount ($toAddrCount + 1) } } } :set toAddrCount $toAddr :for j from=$srcStartOct1 to=$srcStopOct1 do={ :for k from=$srcStartOct2 to=$srcStopOct2 do={ :for l from=$srcStartOct3 to=$srcStopOct3 do={ :local srcStart [:toip (($j.".".$k.".".$l.".".$srcStartOct4))] :for i from=0 to=($count - 1) do={ :local prange "$($portStart + ($i * $portsPerAddr))-$($portStart + (($i + 1) * $portsPerAddr) - 1)" /ip firewall nat add chain="CGNAT-$($toAddrCount)-$($i / $x)" action=src-nat protocol=tcp src-address=($srcStart + $i) \ to-address=$toAddrCount to-ports=$prange comment="CGNAT" /ip firewall nat add chain="CGNAT-$($toAddrCount)-$($i / $x)" action=src-nat protocol=udp src-address=($srcStart + $i) \ to-address=$toAddrCount to-ports=$prange comment="CGNAT" } :set toAddrCount ($toAddrCount + 1) } } }}$addNatRules count=128 srcStartOct1=100 srcStartOct2=64 srcStartOct3=0 srcStartOct4=1 \ srcStopOct1=100 srcStopOct2=64 srcStopOct3=0 srcStopOct4=128 \ toAddr=201.xx.xx.177 portStart=1500 portsPerAddr=500

    _____________________________________________________________________________

    A personalização para ficar de acordo com sua rede acontece em $addNatRules (antepenúltima linha), em nosso exemplo utilizamos a range de ip para os clientes de 100.64.0.1 até 100.64.0.128, esses 128 clientes vão sair pelo ip válido 201.xx.xx.177 no seu respectivo bloco de portas designado.

    Caso tenha mais de 128 clientes, adicione um novo ip válido a sua interface de link e rode o script novamente editando o addNatRules

    Mais detalhes no blog do amigo @eduardomazoline : http://blog.mazolini.com.br/2017/03/cgnat.html

  2. Bom dia amigo,
    Parabéns pelo seu script e pela iniciativa de compartilha-lo!
    por acaso vc tem alguma atualização do mesmo?
    pois parece não funcionar mais na versão atual do Mikotik!
    Obrigado



  3. Esqueci de mencionar o out-interface que deve ser editado tbm

  4. Citação Postado originalmente por michelkalinoski Ver Post
    Esqueci de mencionar o out-interface que deve ser editado tbm
    Sim, eu editei mas ele da um erro na linha 1 coluna 37



  5. Tem espaço no nome da sua interface?






Tópicos Similares

  1. Script para Pegar IP, Enviar e-mail e escrever no pptp.conf
    Por Skill no fórum Linguagens de Programação
    Respostas: 21
    Último Post: 26-06-2003, 12:34
  2. Script para Pegar IP da ETH ou PPP0, e enviar por email
    Por Skill no fórum Servidores de Rede
    Respostas: 0
    Último Post: 28-03-2003, 16:55
  3. Script para pegar IP
    Por Skill no fórum Servidores de Rede
    Respostas: 6
    Último Post: 15-03-2003, 15:30
  4. script para criação de contas
    Por no fórum Linguagens de Programação
    Respostas: 1
    Último Post: 08-02-2003, 17:08
  5. scripts para logs do Radius
    Por dboom no fórum Servidores de Rede
    Respostas: 1
    Último Post: 15-09-2002, 16:00

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L