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

Douglas Fischer fischerdouglas at gmail.com
Thu Jul 23 14:56:22 -03 2020


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


More information about the gter mailing list