[GTER] Morte às mensagens de NAT tipo 3 - DANOS - CGNAT OpenSource com BPA EIM/EIF e UPnP/PCP

Rafael Galdino sup.rafaelgaldino at gmail.com
Sat Sep 12 13:41:37 -03 2020


grande Douglas, caso queira algum ambiente para testes ou ajuda pode me
chamar.

Em sex., 11 de set. de 2020 às 16:16, Gondim <gondim at linuxinfo.com.br>
escreveu:

> Em 23/07/2020 14:56, Douglas Fischer escreveu:
>
> > Eu escrevi essa montoeira de siglas ali em cima...
> > Mas tenho certeza que o que chamou atenção dos coleguinhas foi a parte do
> > "Morte às mensagens de NAT tipo 3".
> >  -> 3 vivas para os tickets de suporte que os usuários de PSN e XBOX
> abrem
> > por causa das mensagens de NAT Tipo 3, não é mesmo?
> >
> > TL;DR:
> > Se você manja bem dos paranauê de linux, nat/iptables e similares, e está
> > disposto a fazer uma tentativa uma ferramenta opensource que promete
> > resolver muitos problemas que o CGNAT trás, eu gostaria de contar com sua
> > ajuda! Arranje um servidor BOM(não bom venha com velharia) e "bora si
> > ajudá" a parar de passar raiva com CGNAT.
> >
> > A importancia do CGNAT para ISPs no dia de Hoje
> > -----------------------------------------------
> > Se você está no mercado atual de ISPs e nunca ouviu falar de CGNAT, PARE
> O
> > QUE ESTÁ FAZENDO E VÁ PROCURAR SABER SOBRE CGNAT!
> > Pois existe um grande risco de você estar fazendo as coisas de um jeito
> > errado, e logo-logo ter problemas legais por conta disso.
> >
> > Se você já ouviu falar CGNAT, deve saber que existem basicamente 2 tipos
> de
> > CGNAT.
> > (vou ser muito muito muito conciso nessa descrição)
> >  - Determinístico(ou Predefined) - Onde ranges de portas UDP e TCP de IPs
> > Públicos/Válidos são préviamente alocadas para as conexões saintes de
> cada
> > um dos IPs de uso reservado do CGNAT.
> >    A principal vantagem desse modelo é (se ele for implementado
> > corretamente) não precisar da guarda de LOGs.
> >  - BPA - Bulk Port Allocation - Onde as portas vão sendo alocadas de
> > Tanto-em-Tanto para os   IPs de uso reservado do CGNAT conforme ele vai
> > precisando, e cada vez quem um grupo de portas é alocado, o mecanismo de
> > CGNAT deve fazer um LOG disso, e esse log deve armazenado adequadamente.
> >    A principal vantagem desse modelo é o excelente nível de relação entre
> > IPs Válidos/Públicos e os IPs reservados do CGNAT.
> >
> > Os dois modelos tem vantagens, os dois modelos tem desvantagens...
> > Sinceramente sou adepto do BPA, pois apesar de exigir recursos extras de
> > Log, tem uma melhor utilização das portas dos IPs públicos, e a alocação
> > dinâmica reduz a dor de cabeça com usuários que usam muitas portas.
> >
> > P.S.: Alerta de problemas jurídicos!
> > Uma coisa que tenho visto muito por aí é uma galerinha que tá fazendo uns
> > mapeamento maroto sem uma lógica reversível e sem fazer log.
> > Quando chegar uma ordem judicial especificando
> > IPDeOrigem/PortaDeOrigem/DataeHora, e você não conseguir fazer a
> > identificação INEQUÍVOCA responsável do contrato daquele assinante...
> > A coisa tente a ficar feia pro seu lado... CUIDADO!
> >
> >
> > Aonde está a maior parte das dores que o CGNAT trás?
> > ----------------------------------------------------
> > CONEXÕES ENTRANTES AUXILIARES formadas para comunicação Peer-to-Peer.
> > Geralmente esses mapeamento de conexões auxiliares entrantes são feitos
> > ALGorítimos que ficam escutando as comunicações nas portas determinadas e
> > "preparam uma regrinha dinâmica" para conexão entrante...
> > Os protocolos mais comuns de ver isso são:
> >  - SIP/H323
> >  - FTP ativo/passivo
> >  - DCCP(que é o que a maioria dos games usa)
> > Porém para esses ALGs funcionarem, além de o equipamento de NAT tem que
> ter
> > todos os ALGs habilitados, e a comunicação nesse protocolo de controle
> não
> > pode ser criptografada.
> >  -> Para exemplificar, SIP-ALG não vai funcionar se for SIP over TLS
> >     (a não ser que ele abra a criptografia do TLS).
> >
> > Para contornar essa complexidade que esse ALGs trazem para fazer
> > funcionar o P2P com regras de firewall e CGNAT foram criados padrões e
> > protocolos como PCP/UPnP, EIM/EIF (antes era o NAT-PMP).
> >
> >
> > A ESPERANÇA
> > -----------
> > Já tem muito tempo que eu venho buscando uma solução OpenSource para
> CGNAT
> > que concorresse com a soluções proprietárias como "A10/F5/Hillstone" para
> > ambientes de CGNAT com suporte a BPA e PCP.
> > Inclusive eu e mais alguns amigos chegamos a propor um vakinha on-line
> para
> > comprar o desenvolvimento disso no formato OpenSource.
> >
> > Bom... Felizmente acredito que tenhamos achado a solução OpenSource que
> eu
> > procurava...
> >
> https://danosproject.atlassian.net/wiki/spaces/DAN/pages/421101573/CGNAT+and+PCP
> >
> > Ainda estou preparando um ambiente de testes dessa ferramenta.
> > Mas estou bastante otimista com o que pude ver dela.
> >
> > Dentre a diversas coisas boas que posso falar sobre esse projeto, é que
> > mesmo sendo opensource ele tem uns empurrõezinhos de grandes ISPS e
> > carriers como a AT&T.
> >
> > O PEDIDO DE AJUDA
> > -----------------
> > No momento, a melhor maneira que eu encontrei de ajudar esse projeto
> > OpenSource é fazer um apelo aos colegas brasileiros que tenham expertise
> > para manter um ambiente de NAT em Linux, que mantenham redes de ISP que
> > usem CGNAT, e que queiram ajudar a validar se essa ferramenta é realmente
> > tão PORRETA, colocando ele para rodar em algum ambiente de teste e
> > compartilhando com o pessoal do projeto o resultado.
> > <
> https://danosproject.atlassian.net/wiki/spaces/DAN/pages/421101573/CGNAT+and+PCP
> >
> >
> >
> > NÃO É UMA TELA DO WINBOX
> > ------------------------
> > Minha sugestão sobre a quem seria indicado embarcar nesses testes.
> >
> > P.S.: Antes que venham me achincalahar de metido... Já adianto:
> > Estou pedindo a colaboração aqui na lista porque, sendo sicero, tenho
> > dúvidas se eu tenho conhecimento técnico suficiente para segurar esse
> rojão.
> > E também porque sei que temos vários colegas aqui na lista que tem um
> nível
> > Master-Pica-Jedi e que conseguiriam lidar com os prossíveis problemas que
> > surgirão com se estivessem descascando amendoim.
> >
> > - Se for querer usar um hardware velharia/lixo, com mais de 10-12 anos...
> > Fora da lista de compatibilidade do projeto.
> >   ou
> > - Se você não tem um bom conhecimento para conseguir fazer
> troubleshooting
> > em ambientes mais elaborados de Fowarding, NAT, e Firewall de Linux.
> >
> > -> NÃO SE META!
> >    Você vai passar raiva...
> >    Depois vai pedir ajuda...
> >    Vai fazer os coleguinhas passarem raiva,
> >    que irão usar palavras pesadas com você...
> >    E depois você vai sair falando baoseiras sobre o projeto!
> >
> > Ao meu entender o projeto é bastante robusto e maduro!
> > Mas nesse momento ainda não é algo que esteja mastigadinho no nível
> > "tutorial do underlinux ou do vivaolinux" que seja só copiar e colar...
> >
> >
> Boa tarde meus amigos e amigas,
>
> Estamos testando esse projeto DANOS [1] como caixa CGNAT e estamos
> gostando bastante. Abaixo algumas informações interessantes sobre ele:
>
> Prós:
>
> - Primeiro que a interface é toda Vyatta e toda a configuração feita por
> ela. Achei bem legal o conceito e quem já mexe com juniper vai sentir
> algumas familiaridades interessantes.
> - O sistema trabalha com commit, commit-confirm e rollback. Olha o Juniper
> aí rsrsrs
> - O show configuration dele pode ser exibido tanto no formato de blocos
> com chaves como no Juniper, como também em comandos set como no Juniper
> (show | display set).
> - Possui implementado o DPDK [2] que nos permite muito mais poder de
> tráfego com menos processamento.
> - O bichinho faz CGNAT BPA (Bulk Port Allocation), o que nos dá uma ótima
> economia de IPv4 público. Mas lembre-se da Seleção Natural de Darwin, nunca
> use somente CGNAT, sem IPv6. Você pode morrer lá na frente quando acabar o
> IPv4 público pra por no CGNAT.
> - Possui FRR 7.3.1 [3].
> - Sistema base é GNU/Linux Debian 10 (Buster) [4], um sistema Linux muito
> estável. Mas não se enganem se acham que vão conseguir fazer uso do
> apt/apt-get pois são desativados para não quebrar o sistema. A atualização
> é feita através de um comando específico
>   pra instalação da .ISO, que for lançada no site.
> - Você pode criar regras/filtros de firewall parecidos com o PROTECT-RE
> que usamos no Juniper e depois aplicá-los somente para proteção da caixa,
> sem interferência com as demais interfaces.
> - Possui diversos comandos para exibir informações do CGNAT como IPs
> públicos usados e portas tcp/udp usadas, IPs usados nos assinantes,
> sumário, etc.
> - Na documentação já se encontra exemplos de configuração de CGNAT
> perfeitamente funcionais.
> - Ferramentas para monitorar o tráfego das interfaces, htop, top e muitas
> outras.
> - Suporte por meio de tickets. Pessoal responde rápido e são muito
> atenciosos.
>
> Contras:
>
> - O sistema por usar DPDK não suporta todas as interfaces de rede do
> mercado mas as melhores já são suportadas. A lista está aqui [5].
> - Gera mais logs que o modelo determinístico mas ao meu ver vale à pena.
> Você pode configurar o DANOS pra enviar os logs para um servidor syslog
> tipo o GrayLog [6], tratar os logs e jogá-los para uma base de dados sua.
> - Consome mais memória que um sistema comum. Aqui estamos testando com
> tráfego de 5Gbps (pico), 12 prefixos de CGNAT, 12 prefixos públicos /27 e o
> sistema já ocupa 5.82G de ram.
> - Pouca documentação. Mas suprida pelas ajudas do suporte deles e também
> com documentações sobre Vyatta/VyOS encontradas pela Internet. Obrigado
> Google por isso. rsrsrsrs
>
> Sinceramente esses contras nem foram tão ruins e acredito que o projeto
> valha o estudo. Também pode ser usado para outros projetos como até mesmo
> montagem de SoftRouters e dessa vez com o poder o DPDK em suas mãos. rsrsrs
>
> Agora uma outra dica minha para te ajudar com os logs. Não habilite todos
> os logs pois isso além de diminuir a performance da caixa, vai te gerar
> logs descomunais com volumes absurdos e vai por mim, você não vai querer
> isso. Habilite apenas esse cara:
>
> set service nat cgnat log event port-block-allocation
>
> Ele já vai te gerar simplificado quem usou qual IPv4 público e que bloco
> de portas com data/hora inicial e final. Para isso deixe a configuração de
> alocação de portas como sequencial e não randômica.
>
> Bem espero ter contribuído de alguma forma e quem sabe mais pra frente
> faço algum artigo no BPF [7] sobre o DANOS.
>
>
> [1]
> https://danosproject.atlassian.net/wiki/spaces/DAN/pages/2556033/About+DANOS
> [2] https://www.dpdk.org/
> [3] https://frrouting.org/
> [4] https://www.debian.org/
> [5]
> https://danosproject.atlassian.net/wiki/spaces/DAN/pages/121143308/Frequently+Asked+Questions#Supported-NICs
> [6] https://www.graylog.org/products/open-source
> [7] https://wiki.brasilpeeringforum.org/w/P%C3%A1gina_principal
>
> --
>   ⢀⣴⠾⠻⢶⣦⠀  Marcelo Gondim
>   ⣾⠁⢠⠒⠀⣿⡁  Sysadmin - https://www.linuxinfo.com.br
>   ⢿⡄⠘⠷⠚⠋   DA04 922E 78B3 44A5 3C8D 23D0 8DB5 571E E151 4E19
>   ⠈⠳⣄⠀⠀⠀⠀  Logic will get you from A to B. Imagination will take you
> everywhere. (Albert Einstein)
>
>
>
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
>


-- 


*Rafael Galdino*


*http://Suporte.network <http://Suporte.network>*

       contato at suporte.network

      Phone:
*+55 (83) 98211-9090*


*Whatsapp: https://api.whatsapp.com/send?phone=5583982119090
<https://api.whatsapp.com/send?phone=5583982119090>*


More information about the gter mailing list