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

Gondim gondim em linuxinfo.com.br
Sexta Setembro 11 22:12:31 -03 2020


Em 24/07/2020 01:25, Carvalho escreveu:

> André Bolzan, a questão do lucro é o que eu estou mirando quando digo
> que "juntos" conseguiremos dar força ao IPv6. Não adianta eu, que sou
> um provedor pequeno, dizer para um cliente que ele deve reclamar com a
> publisher do jogo dele que não está funcionando bem ou nem funcionado
> que isso é falta de suporte ao IPv6. Ele argumentar que irá para o
> concorrente. E eu poderia simplesmente falar que ele pode ir para
> qualquer concorrente que o problema é o jogo. Ais ele vai para o
> Twitter reclamar e irá encontrar tantos outros clientes reclamando a
> vão pressionar quem desenvolve o jogo. Onde você acha que vai bater
> isso? Na "mão" de quem não dá suporte ao IPv6. 
>
> Novamente, pra mim, dispender esforços para contornar os problemas do
> NAT é querer manter nos aparelhos um paciente com morte cerebral
> decretada. É só paliativo e não querer encarar a realidade... 
>
> Em qui, 23 de jul de 2020 21:14, Andre Bolzan
> <andre.bolzan em fixfibra.com.br <mailto:andre.bolzan em fixfibra.com.br>>
> escreveu:
>
>     Tardes !
>
>     Sem tietar, que me chamou atenção foi o campo "*From:" *com
>     valor*"Douglas Fischer*" :)
>
>     Estou atrás desta "opção" desde que vi a live do Marcelo Gondim no
>     canal do Debina Brasil...
>
>     Como provedor não é quintal da minha casa, estava procurando
>     maneira "segura" de testar essa estrutura sem afetar clientes,
>     pois um CGNAT "grande" é complexo de se testar.
>     Pensei em uma "farm" de clientes doker "discando" PPPoE e
>     simulados acesso a listas de sites, downloads, etcs, para dar
>     "carga" de trabalho e "pessoas" com navegação, jogos para poder
>     ter certeza que está indo tudo bem ...
>
>     Estou dentro e sei que juntos somos mais forte rsrs
>
>     Sozinho eu levaria muito mais tempo para conseguir alguma coisa
>     "substancial"...
>
>     Sobre forçar o IPv6 para as grandes provedores de conteúdo
>     "gamers", acho "difícil", porque tudo se resume a lucro e quanto
>     mais lucro melhor... Ninguém vai "desperdiçar" dinheiro com IPv6...
>
>
>     Em qui., 23 de jul. de 2020 às 14:56, Douglas Fischer
>     <fischerdouglas em gmail.com <mailto:fischerdouglas em gmail.com>> 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...
>
>
>         -- 
>         Douglas Fernando Fischer
>         Engº de Controle e Automação
>         --
>         gter list    https://eng.registro.br/mailman/listinfo/gter
>
>
>
>     -- 
>
>     *André Bolzan Saar*
>     **
>     *
>     *Andre.Bolzan em FIXFIBRA.com.br <mailto:Andre.Bolzan em FIXFIBRA.com.br>*
>     ******
>     **
>     ***55 11 98205-7742*
>     _______________________________________________
>     bpf mailing list
>     bpf em listas.brasilpeeringforum.org
>     <mailto:bpf em listas.brasilpeeringforum.org>
>     https://listas.brasilpeeringforum.org/mailman/listinfo/bpf
>
>
> _______________________________________________

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)

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.brasilpeeringforum.org/pipermail/bpf/attachments/20200911/7f63f0e8/attachment-0001.html>


More information about the bpf mailing list