<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.WordSection1
{page:WordSection1;}
--></style></head><body lang=PT-BR link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Sobre o CGNAT BPA, eu tenho uma dúvida. Vamos imaginar o seguinte cenário:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Um provedor que possua seus 5000 mil clientes e um /22, e reservou um /23 exclusivamente para CGNAT;<o:p></o:p></p><p class=MsoNormal>(Já que estamos falando em Jogos) O jogo X, para iniciar o Hosting de uma partida no Console Y, usa a porta TCP/3000;<o:p></o:p></p><p class=MsoNormal>Por um Hyping ou acaso muito grande do jogo, 600 “gamers” do provedor decidem iniciar simultaneamente o Hosting de uma partida do jogo X.<o:p></o:p></p><p class=MsoNormal>Teoricamente, vão chegar 600 solicitações de mapeamentos (dst-nat) para a porta TCP/3000, todavia, só existem 512 endereços públicos disponíveis para fazer o mapeamento de porta 1:1 para o endereço de CGNAT. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>A pergunta é: O que acontece com os outros 88 “Gamers”? Imagino eu que ficariam com o “NAT tipo 3”, certo?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='border:none;padding:0cm'><b>De: </b><a href="mailto:fischerdouglas@gmail.com">Douglas Fischer</a><br><b>Enviado:</b>quinta-feira, 23 de julho de 2020 14:56<br><b>Para: </b><a href="mailto:gter@eng.registro.br">Grupo de Trabalho de Engenharia e Operacao de Redes</a>; <a href="mailto:bpf@listas.brasilpeeringforum.org">bpf@listas.brasilpeeringforum.org</a><br><b>Assunto: </b>[BPF] Morte às mensagens de NAT tipo 3 - DANOS - CGNAT OpenSource com BPA EIM/EIF e UPnP/PCP</p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'>Eu escrevi essa montoeira de siglas ali em cima...<br>Mas tenho certeza que o que chamou atenção dos coleguinhas foi a parte do "Morte às mensagens de NAT tipo 3".<br> -> 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?<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'><br>TL;DR:<br>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.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'><br>A importancia do CGNAT para ISPs no dia de Hoje<br>-----------------------------------------------<br>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!<br>Pois existe um grande risco de você estar fazendo as coisas de um jeito errado, e logo-logo ter problemas legais por conta disso.<br><br>Se você já ouviu falar CGNAT, deve saber que existem basicamente 2 tipos de CGNAT.<br>(vou ser muito muito muito conciso nessa descrição)<br> - 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.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'> A principal vantagem desse modelo é (se ele for implementado corretamente) não precisar da guarda de LOGs.<o:p></o:p></span></p></div><div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'> - 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.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'> A principal vantagem desse modelo é o excelente nível de relação entre IPs Válidos/Públicos e os IPs reservados do CGNAT.<br><br>Os dois modelos tem vantagens, os dois modelos tem desvantagens...<br>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.<br><br>P.S.: Alerta de problemas jurídicos!<br>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.<br>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...<br>A coisa tente a ficar feia pro seu lado... CUIDADO!<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'><br><br>Aonde está a maior parte das dores que o CGNAT trás?<br>----------------------------------------------------<br>CONEXÕES ENTRANTES AUXILIARES formadas para comunicação Peer-to-Peer.<br>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...<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'>Os protocolos mais comuns de ver isso são:<br> - SIP/H323<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'> - FTP ativo/passivo<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'> - DCCP(que é o que a maioria dos games usa)<o:p></o:p></span></p><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'>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.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'> -> Para exemplificar, SIP-ALG não vai funcionar se for SIP over TLS<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'> (a não ser que ele abra a criptografia do TLS).<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'>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).<o:p></o:p></span></p></div><div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'><o:p> </o:p></span></p></div></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'><o:p> </o:p></span></p></div></div></div><div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'>A ESPERANÇA<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'>-----------<o:p></o:p></span></p><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'>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.<br>Inclusive eu e mais alguns amigos chegamos a propor um vakinha on-line para comprar o desenvolvimento disso no formato OpenSource.<o:p></o:p></span></p></div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'><br>Bom... Felizmente acredito que tenhamos achado a solução OpenSource que eu procurava...<o:p></o:p></span></p></div><div><div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'><a href="https://danosproject.atlassian.net/wiki/spaces/DAN/pages/421101573/CGNAT+and+PCP" target="_blank">https://danosproject.atlassian.net/wiki/spaces/DAN/pages/421101573/CGNAT+and+PCP</a> <o:p></o:p></span></p></div></div></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'>Ainda estou preparando um ambiente de testes dessa ferramenta.<br>Mas estou bastante otimista com o que pude ver dela.<br><br>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.<br><br>O PEDIDO DE AJUDA<br>-----------------<br>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.<o:p></o:p></span></p></div></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'><br><br>NÃO É UMA TELA DO WINBOX<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'>------------------------<br>Minha sugestão sobre a quem seria indicado embarcar nesses testes.<br><br>P.S.: Antes que venham me achincalahar de metido... Já adianto:<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'>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.<br>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.<br><br>- Se for querer usar um hardware velharia/lixo, com mais de 10-12 anos... Fora da lista de compatibilidade do projeto.<br> ou <o:p></o:p></span></p><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'>- Se você não tem um bom conhecimento para conseguir fazer troubleshooting em ambientes mais elaborados de Fowarding, NAT, e Firewall de Linux.<o:p></o:p></span></p></div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'><br>-> NÃO SE META!<br> Você vai passar raiva...<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'> Depois vai pedir ajuda...<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'> Vai fazer os coleguinhas passarem raiva,<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'> que irão usar palavras pesadas com você...<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Courier New"'> E depois você vai sair falando baoseiras sobre o projeto!<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'><span style='font-size:12.0pt;font-family:"Courier New"'><br>Ao meu entender o projeto é bastante robusto e maduro!<br>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...<o:p></o:p></span></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal>-- </p></div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Douglas Fernando Fischer<br>Engº de Controle e Automação</span></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>