#  > Telecomunicações >  > Mikrotik >  >  IP Publico x Nat

## JeffersonSato

Boa tarde galera, estou querendo evitar um problema em minha rede, mas a situação não está a favo a min.

Vamos lá, tenho um bloco /21 que recebi da NicBr... só que esses blocos já está se esgotando e fui pedir um novo bloco,
mas está demorando muito para sair esse bloco, sem falar na burocracia para poder ter lo... e acho que ate esse final de mês 
meu bloco se esgota....

Queria de uma forma simples usar nat em minha rede até a liberação deste novo bloco. Como faria para usar nat em cima de um ip publico meu? exitem formas melhores? para evitar isso ?

Uso concentradores pppoe nos pop, minha rede e roteada OSPF, uso radius para atribuir os ip para meus clientes!

Me perdoem se falei alguma besteira, me corrigem se eu estiver errado !

Obrigado

----------


## andrecarlim

Olha, NAT deve ser sempre a última opção mesmo, só em caso de vida ou morte, haha, meio pesado mas é isso mesmo! Mas se mesmo assim precisar não faz NAT convencional não, faz CGNAT, não é tão difícil se for só por alguns dias...

Enviado via XT1563 usando UnderLinux App

----------


## eduardomazolini

Pode me explicar o CGNAT? E na prática com mikrotik

Enviado de meu SM-G800H usando Tapatalk

----------


## Fcnetwork

achei no tube:
https://www.youtube.com/watch?v=uxu0ivaDAnc

----------


## JeffersonSato

Amigo tem como me explicar como funciona esse CGNAT, ainda não pesquisei sobre, mas se tiver como dar uma explicação breve !!

OBRIGADO




> Olha, NAT deve ser sempre a última opção mesmo, só em caso de vida ou morte, haha, meio pesado mas é isso mesmo! Mas se mesmo assim precisar não faz NAT convencional não, faz CGNAT, não é tão difícil se for só por alguns dias...
> 
> Enviado via XT1563 usando UnderLinux App

----------


## magnorm

Bom dia @*JeffersonSato* como ta seu planejamento de implantação do IPV6? Mesmo vc recebendo um novo bloco em pouco tempo terá o problema novamente. E se for trabalhar com cgnat é obrigatório entregar o IPV6. Cgnat nada mais é que em vez de entregar ip publico vc da um ip privado no range 100.64.0.0. As operadoras copel e net ja estao fazendo isso mas como falei ja entregam IPV6. vc tem de planejar bem isso pq vai ter problemas se seu clientet utiliza aplicações antigas cliente servidor ou se ele faz vpn czom algum local. A conselho a colocar somente nos clientes domésticos 

Enviado via LG-V490 usando UnderLinux App

----------


## eduardomazolini

O que eu queria saber é o que o @*andrecarlim* quis dizer com "...não faz NAT convencional não, faz CGNAT...". Ele quer dizer pra registrar os logs? Qual a diferença.

Enviado de meu SM-G800H usando Tapatalk

----------


## gustavo_marcon

> Olha, NAT deve ser sempre a última opção mesmo, só em caso de vida ou morte, haha, meio pesado mas é isso mesmo! Mas se mesmo assim precisar não faz NAT convencional não, faz CGNAT, não é tão difícil se for só por alguns dias...
> 
> Enviado via XT1563 usando UnderLinux App



bom dia amigos! interessante o tópico.

gostaria apenas de perguntar, por que é tão ruim utilizar nat?


obrigado!

----------


## eduardomazolini

@*magnorm* eu entrego IP privado convencional desde que nasci e não tinha AS. Por que deveria mudar o Range para 100.64?

Enviado de meu SM-G800H usando Tapatalk

----------


## eduardomazolini

@*gustavo_marcon* o vídeo recomendado acima é uma dica.
Mas de forma prática vou listar alguns problemas. 
- Se você não tá logado no Google tem que preencher captcha, outros serviços também pedem captcha.
- Os ips entram em blacklist e prejudicam todos, ter servidor de email impossível.
- Os clientes não podem ter serviços em suas casas que usam DDNS. Sem chance de abrir porta pra câmera ou pro vídeo game.
- O risco de um dia ser questionado quem era o usuário. 


Enviado de meu SM-G800H usando Tapatalk

----------


## magnorm

@*eduardomazolini* se vc é um provedor licenciado vc não pode entregar ip privado. O cgnat foi autorizado devido a falta de ip e para ser um paliativo ate a transição completa para o IPV6. Se não tiver estudando sobre isso aconselho a correr atrás para não ser pego da calça arriada.

----------


## eduardomazolini

Eu tô já fazendo testes com ipv6. Mas queria saber onde acho esse embasamento que não posso entregar IP privado. Tenho sócios pra convencer. Mas pelo que entendi não há qualquer vantagem prática de mudar o range de ips privados.

Enviado de meu SM-G800H usando Tapatalk

----------


## andrecarlim

Estou em cliente agora, não consigo muitos detalhes, mas assim quem defende NAT nunca teve um oficial de justiça com a polícia federal na porta do provedor acusando de publicar fotos de pedofila!

NAT comum não permite identificar quando um ip privado acessou determinado site, sem contar os problemas com VoIP, gre e etc...

Para usar CGNAT não é obrigatório usar ipv6. Apenas dividir melhor cada IP válido v4.

Ao invés de apenas compartilhar a saída Wan com todo mundo, você divide cada cliente, a pelo menos, 1024 portas de cada IPv4 válido, assim se precisar pegar um sacana, você consegue pegar pela porta de origem, nem sempre a autorização judicial manda a porta de origem, mas se você recorrer eles fornecem, daí você pega o palhaço! Com NAT comum isso é impossível. Da pra usar netflow também, mas boa sorte com um datacenter para armazenar toda essa informação...

Mesmo assim permanecem os problemas com psn da Sony, gre VoIP e etc...

Se precisarem mais informação avisem.



Enviado via XT1563 usando UnderLinux App

----------


## eduardomazolini

Quero me adequar mas estamos falando de um ou alguns hardwares ou softwares pra fazer isso? O que recomendam. Hoje no Nat eu que uso Mikrotik ativei o log no Nat com prefixo o IP de destino. Mando pra um syslog realmente muita informação cada sync uma entrada. Já peguei um cara com vírus de SPAM que recebi email de alerta de segurança.

Enviado de meu SM-G800H usando Tapatalk

----------


## andrecarlim

> Eu tô já fazendo testes com ipv6. Mas queria saber onde acho esse embasamento que não posso entregar IP privado. Tenho sócios pra convencer. Mas pelo que entendi não há qualquer vantagem prática de mudar o range de ips privados.


Já leu o marco civil? Aqui você pode ler, vai no Artigo 13, lá esta a determinação, você não encontra uma informação direta dizendo "É proibido usar ip Privado para clientes", no entanto você vai ter que responder sobre um crime, caso aconteça sobre a rede de sua reponsabilidade, precisará dos registros para se livrar da acusação, e só tem registros se tiver IP Público, caso contrario você responde pela acusação, também você pode ler isso é onde foi padronizado e registrado os tipos de redes e serve como prova judicial, e segundo a Wikipedia:




> *
> Na arquitetura para endereçamentos da Internet, uma rede privada (private network) é uma rede que usa o espaço privado de endereços IP, seguindo os padrões estabelecidos pela RFC 1918 para redes IPv4 e RFC 4193 para IPv6. Estes endereços são associados aos dispositivos que precisam se comunicar com outros dispositivos em uma rede privada (que não faz parte da Internet).*


Se com tudo isso não convencer eles, saia da sociedade, ache um banco de sua confiança, pegue um bom dinheiro e abra um provedor sozinho, é minha dica!

E ainda temos o problema com VoIP, VPN, GRE, PSN (Sony) e muitos outros, que sem IP Público não vão funcionar bem, talvez até nem funcionem mesmo. NAT é sempre uma escolha ruim, claro, do ponto de vista do provedor, se não fosse assim jamais teríamos chegado ao IPv6, se fosse possível e fosse bom, todos os provedores usariam classes privadas. Bom esse argumento, né?




> Quero me adequar mas estamos falando de um ou alguns hardwares ou softwares pra fazer isso? O que recomendam. Hoje no Nat eu que uso Mikrotik ativei o log no Nat com prefixo o IP de destino. Mando pra um syslog realmente muita informação cada sync uma entrada. Já peguei um cara com vírus de SPAM que recebi email de alerta de segurança.


O uso de netflow não é log de conntrack (na verdade é, mas para fins didáticos, digamos que não) como o sr. fez aí, isso que fez consome muita CPU, não que o netflow não consuma, mas é diferente e eficiente, e tem mais, o netflow não tem objetivo de ajudar com esses casos de virus... Do ponto de vista do provedor a rede do cliente é protegida, e por lei agora, então se o cara tem virus consumindo banda, o máximo que provedor pode fazer é entregar a banda contratada pelo cliente, aquela que esta no contrato assinado, o fato do técnico do provedor ligar dizendo que tem virus já é considerado crime, fique atento, existe gente que vai dizer, ahh mas tem virus que burla o controle de banda do mikrotik, mas mesmo assim, se vire, troque para um equipamento que funcione, isso não é desculpa.

Acho que fui mais claro agora, tomara que isso ajude a todos que tem duvida, lembrem uma internet livre e de qualidade se faz com IP público!

----------


## eduardomazolini

Eu só passei pra ele o email que recebi reclamado dele ter atacado um servidor, disse que poderia ser vírus não vejo onde isso pode ser crime. Não passei o dado dele pro reclamante. A idéia toda aqui é guardar o registro. Minha dúvida é como gerar o registro? Eu fiz do meu modo e tô guardando. Realmente consome CPU. Tô discutindo 2 pontos:
-Como gerar o registro?
-Mudar o range privado pra o novo para esse uso específico, qual o ganho?

Pois no meu ver CGNAT não é nada além destes dois pontos.
Eu tenho mais de 50 pequenos servidores roteados trocar o IP seria um grande transtorno. Eu faço Nat de um IP pra cada 32 clientes e guardo registro.


Enviado de meu SM-G800H usando Tapatalk

----------


## andrecarlim

Vamos do inicio, como esta hoje e o que quer fazer?

----------


## eduardomazolini

Usar ipv6 não é dúvida.
Dúvida é mudar o range privado de um para outro.

Quero gerar de forma eficiente.
Hoje gero assim:

add action=src-nat chain=srcnat comment="NAT RANGE xxxxxx" log=yes log-prefix=138.zz.xx.yy out-interface=BridgeBackbone src-address=10.150.44.0/27 \
to-addresses=138.zz.xx.yy

Enviado de meu SM-G800H usando Tapatalk

----------


## andrecarlim

Entendi, assim de qualquer modo acho que você tem que mudar para ipv4 publico, e para matar o teu problema usar servidor radius para autenticar teus usuários, se bem configurado o radius com mysql, vai ter todos esses dados lá na radacct.

----------


## eduardomazolini

O CGNAT não é opção o IPv4 acabou eu tenho só um /22.

Enviado de meu SM-G800H usando Tapatalk

----------


## SanchezMT

Interessante msm, bom.. Como os ip's estão ao fim, acharam uma solução paliativa, mas.. Temos seu custo, ql provedor não vai ter um jogador ou sistema de segurança?! Mas aí da p abrir uma porta nesses casos?!! 

Enviado via D5833 usando UnderLinux App

----------


## eduardomazolini

Não dá, quando um cliente reclama eu aloco um IP pra ele.

Enviado de meu SM-G800H usando Tapatalk

----------


## andrecarlim

Vamos lá, de quantos IPs validos ainda dispõe para colocar na tua borda ?

----------


## eduardomazolini

Em vez de discutir caso, vamos a solução. Se eu tiver 2 IPs e 10 clientes? Como gerar o log do CGNAT? Hoje uso mikrotik. 

Enviado de meu SM-G800H usando Tapatalk

----------


## eduardomazolini

Desculpa vou mudar a pergunta. Quem hoje usa Nat e se preocupa em gerar log como faz? 

Enviado de meu SM-G800H usando Tapatalk

----------


## andrecarlim

> Em vez de discutir caso, vamos a solução. Se eu tiver 2 IPs e 10 clientes? Como gerar o log do CGNAT? Hoje uso mikrotik. 
> 
> Enviado de meu SM-G800H usando Tapatalk


Aí que está a grande sacada, se você usar CGNAT, não precisa ter log, o CGNAT é estático. Esse é o bacana.

Enviado via XT1563 usando UnderLinux App

----------


## magnorm



----------


## andrecarlim

É mais ou menos isso:

http://eng.registro.br/pipermail/gte...er/045611.html

Enviado via XT1563 usando UnderLinux App

----------


## magnorm

Acredito que as operadoras que ja utilizam cgnat nao armazenam os logs.
ele devem alocar um ip para um range de clientes e cada cliente.
O problema que cada ip pode ter 65000 conexões simultâneas e quantos mais clientes vc coloca a divisao fica complicada. exemplo um site hoje em dia usa no minio umas 10 conexoes. o que estou vendo eles fazerm é diminuir o timeout da sessao tcp para 3 minutos.

----------


## JeffersonSato

Boa Tarde magnorm, então e já utilizo Ipv6 em minha rede, a dificuldade do Ipv6 é quem nem toda empresa ou provedor de conteúdo, já estão utilizando, sem contar inúmeros de clientes que não tem aparelhos que suportam o novo protocolo...
Mas eu li todos os comentários achei muito interessante sobre alguns assuntos, a questão é, prefiro trabalhar com ip valido (Ip Publico), em vez de fazer nat, mas não vou deixar de instalar clientes, e esperar a NicBr decidir se posso ou não posso receber o bloco... já mandei todas as papeladas... está tudo certo, e cada vez que recebo email deles, e uma nova questão estou de mãos atadas...




> Bom dia @*JeffersonSato* como ta seu planejamento de implantação do IPV6? Mesmo vc recebendo um novo bloco em pouco tempo terá o problema novamente. E se for trabalhar com cgnat é obrigatório entregar o IPV6. Cgnat nada mais é que em vez de entregar ip publico vc da um ip privado no range 100.64.0.0. As operadoras copel e net ja estao fazendo isso mas como falei ja entregam IPV6. vc tem de planejar bem isso pq vai ter problemas se seu clientet utiliza aplicações antigas cliente servidor ou se ele faz vpn czom algum local. A conselho a colocar somente nos clientes domésticos 
> 
> Enviado via LG-V490 usando UnderLinux App

----------


## magnorm

@*andrecarlim* quem obriga a utilizar o range 100.64.0.0 e disponibilizar o IPV6 quando está utilizando o CGNat é a Anatel que so está exigindo algo que ja foi discutido na RFC 6598.
Mas caso não queiram seguir a exigencia que o provedor licenciado é obrigado a seguir não vale reclamar quando for denunciado e multado. @*eduardomazolini* Aconselho a ter uma empresa de consultoria que auxilie em todas essas questões pq cada dia que passa a responsabilidade do provedor no âmbito judicial só aumenta e é bom estarem preparados. Dica para seus sócios.

----------


## magnorm

O problema é que somos brasileiros e deixamos tudo para o final. Desde de 2010 o ip está sendo distribuido pela Nic.BR e todos os grandes provedores com excessao da VIVO ja estão disponibilizando para o cliente final. Se procurar no canal da Nic.BR verá uma palestra que ficarem com os engenheiros responsaveis e vai ver que estao empenhados nisso desde a data que mencionei. um dos pontos que todos foram unanimes foi a compra de cpe somente compativeis com dual-stack e como ja se passaram 6 anos foi tranquilo eles ativarem o dualstack.




> Boa Tarde magnorm, então e já utilizo Ipv6 em minha rede, a dificuldade do Ipv6 é quem nem toda empresa ou provedor de conteúdo, já estão utilizando, sem contar inúmeros de clientes que não tem aparelhos que suportam o novo protocolo...
> Mas eu li todos os comentários achei muito interessante sobre alguns assuntos, a questão é, prefiro trabalhar com ip valido (Ip Publico), em vez de fazer nat, mas não vou deixar de instalar clientes, e esperar a NicBr decidir se posso ou não posso receber o bloco... já mandei todas as papeladas... está tudo certo, e cada vez que recebo email deles, e uma nova questão estou de mãos atadas...

----------


## eduardomazolini

Legal até agora todo mundo dizendo vamos fazer o que é certo.
Ninguém aqui disse que não vai implantar ipv6.
A conversa é entorno do IPv4.
As punições e problemas por não ter o log já são conhecidas.
Como gerar o log? Como você gera o log?
A questão do Range para CGNAT ser obrigatório que também ninguém mostrou. Pra mim a questão maior e a punição trocar o range é mudar 6 por meia dúzia. 

Enviado de meu SM-G800H usando Tapatalk

----------


## Lucas Teixeira

> Legal até agora todo mundo dizendo vamos fazer o que é certo.
> Ninguém aqui disse que não vai implantar ipv6.
> A conversa é entorno do IPv4.
> As punições e problemas por não ter o log já são conhecidas.
> Como gerar o log? Como você gera o log?
> A questão do Range para CGNAT ser obrigatório que também ninguém mostrou. Pra mim a questão maior e a punição trocar o range é mudar 6 por meia dúzia. 
> 
> Enviado de meu SM-G800H usando Tapatalk


Pois é .
Por que eu tenho que trocar para 100.64.... e não posso deixar meu 10..... que já esta funcionando a Anos ?

----------


## magnorm

Segue discussao no forum ano passado sobre entrega ip publico para o cliente

https://under-linux.org/showthread.php?t=182107

Segue projeto de lei que especifica a obrigatoriedade do armazenamento dos logs

http://www.abranet.org.br/Noticias/P...l#.V78yvrzxNxk

Mesmo sendo so um projeto de lei é obrigação do Provedor informar toda informação que for solicitada pela justiça.
Caso não atendam a solicitações o whatsapp ta ai como exemplo para o que acontece.
Vai que vc dar um azar de ter um chefe de trafico na sua rede e o cara faz algo que o a policia descobre. vc vai ta numa fria se não colaborar com a policia.

----------


## magnorm

Retirado da discussão no tópico https://under-linux.org/showthread.php?t=181372&page=2

"A RFC6598 diz que os endereços da faixa 100.64.0.0/10 são destinados a serem usados pelos provedores de serviços para numerar as interfaces que conectam os equipamentos CGN (roteadores) ao CPE do cliente.

Essa faixa é privada. As operadoras só não usam o 10.0.0.0/8 logo porque poderia conflitar com redes dos clientes."

----------


## eduardomazolini

@*andrecarlim* vi seu link a sacada é dividir as portas.

- Crie um range de portas para cada usuário. Por exemplo, usuários de 0 a 63, o usuário 0 tem porta origem de 0 a 1023, o usuário 1 de 1024 a 2047 e assim por diante.

Isso funciona em MT?

Enviado de meu SM-G800H usando Tapatalk

----------


## magnorm

Isso da problema em alguma aplicaçoes do cliente. se tiver cliente domestico que so acessa facebook e youtube tranquilo. mas se tiver cliente que usa vpn ou alguma aplicaçao especifica ai fica complicado.




> @*andrecarlim* vi seu link a sacada é dividir as portas.
> 
> - Crie um range de portas para cada usuário. Por exemplo, usuários de 0 a 63, o usuário 0 tem porta origem de 0 a 1023, o usuário 1 de 1024 a 2047 e assim por diante.
> 
> Isso funciona em MT?
> 
> Enviado de meu SM-G800H usando Tapatalk

----------


## andrecarlim

> @*andrecarlim* vi seu link a sacada é dividir as portas.
> 
> - Crie um range de portas para cada usuário. Por exemplo, usuários de 0 a 63, o usuário 0 tem porta origem de 0 a 1023, o usuário 1 de 1024 a 2047 e assim por diante.
> 
> Isso funciona em MT?
> 
> Enviado de meu SM-G800H usando Tapatalk


Sim isso é CGNAT! Funciona sim em mk. 

Enviado via XT1563 usando UnderLinux App

----------


## andrecarlim

> Retirado da discussão no tópico https://under-linux.org/showthread.php?t=181372&page=2
> 
> "A RFC6598 diz que os endereços da faixa 100.64.0.0/10 são destinados a serem usados pelos provedores de serviços para numerar as interfaces que conectam os equipamentos CGN (roteadores) ao CPE do cliente.
> 
> Essa faixa é privada. As operadoras só não usam o 10.0.0.0/8 logo porque poderia conflitar com redes dos clientes."


Assim mano, nada contra, mas não achei nada que obriga a imposição do IPv6 em dual-stack ao CGNAT, eu li a rfc e tudo é citado como boa prática... Então até que me prove com um documento real, seu argumento é fraco, postar o que os outros discutiram não é lei, poste sua posição e a prova dela. Não me leve a mal, meu objetivo não é flamewar aqui, apenas estou defendendo o eu vi, e com argumentos melhores.

Enviado via XT1563 usando UnderLinux App

----------


## andrecarlim

> Segue discussao no forum ano passado sobre entrega ip publico para o cliente
> 
> https://under-linux.org/showthread.php?t=182107
> 
> Segue projeto de lei que especifica a obrigatoriedade do armazenamento dos logs
> 
> http://www.abranet.org.br/Noticias/P...l#.V78yvrzxNxk
> 
> Mesmo sendo so um projeto de lei é obrigação do Provedor informar toda informação que for solicitada pela justiça.
> ...


Cara você leu pelo menos aquela rfc que mandou no outro post, ou leu os links que eu mandei antes, e leu o que eu escrevi?

Acho que não leu, tá enrolando muito...

Enviado via XT1563 usando UnderLinux App

----------


## andrecarlim

> Legal até agora todo mundo dizendo vamos fazer o que é certo.
> Ninguém aqui disse que não vai implantar ipv6.
> A conversa é entorno do IPv4.
> As punições e problemas por não ter o log já são conhecidas.
> Como gerar o log? Como você gera o log?
> A questão do Range para CGNAT ser obrigatório que também ninguém mostrou. Pra mim a questão maior e a punição trocar o range é mudar 6 por meia dúzia. 
> 
> Enviado de meu SM-G800H usando Tapatalk


Não é obrigado a usar aquele range, CGNAT é mais uma técnica do que uma "receita de bolo", pode usar qualquer IP privado... CGNAT nada mais é do que dividir de forma "ordenada" cada IP público, levando em conta a orientação a grupos de portas! Você fica livre para fazer com os teus IPS...

O grupo de pesquisa da rfc apenas recomendou o 100.64/10 pelo fato de ser bem desconhecido e não ter problemas com roteamento mas faixas mais usadas, caso você não faça NAT no CPE do cliente, só isso, está lá na rfc isso...

Enviado via XT1563 usando UnderLinux App

----------


## andrecarlim

> Pois é .
> Por que eu tenho que trocar para 100.64.... e não posso deixar meu 10..... que já esta funcionando a Anos ?


Pode usar tranquilo...

Enviado via XT1563 usando UnderLinux App

----------


## eduardomazolini

@*magnorm* que vai ter problema compartilhar IP todos sabem. A questão toda é como fazer da melhor forma. Você me parece estar oferecendo como solução não compartilhar.
Pessoal eu não sabia dessa questão do NAT de porta, vou testar se alguém testou e deu certo manda um testemunho. 
Quem não usa NAT e não tem experiência prática agradece a Deus e fica de boa.

Enviado de meu SM-G800H usando Tapatalk

----------


## andrecarlim

Mandou bem, +1 pra você!

Enviado via XT1563 usando UnderLinux App

----------


## eduardomazolini

Fui até o site da mikrotik pra ver a questão do range de portas.
Desde 1/2/2016 foi publicado um script de exemplo sobre CGNAT com o range de portas. Entre hoje e amanhã devo implantar e parar de coletar os logs.
Obrigado aos que ajudaram e @*JeffersonSato* que começou o post.

http://wiki.mikrotik.com/wiki/Manual:IP/Firewall/NAT#Carrier-Grade_NAT_.28CGNAT.29_or_NAT444

----------


## andrecarlim

Ainda não esta encerrado não, e não estou convencido da obrigatoriedade do IPv6 em dual-stack com o CGNAT! Insisto, encontrei nenhuma obrigação por parte do provedor em entregar junto ao CGNAT o IPv6, achei documentos que explicam a necessidade e fazem algumas resalvas, mas nada de obrigação, se algum colega tiver um informação quente e verdadeira poste aí, segue os links:

http://www.anatel.gov.br/Portal/exib...a&codigo=36710

http://www.anatel.gov.br/Portal/docu...elease_v05.pdf

http://www2.camara.leg.br/atividade-...-nilo-pasquali

----------


## SanchezMT

Surgiu uma dúvida, ql meio de autenticar e controle de banda com CGNAT ou repassando ip público?

----------


## eduardomazolini

> Surgiu uma dúvida, ql meio de autenticar e controle de banda com CGNAT ou repassando ip público?


O Controle de banda e autenticação faz do modo que faz hoje, não muda.
O que eu vou mudar é o NAT que faço na ponta, em vez de 1 ip pra 32 ips privados dos ranges vai ser 1 pra 63 e cada um com sua faixa de porta.

----------


## reirox

> O Controle de banda e autenticação faz do modo que faz hoje, não muda.
> O que eu vou mudar é o NAT que faço na ponta, em vez de 1 ip pra 32 ips privados dos ranges vai ser 1 pra 63 e cada um com sua faixa de porta.


Da maneira que você faz hoje que é 1 pra 32, pode dizer como você está configurada sua rb para guardar os logs ? e onde está armazenando os logs?

----------


## Lucas Teixeira

Em GCNAT eu teria que ter 1 regra de src-nat para cada cliente?

----------


## eduardomazolini

Lucas sim tem que fazer uma pra cada IP do seu range é pior que cliente. No meu caso tenho 50 ranges /25. Só tenho 2500 clientes.

Enviado de meu SM-G800H usando Tapatalk

----------


## eduardomazolini

@*reirox* eu tenho uma regra de log remote, mas poderia ser arquivos rotativos e de madrugada capturar os arquivos. 

A regra exata de NAT:
add action=src-nat chain=srcnat comment="NAT RANGE Bairro xxxxx" log=yes log-prefix=138.xx.yy.zz out-interface=BridgeBackbone src-address=10.vv.ww.0/27 \
to-addresses=138.xx.yy.zz

Enviado de meu SM-G800H usando Tapatalk

----------


## Lucas Teixeira

Eduardo , No seu caso entao , teria 6400 Regras de CGNAT ?

----------


## eduardomazolini

> Eduardo , No seu caso entao , teria 6400 Regras de CGNAT ?


Mais por que tem TCP e UDP e ainda tem que criar as regras de jump de ranges pra não ter que percorrer todas.

----------


## eduardomazolini

```
 
: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=10 srcStartOct2=150 srcStartOct3=1 srcStartOct4=0 \
                        srcStopOct1=10  srcStopOct2=150  srcStopOct3=1  srcStopOct4=127 \
                        toAddr=138.aa.bb.0 portStart=1500 portsPerAddr=500
```

 
Acabei de rodar esse código na minha CCR.

----------


## eduardomazolini

> Acabei de rodar esse código na minha CCR.


Terminou de executar as 6:54, 14310 regras a minha é CCR1036-12G-4S.
O SCRIPT consumia só um núcleo, no final criava uma regra a cada 5s (log memory).

Agora de manhã eu apliquei uma modificação nas primeiras regras para apontar out-interface, demorou 4s cada execução:


```
:foreach a in=[find chain=srcnat comment~RANGE] do={:set number=$a out-interface=LINK}
```

 


Serio que vocês usam CGNAT desta forma?

----------


## andrecarlim

Honestamente, eu não acho que precise de log quando usado CGNAT, o CGNAT é estático, cada cliente vai ficar com um grupo de portas, não vai mudar. Então se tem 1000 clientes vai ter apenas 1000 regras de SNAT... Só isso!

Enviado via XT1563 usando UnderLinux App

----------


## eduardomazolini

Mas não tô gerando log. Acontece que hoje uso 2000 amanhã 2001 depois mudo um por outro. Eu deixei estático pra qualquer IP que os clientes peguem um IP que existe a regra dele.

Enviado de meu SM-G800H usando Tapatalk

----------


## michelkalinoski

deu certo seu CGNAT @*eduardomazolini* ? Como está o desempenho do CCR?

----------


## eduardomazolini

Deu e tá tranquilo

----------


## eduardomazolini

Eu mudei a regra agora uso menos regras uso netmap com 128 IPs. Eu diria que o método anterior seria um NAT "vertical" cada IP usa uma porta e vai subindo a porta e o IP. Agora eu chamei de "horizontal" pois cada regra é para uma rede diferente então o IP 1 sempre está no IP 1 na sequência de porta seguinte e IP 1 de novo mas de outra rede.

----------


## michelkalinoski

Legal, podes mandar o script aí pra gente testar?

----------


## eduardomazolini

Coloquei no Blog pra ficar mais fácil:
http://blog.mazolini.com.br/2017/03/cgnat.html

----------


## michelkalinoski

Fiz o vertical aqui, ficou bacana, obrigado.

----------


## andrecarlim

> Coloquei no Blog pra ficar mais fácil:
> http://blog.mazolini.com.br/2017/03/cgnat.html


Eduardo acho que tem algo estranho no post. Pode rastrear sim. Pela porta de origem. Outra coisa, qual diferença real do modo vertical para o horizontal?

----------


## eduardomazolini

> Eduardo acho que tem algo estranho no post. Pode rastrear sim. Pela porta de origem. Outra coisa, qual diferença real do modo vertical para o horizontal?


O que eu disse que não da pra rastrear CGNAT em cima de CGNAT. Pois não é armazenado a porta de origem original. Então a porta conhecida do primeiro e perdida no segundo CGNAT.

A diferença é o a sequência de IPs.
No vertical o IP final 1 e final 2 saem com o mesmo IP um range de portas acima.
No horizontal o final 1 privado sai no final 1 público e o final 2 privado sai no final 2 público. E todos da mesma rede usam o mesmo range de portas.

Recomendo vertical só pra quem tem muito poucos IPs.

----------


## eduardomazolini

> Eu acho mais fácil você usar essa analogia com uma tabela, vai ajudar mais a explicar a diferença entre eles.


No blog eu coloquei 2 figuras até fiz isso lá por causa das figuras mesmo.

----------


## eduardomazolini

> Terminou de executar as 6:54, 14310 regras a minha é CCR1036-12G-4S.
> O SCRIPT consumia só um núcleo, no final criava uma regra a cada 5s (log memory).
> 
> Agora de manhã eu apliquei uma modificação nas primeiras regras para apontar out-interface, demorou 4s cada execução:
> 
> 
> ```
> :foreach a in=[find chain=srcnat comment~RANGE] do={:set number=$a out-interface=LINK}
> ```
> ...


Eu usei assim até hoje pessoal. Ninguém me disse o contrario.
Demorou pra eu sacar o que era CGNAT, só no post #37 consegui kkk.
Eu tava relendo esse tópico aprendi muito aqui.
Tava olhando meus backups da RB e estavam com 3269.4K e um total de 16281 regras de NAT.
Hoje acabou a energia a minha RB voltou corrompida, sem nenhuma regra de NAT, até eu perceber isso perdi 2 horas sem internet, voltei o um backup e tudo voltou ao normal.
Resolvi por em pratica o que eu aprendi no forum da ABRINT e particularmente chamei de NAT Horizontal.
Meu backup agora é de 704.4K total de 503 regras de NAT.
Valeu a todos aqui.

----------


## michelkalinoski

@*eduardomazolini*, o script não funciona mais na versão 6.39 do routerOS, já tem solução para isso?

----------


## eduardomazolini

> @*eduardomazolini*, o script não funciona mais na versão 6.39 do routerOS, já tem solução para isso?


Desculpe não pretendo verificar isso, o script estava no site da mikrotik. Como disse o script produz muitas regras, eu to usando nat com netmap agora uso uma planilha pra executar gerar as linhas que preciso.
Não posso confirmar que deixou de funcionar também, não testei.
Mas penso que uma vez que entendeu o conceito não precise necessariamente do script.

----------

