[GTER] Morte às mensagens de NAT tipo 3 - DANOS - CGNAT OpenSource com BPA EIM/EIF e UPnP/PCP
Gondim
gondim at linuxinfo.com.br
Tue Sep 15 10:33:33 -03 2020
Em 14/09/2020 10:48, Rafael Ramos escreveu:
> Alguém poderia me passar a ISO do Danos 2005 os links do source estão
> quebrados a 10 dias por um problema deles com a Amazon.
>
> Eles estão resolvendo mas gostaria de fazer algum teste. Alguém poderia
> disponibilizar ?
Me chama no telegram @Marcelo_Gondim que te mando ela via ssh ou ftp ou
outra forma.
:)
>
>
> Obrigado.
>
>
> Em seg., 14 de set. de 2020 às 09:53, Márcio Elias Hahn do Nascimento <
> marcio at sulonline.net> escreveu:
>
>> Em 2020-09-11 16:15, Gondim 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 [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 [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 [3]].
>>> - Sistema base é GNU/Linux Debian 10 (Buster) [4 [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 [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 [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 [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
>> Interessante, poderia nos dar mais detalhes sobre o hardware usado para
>> passar os 5Gbps e a carga atual dele com essa demanda?
>>
>> --
>> Att
>>
>> Márcio Elias Hahn do Nascimento
>> [8]
>>
>> Links:
>> ------
>> [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
>> [8] http://www.sulinternet.net
>> --
>> gter list https://eng.registro.br/mailman/listinfo/gter
>>
> --
> gter list https://eng.registro.br/mailman/listinfo/gter
--
⢀⣴⠾⠻⢶⣦⠀ 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)
More information about the gter
mailing list