[GTER] Morte às mensagens de NAT tipo 3 - DANOS - CGNAT OpenSource com BPA EIM/EIF e UPnP/PCP
Márcio Elias Hahn do Nascimento
marcio at sulonline.net
Tue Sep 22 10:15:07 -03 2020
Apesar da citação do Port Bulk Allocation, no decorrer do texto se
percebe que é um CGNAT deterministico.
O mesmo que usamos em CCR's.
Botei no meu roadmap o DANOS com Bulk Allocation, tenho um R610 Dual
Xeon, 32G RAM e uma Intel X520-DA2 parado pra fazer um teste e ir
escalando....
Em 2020-09-21 16:03, Douglas Fischer escreveu:
> Opa Willian, tudo bem?
>
> Você mencionou "CGNAT nativo no Debian10 com portbulk alocation".
>
> Confesso que não entendi...
> Quem faz Bulk Port Allocation nesse seu deploy? Como é o controle de log de
> alocação de portas?
>
> Em seg, 21 de set de 2020 15:31, Willian Pires de Souza <
> willian_pires at hotmail.com> escreveu:
>
> Bom dia,
>
> Estamos usando CGNat nativo no Debian10 com portbulk alocation, iptables
> com 128 regras na tabela principal com os ALGS ativos.
>
> Atualmente passando ~18/22Gb/s na caixa, sem nenhuma "tramoia".
>
> Basicamente foi o Ajuste das placas de rede.
>
> Fazer 2 níveis de regras de nat e ajuste do tcp-mss nada mais.
>
> Script python gera combinação de 2000 portas por cliente. vamos dizer /25
> "valido"
> então ele vai da porta 2000 até a porta 64000 e coloca essa combinação em
> um lista,
>
> Depois roda um looping com todos os ips do bloco /20 que deseja para fazer
> o cgnat e vai "sorteando"
> cada um dos ip/porta valido até esgotar todos os ips da lista.
>
> Feito isso 1 regra na tabela de postrouting do bloco invalido /28 para a
> tabela com os 16 nats e pronto.
>
> O resto foi basicamente ler o manual da placa de rede e ir ajustando os
> parâmetros para melhor performance com o
> processador, algo que aprendemos foi isolar processador por placa,
> desabilitar C state na bios e forçar a maquina para
> maximum performance ou equivalente
>
> Como o nat'é estatico mantemos o log de acesso de cada usuário e se
> precisar rastrear é so combindar ip/porta com ip cgnat de origem.
>
> E boa.
>
> Att
> ________________________________
> De: gter <gter-bounces at eng.registro.br> em nome de Rafael Ramos <
> rafael.ramos at newtelecom.net.br>
> Enviado: segunda-feira, 14 de setembro de 2020 10:48
> Para: Grupo de Trabalho de Engenharia e Operacao de Redes <
> gter at eng.registro.br>
> Assunto: Re: [GTER] Morte às mensagens de NAT tipo 3 - DANOS - CGNAT
> OpenSource com BPA EIM/EIF e UPnP/PCP
>
> 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 ?
>
> 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://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdanosproject.atlassian.net%2Fwiki%2Fspaces%2FDAN%2Fpages%2F421101573%2FCGNAT%2Band%2BPCP&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343148476&sdata=qydAzIFk0MWgpLgyKMo3zlWfwk7rjKF8NE686hKtFXI%3D&reserved=0
> 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://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdanosproject.atlassian.net%2Fwiki%2Fspaces%2FDAN%2Fpages%2F421101573%2FCGNAT%2Band%2BPCP&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343148476&sdata=qydAzIFk0MWgpLgyKMo3zlWfwk7rjKF8NE686hKtFXI%3D&reserved=0
> 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://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdanosproject.atlassian.net%2Fwiki%2Fspaces%2FDAN%2Fpages%2F2556033%2FAbout%2BDANOS&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343148476&sdata=0n1gI3QKlNmAeZbt97O2N9B5bq7NICxtvLnBgasd6yQ%3D&reserved=0
>> [2]
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.dpdk.org%2F&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343148476&sdata=G14X%2FEBeS5ZWsdErMgU7cOuW6wBuCE0afPO6C%2B8DPX4%3D&reserved=0
>> [3]
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Ffrrouting.org%2F&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=xxyPVb%2BdLPgC9lCcvdHyUlrEJUmQg39pOrRcQ0nJczY%3D&reserved=0
>> [4]
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.debian.org%2F&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=DBwO8vS1d%2BCPOwezvMVY6WcOqlHteMZ%2BK4d2wb7%2F3qk%3D&reserved=0
>> [5]
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdanosproject.atlassian.net%2Fwiki%2Fspaces%2FDAN%2Fpages%2F121143308%2FFrequently%2BAsked%2BQuestions%23Supported-NICs&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=MRGNvjTyPolGHY6%2FosCCJp3Vs8anGnXV2YM0xQlgd2M%3D&reserved=0
>> [6]
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.graylog.org%2Fproducts%2Fopen-source&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=h6dzxarQHjKUUhze8iX8JPoVVrWfgHhTMXWIiVtnxRI%3D&reserved=0
>> [7]
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.brasilpeeringforum.org%2Fw%2FP%25C3%25A1gina_principal&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=Lj8OZ0ry2IVwzuOSsW4BWQ3jyF60Xg1BRDXxtoI%2BxfA%3D&reserved=0
> 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://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdanosproject.atlassian.net%2Fwiki%2Fspaces%2FDAN%2Fpages%2F2556033%2FAbout%2BDANOS&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=8m3K1RJdxImBfd1FX6R6K7I%2BFHrZ9i1Tt%2BfQktasAus%3D&reserved=0
> [2]
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.dpdk.org%2F&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=C2vDPKIsfg2kuU%2FAQmXDFp0DqrtRXOjOc61sxGsHYJY%3D&reserved=0
> [3]
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Ffrrouting.org%2F&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=xxyPVb%2BdLPgC9lCcvdHyUlrEJUmQg39pOrRcQ0nJczY%3D&reserved=0
> [4]
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.debian.org%2F&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=DBwO8vS1d%2BCPOwezvMVY6WcOqlHteMZ%2BK4d2wb7%2F3qk%3D&reserved=0
> [5]
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdanosproject.atlassian.net%2Fwiki%2Fspaces%2FDAN%2Fpages%2F121143308%2FFrequently%2BAsked%2BQuestions%23Supported-NICs&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=MRGNvjTyPolGHY6%2FosCCJp3Vs8anGnXV2YM0xQlgd2M%3D&reserved=0
> [6]
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.graylog.org%2Fproducts%2Fopen-source&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=h6dzxarQHjKUUhze8iX8JPoVVrWfgHhTMXWIiVtnxRI%3D&reserved=0
> [7]
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.brasilpeeringforum.org%2Fw%2FP%25C3%25A1gina_principal&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=Lj8OZ0ry2IVwzuOSsW4BWQ3jyF60Xg1BRDXxtoI%2BxfA%3D&reserved=0
> [8]
https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.sulinternet.net%2F&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=spttqIbk%2F6QMIgTl592C%2BG97CUQWF3aYPCjIzbg%2B%2FN8%3D&reserved=0
> --
> gter list
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Feng.registro.br%2Fmailman%2Flistinfo%2Fgter&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=4YxSo%2BiappYdmGA%2FhvcFIdCLjWlpajdThcjmPhIli2c%3D&reserved=0--
gter list
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Feng.registro.br%2Fmailman%2Flistinfo%2Fgter&data=02%7C01%7C%7Cb1cc739d380545d7cb6308d858b4e833%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637356881343158472&sdata=4YxSo%2BiappYdmGA%2FhvcFIdCLjWlpajdThcjmPhIli2c%3D&reserved=0
--
gter list https://eng.registro.br/mailman/listinfo/gter
--
gter list https://eng.registro.br/mailman/listinfo/gter
--
Att
Márcio Elias Hahn do Nascimento
[1]
Links:
------
[1] http://www.sulinternet.net
More information about the gter
mailing list