<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Levi Gomes</title>
    <description>The latest articles on DEV Community by Levi Gomes (@levi_the_goat).</description>
    <link>https://dev.to/levi_the_goat</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3651109%2F45f11205-cf18-4e82-bfd4-e847c23c15d9.jpg</url>
      <title>DEV Community: Levi Gomes</title>
      <link>https://dev.to/levi_the_goat</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/levi_the_goat"/>
    <language>en</language>
    <item>
      <title>(8/8) Testes Finais, Troubleshooting e Encerramento</title>
      <dc:creator>Levi Gomes</dc:creator>
      <pubDate>Mon, 08 Dec 2025 19:09:22 +0000</pubDate>
      <link>https://dev.to/levi_the_goat/88-testes-finais-troubleshooting-e-encerramento-5627</link>
      <guid>https://dev.to/levi_the_goat/88-testes-finais-troubleshooting-e-encerramento-5627</guid>
      <description>&lt;h2&gt;
  
  
  1. Objetivo
&lt;/h2&gt;

&lt;p&gt;A etapa final serve para verificar se a rede opera como um sistema coerente: endereçamento consistente, caminhos previsíveis, resolução de nomes estável e isolamento funcional entre segmentos. Nesta fase, o importante não é mais validar comandos específicos, mas confirmar o comportamento global da infraestrutura.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Checklist final
&lt;/h2&gt;

&lt;p&gt;Uma rede bem estruturada mostra alguns sinais claros: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hosts recebem IPs corretos&lt;/li&gt;
&lt;li&gt;serviços internos são acessíveis sem gambiarras&lt;/li&gt;
&lt;li&gt;caminhos de roteamento fazem sentido&lt;/li&gt;
&lt;li&gt;a tradução de endereços ocorre apenas onde planejado e as políticas de firewall se mantêm previsíveis entre LAN, DMZ e redes de convidados. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quando tudo está alinhado, o ambiente se torna transparente no dia a dia — nenhuma máquina depende de configurações manuais, e cada teste básico (acesso externo, resolução de nomes, comunicação entre segmentos autorizados) indica que os blocos funcionam de forma integrada.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Encerramento: teoria aplicada e próximos passos
&lt;/h2&gt;

&lt;p&gt;A partir daqui, o ganho real vem da prática: montar serviços internos na DMZ, testar alta disponibilidade com múltiplos roteadores, comparar &lt;strong&gt;&lt;code&gt;iptables&lt;/code&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;code&gt;nftables&lt;/code&gt;&lt;/strong&gt; em cenários equivalentes, explorar IPv6 puro e experimentar segmentações mais rígidas com VLANs e roteamento inter-VLAN. Projetos assim revelam como cada componente reage sob carga, falha ou reconfiguração — algo que não aparece em exercícios isolados.&lt;/p&gt;

&lt;p&gt;Para quem deseja avançar além do laboratório, há caminhos amplos e complementares. Em redes, isso envolve estudar modelos de segurança mais abrangentes, fundamentos de arquitetura distribuída, protocolos de roteamento dinâmico, monitoração contínua e práticas de endurecimento de serviços expostos. Para quem vem do desenvolvimento, o passo seguinte costuma ser integrar infraestrutura e aplicação: revisar padrões de deploy, redes em containers, ambientes multi-zona, políticas de segurança aplicadas ao tráfego da aplicação, integração com CI/CD e observabilidade.&lt;/p&gt;

&lt;p&gt;Conforme esses estudos se acumulam, a rede deixa de ser um conjunto de comandos memorizados e passa a operar como parte de um sistema maior, onde cada decisão estrutural influencia desempenho, segurança e escalabilidade. Esse é o ponto que dá continuidade ao que foi construído na série e abre espaço para arquiteturas mais sólidas, modernas e sustentáveis.&lt;/p&gt;

</description>
      <category>network</category>
    </item>
    <item>
      <title>(7/8) Firewall: Estrutura, Fluxo e Políticas Reais</title>
      <dc:creator>Levi Gomes</dc:creator>
      <pubDate>Mon, 08 Dec 2025 19:08:57 +0000</pubDate>
      <link>https://dev.to/levi_the_goat/78-firewall-estrutura-fluxo-e-politicas-reais-5gm4</link>
      <guid>https://dev.to/levi_the_goat/78-firewall-estrutura-fluxo-e-politicas-reais-5gm4</guid>
      <description>&lt;h2&gt;
  
  
  1. Motivação
&lt;/h2&gt;

&lt;p&gt;Um firewall não serve apenas para bloquear acessos: ele organiza o caminho que cada pacote percorre. Funciona como o “controle de fronteira” da rede, definindo o que pode entrar, o que pode sair, o que só pode atravessar e o que deve ser descartado imediatamente. &lt;br&gt;
Entender essa lógica é essencial para projetar ambientes seguros e previsíveis, especialmente quando você precisa isolar serviços, publicar aplicações ou segmentar usuários.&lt;/p&gt;


&lt;h2&gt;
  
  
  2. Fluxo do kernel (diagrama)
&lt;/h2&gt;

&lt;p&gt;O firewall segue a ordem interna do Netfilter, que define onde e como cada pacote é tratado:&lt;/p&gt;

&lt;p&gt;PREROUTING → INPUT → FORWARD → OUTPUT → POSTROUTING&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PREROUTING&lt;/strong&gt;: antes do kernel decidir o destino; onde ocorre DNAT.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;INPUT&lt;/strong&gt;: pacotes cujo destino final é o próprio host.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FORWARD&lt;/strong&gt;: pacotes que só estão passando pelo host (roteador).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OUTPUT&lt;/strong&gt;: pacotes originados localmente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;POSTROUTING&lt;/strong&gt;: depois do roteamento; onde ocorre SNAT/MASQUERADE.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. Conceitos
&lt;/h2&gt;

&lt;p&gt;Firewalls modernos são stateful — eles acompanham o estado de cada conexão, evitando que você escreva regras inutilmente repetitivas. O &lt;strong&gt;&lt;em&gt;conntrack&lt;/em&gt;&lt;/strong&gt; mantém uma tabela com o estado atual de cada fluxo, e as regras podem filtrar com base nela.&lt;/p&gt;

&lt;p&gt;Os principais estados são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NEW&lt;/strong&gt;: Pacote que inicia uma conexão nova.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ESTABLISHED&lt;/strong&gt;: Pacote pertencente a uma conexão já estabelecida.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RELATED&lt;/strong&gt;: Fluxos auxiliares, como conexões de dados no FTP ou ICMP gerado por outra sessão.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;INVALID&lt;/strong&gt;: Pacotes sem contexto válido (checksum errado, sem associação).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UNTRACKED&lt;/strong&gt;: Pacotes deliberadamente excluídos do mecanismo de estado.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esses poucos estados já permitem construir políticas robustas, reduzindo o risco de bloquear respostas legítimas.&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Regras essenciais
&lt;/h2&gt;

&lt;p&gt;A política recomendada consiste em adotar uma postura restritiva por padrão (&lt;em&gt;default-deny&lt;/em&gt;), permitindo apenas o tráfego declarado como necessário. As regras de exceção devem incluir o tratamento adequado para fluxos estabelecidos e relacionados, garantindo que respostas legítimas circulem sem interrupções.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;iptables &lt;span class="nt"&gt;-P&lt;/span&gt; INPUT DROP
iptables &lt;span class="nt"&gt;-A&lt;/span&gt; INPUT &lt;span class="nt"&gt;-m&lt;/span&gt; conntrack &lt;span class="nt"&gt;--ctstate&lt;/span&gt; ESTABLISHED,RELATED &lt;span class="nt"&gt;-j&lt;/span&gt; ACCEPT
iptables &lt;span class="nt"&gt;-A&lt;/span&gt; INPUT &lt;span class="nt"&gt;-p&lt;/span&gt; tcp &lt;span class="nt"&gt;--dport&lt;/span&gt; 22 &lt;span class="nt"&gt;-j&lt;/span&gt; ACCEPT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Essa base funciona em servidores, roteadores e appliances dedicados: elimina ruído, traz clareza e reduz a superfície de ataque.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Implementando DMZ, LAN e convidados
&lt;/h2&gt;

&lt;p&gt;Antes de escrever regras, é essencial entender o papel de cada rede:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;LAN interna&lt;/strong&gt;&lt;br&gt;
Rede de confiança maior, onde ficam hosts corporativos e serviços não expostos. Normalmente, só ela acessa a DMZ ou Internet com menos restrições.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rede de convidados&lt;/strong&gt;&lt;br&gt;
Segmento isolado para dispositivos não confiáveis — visitantes, IoT, equipamentos pessoais. Essa rede deve alcançar apenas a Internet, nunca a LAN.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;DMZ (zona desmilitarizada)&lt;/strong&gt;&lt;br&gt;
Segmento intermediário criado para hospedar serviços que precisam ser acessados de fora, mas que não devem expor a rede interna caso sejam comprometidos.&lt;br&gt;
A DMZ não é “meio LAN, meio Internet” — é uma rede própria, projetada com regras específicas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Entrada da Internet → acesso estritamente filtrado&lt;/li&gt;
&lt;li&gt;Acesso da LAN → permitido apenas ao serviço necessário (ex.: SSH restrito aos admins)&lt;/li&gt;
&lt;li&gt;Saída da DMZ → limitada; servidores comprometidos não devem alcançar a LAN&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Em termos práticos, se você tem servidores web e de e-mail públicos, eles vão para a DMZ. A LAN nunca confia cegamente neles. A rede de convidados, menos ainda.&lt;/p&gt;

&lt;p&gt;Regras típicas:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Internet → DMZ (somente portas públicas)&lt;/span&gt;
iptables &lt;span class="nt"&gt;-A&lt;/span&gt; FORWARD &lt;span class="nt"&gt;-i&lt;/span&gt; eth_wan &lt;span class="nt"&gt;-o&lt;/span&gt; eth_dmz &lt;span class="nt"&gt;-p&lt;/span&gt; tcp &lt;span class="nt"&gt;--dport&lt;/span&gt; 80 &lt;span class="nt"&gt;-j&lt;/span&gt; ACCEPT
iptables &lt;span class="nt"&gt;-A&lt;/span&gt; FORWARD &lt;span class="nt"&gt;-i&lt;/span&gt; eth_wan &lt;span class="nt"&gt;-o&lt;/span&gt; eth_dmz &lt;span class="nt"&gt;-p&lt;/span&gt; tcp &lt;span class="nt"&gt;--dport&lt;/span&gt; 443 &lt;span class="nt"&gt;-j&lt;/span&gt; ACCEPT

&lt;span class="c"&gt;# DMZ → LAN (geralmente bloqueado)&lt;/span&gt;
iptables &lt;span class="nt"&gt;-A&lt;/span&gt; FORWARD &lt;span class="nt"&gt;-i&lt;/span&gt; eth_dmz &lt;span class="nt"&gt;-o&lt;/span&gt; eth_lan &lt;span class="nt"&gt;-j&lt;/span&gt; DROP

&lt;span class="c"&gt;# LAN → DMZ (administração controlada)&lt;/span&gt;
iptables &lt;span class="nt"&gt;-A&lt;/span&gt; FORWARD &lt;span class="nt"&gt;-i&lt;/span&gt; eth_lan &lt;span class="nt"&gt;-o&lt;/span&gt; eth_dmz &lt;span class="nt"&gt;-p&lt;/span&gt; tcp &lt;span class="nt"&gt;--dport&lt;/span&gt; 22 &lt;span class="nt"&gt;-j&lt;/span&gt; ACCEPT

&lt;span class="c"&gt;# Convidados → Internet (permitido)&lt;/span&gt;
iptables &lt;span class="nt"&gt;-A&lt;/span&gt; FORWARD &lt;span class="nt"&gt;-i&lt;/span&gt; eth_guest &lt;span class="nt"&gt;-o&lt;/span&gt; eth_wan &lt;span class="nt"&gt;-j&lt;/span&gt; ACCEPT

&lt;span class="c"&gt;# Convidados → LAN/DMZ (bloqueado)&lt;/span&gt;
iptables &lt;span class="nt"&gt;-A&lt;/span&gt; FORWARD &lt;span class="nt"&gt;-i&lt;/span&gt; eth_guest &lt;span class="nt"&gt;-o&lt;/span&gt; eth_lan &lt;span class="nt"&gt;-j&lt;/span&gt; DROP
iptables &lt;span class="nt"&gt;-A&lt;/span&gt; FORWARD &lt;span class="nt"&gt;-i&lt;/span&gt; eth_guest &lt;span class="nt"&gt;-o&lt;/span&gt; eth_dmz &lt;span class="nt"&gt;-j&lt;/span&gt; DROP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A ideia é simples: cada rede tem um “perímetro” com intenções diferentes, e o firewall é quem materializa essas intenções.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Logging
&lt;/h2&gt;

&lt;p&gt;Logs ajudam a depurar políticas complexas, mas devem ser usados com cuidado para evitar spam:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;iptables &lt;span class="nt"&gt;-A&lt;/span&gt; INPUT &lt;span class="nt"&gt;-j&lt;/span&gt; LOG &lt;span class="nt"&gt;--log-prefix&lt;/span&gt; &lt;span class="s2"&gt;"FIREWALL_DROP: "&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;É útil adicionar essa regra em pontos estratégicos: logo antes do DROP final, ou na chain que filtra tráfego crítico.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Testes
&lt;/h2&gt;

&lt;p&gt;As ferramentas de diagnóstico dão mais contexto do que as regras em si:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;nmap&lt;/strong&gt; entre redes&lt;br&gt;
Mostra portas expostas, rotas funcionando e filtragem consistente. Se algo aparece “filtered”, talvez o firewall esteja bloqueando silenciosamente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;tcpdump&lt;/strong&gt;&lt;br&gt;
Revela se o pacote chega na interface certa, o que muitas vezes resolve dúvidas antes mesmo de olhar o firewall.&lt;br&gt;
&lt;code&gt;tcpdump -i eth_dmz host 10.10.0.10&lt;/code&gt; ajuda a confirmar se o tráfego está entrando e saindo pelo caminho planejado.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. Erros comuns
&lt;/h2&gt;

&lt;p&gt;Alguns clássicos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Regras na chain errada&lt;/strong&gt;: Tentar filtrar pacotes destinados a outro host na chain INPUT, quando deveria ser FORWARD.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ordem incorreta&lt;/strong&gt;: Uma regra muito permissiva acima do bloqueio anula toda a camada de segurança.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Falta de rota de retorno&lt;/strong&gt;: Pacote entra, mas não consegue voltar — o firewall parece o culpado, mas o problema está no roteamento.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Log excessivo&lt;/strong&gt;: Um LOG mal colocado cria um fluxo infinito de mensagens, tornando o servidor lento e mascarando problemas reais.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Saber identificar esses padrões economiza horas em diagnósticos.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Conclusão
&lt;/h2&gt;

&lt;p&gt;Um firewall eficiente não é uma lista interminável de regras, mas um conjunto de decisões claras sobre como cada rede deve se comportar. Entender o fluxo do kernel, o papel das chains e a lógica stateful são os pilares para montar políticas consistentes — da simples proteção de um servidor pessoal até o isolamento de uma DMZ inteira. Organizando as regras com propósito, você constrói redes mais seguras, previsíveis e fáceis de manter.&lt;/p&gt;

</description>
      <category>network</category>
      <category>security</category>
    </item>
    <item>
      <title>(6/8) DHCP: IPv4, IPv6, Reservas e Boas Práticas</title>
      <dc:creator>Levi Gomes</dc:creator>
      <pubDate>Mon, 08 Dec 2025 19:07:57 +0000</pubDate>
      <link>https://dev.to/levi_the_goat/68-dhcp-ipv4-ipv6-reservas-e-boas-praticas-2gaj</link>
      <guid>https://dev.to/levi_the_goat/68-dhcp-ipv4-ipv6-reservas-e-boas-praticas-2gaj</guid>
      <description>&lt;h2&gt;
  
  
  1. Introdução
&lt;/h2&gt;

&lt;p&gt;Gerenciar endereços manualmente funciona em redes pequenas, mas se torna impraticável quando dezenas de dispositivos entram e saem o tempo todo. O DHCP oferece distribuição automática de endereços IPv4, definição de gateway, DNS e outros parâmetros fundamentais de conectividade. Além de reduzir erros humanos, ele centraliza o controle da rede e permite ajustes coordenados. Em IPv6, ele convive com mecanismos autônomos como SLAAC, criando um ambiente mais flexível — mas também mais propenso a erros se não houver clareza de papéis.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Arquitetura do DHCP
&lt;/h2&gt;

&lt;p&gt;O fluxo básico do DHCPv4 segue o modelo &lt;strong&gt;DORA&lt;/strong&gt;: o cliente envia um &lt;strong&gt;Discover&lt;/strong&gt;, anunciando que precisa de um endereço; o servidor responde com um &lt;strong&gt;Offer&lt;/strong&gt; contendo um IP disponível; o cliente confirma com um &lt;strong&gt;Request&lt;/strong&gt; e, por fim, o servidor conclui com &lt;strong&gt;Ack&lt;/strong&gt;. Esse processo renova-se periodicamente, o que mantém endereços confiáveis mesmo em redes dinâmicas.&lt;/p&gt;

&lt;p&gt;No IPv6, o DHCPv6 não substitui outros mecanismos — ele complementa. O endereço base normalmente chega ao host por SLAAC, um mecanismo no qual o roteador anuncia um prefixo via RA (Router Advertisement) e o cliente monta o próprio endereço a partir dele. Isso torna a rede mais autônoma, mas não resolve tudo: o RA não entrega informações como DNS interno, domínio de busca ou opções específicas da rede. É aí que o DHCPv6 entra, fornecendo esses parâmetros adicionais.&lt;/p&gt;

&lt;p&gt;Essa divisão de responsabilidades funciona bem quando planejada, mas vira um problema em ambientes mistos ou mal configurados. Um roteador pode anunciar que “SLAAC é suficiente”, enquanto o servidor DHCPv6 tenta fornecer DNS ao mesmo tempo. Alguns hosts seguem fielmente o RA e ignoram o DHCPv6; outros fazem o oposto. O resultado é uma rede com comportamentos imprevisíveis: máquinas que conseguem navegar, mas não resolvem nomes internos, ou servidores que falham esporadicamente porque perderam o DNS de referência. Entender como SLAAC e DHCPv6 se sobrepõem — e decidir quem faz o quê — é decisivo para evitar esses cenários difíceis de diagnosticar.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Configuração do servidor (isc-dhcp)
&lt;/h2&gt;

&lt;p&gt;Um exemplo de configuração para a sub-rede &lt;code&gt;10.20.0.0/24&lt;/code&gt;, respeitando a topologia usada nos artigos anteriores:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;subnet 10.20.0.0 netmask 255.255.255.0 {
    range 10.20.0.50 10.20.0.200;
    option routers 10.20.0.1;
    option domain-name "empresa.lan";
    option domain-name-servers 10.20.0.5;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aqui, o servidor distribui endereços de &lt;code&gt;.50&lt;/code&gt; a &lt;code&gt;.200&lt;/code&gt;, deixando a faixa inicial reservada para equipamentos fixos — roteadores, servidores e dispositivos críticos. O DNS interno assumido é &lt;code&gt;10.20.0.5&lt;/code&gt;, e o gateway padrão &lt;code&gt;10.20.0.1&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Reservas - como planejar e por que usar
&lt;/h2&gt;

&lt;p&gt;Reservas mapeiam um endereço IP a um MAC específico, garantindo previsibilidade sem abrir mão da automação. Diferente de um IP estático configurado no próprio host, uma reserva mantém administração centralizada: se você alterar o DNS da rede, o host reservado também herda a mudança sem intervenção manual.&lt;/p&gt;

&lt;p&gt;Um conjunto típico de reservas na sua topologia poderia ser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;host servidor_web {
    hardware ethernet 00:11:22:33:44:55;
    fixed-address 10.20.0.10;
}

host servidor_dns {
    hardware ethernet aa:bb:cc:dd:ee:ff;
    fixed-address 10.20.0.5;
}

host roteador_x {
    hardware ethernet 66:77:88:99:aa:bb;
    fixed-address 10.20.0.2;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esses exemplos seguem a lógica da rede construída nos artigos anteriores: o servidor web em &lt;code&gt;.10&lt;/code&gt;, o DNS interno em &lt;code&gt;.5&lt;/code&gt;, o roteador X em &lt;code&gt;.2&lt;/code&gt;. Manter as reservas organizadas e agrupadas por função evita confusões durante a manutenção e facilita depuração, especialmente quando múltiplos equipamentos usam bridges, VLANs ou múltiplas interfaces.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Testes práticos
&lt;/h2&gt;

&lt;p&gt;O teste mais direto é acionar manualmente o cliente DHCP e observar o ciclo completo de negociação. Ao executar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dhclient &lt;span class="nt"&gt;-v&lt;/span&gt; eth0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O host inicia o processo enviando um DHCP Discover em broadcast, anunciando: &lt;em&gt;“estou aqui, alguém pode me oferecer um endereço?”&lt;/em&gt;. O servidor que estiver ativo na rede responde com um DHCP Offer, propondo um IP e parâmetros de rede. Em seguida, o cliente envia um Request confirmando qual oferta escolheu — mesmo que só exista uma — e o servidor fecha o ciclo com o Ack, oficializando a concessão. &lt;/p&gt;

&lt;p&gt;A flag &lt;code&gt;-v&lt;/code&gt; revela cada etapa desse diálogo, facilitando a identificação de conflitos, atrasos ou ofertas vindas do servidor errado.&lt;/p&gt;

&lt;p&gt;Para enxergar o que acontece no lado do servidor, você pode acompanhar os logs em tempo real:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;journalctl &lt;span class="nt"&gt;-u&lt;/span&gt; isc-dhcp-server &lt;span class="nt"&gt;-f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aqui aparecem mensagens como &lt;code&gt;“DHCPDISCOVER from XX:XX:XX…”&lt;/code&gt; ou &lt;code&gt;“DHCPOFFER on 10.20.0.80 to XX:XX:XX…”&lt;/code&gt;, permitindo verificar se o servidor está respondendo, se está respeitando as reservas ou se há outro serviço indesejado competindo na rede. É um teste simples, mas que costuma resolver boa parte das dúvidas quando o DHCP parece “não pegar”.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Erros comuns e como reconhecê-los
&lt;/h2&gt;

&lt;p&gt;Um dos problemas mais frequentes é ter dois servidores DHCP ativos na mesma rede, muitas vezes um roteador doméstico esquecido ou uma VM mal configurada. O sintoma clássico é clientes recebendo IPs inconsistentes ou gateways errados.&lt;/p&gt;

&lt;p&gt;Outro erro recorrente ocorre quando SLAAC distribui um prefixo IPv6 automático enquanto o administrador espera que DHCPv6 forneça DNS. O host então recebe endereço via SLAAC, mas não recebe DNS via DHCPv6 e perde resolução interna.&lt;/p&gt;

&lt;p&gt;Por fim, ranges mal definidos — como incluir o IP do gateway dentro do pool — geram conflitos que só aparecem após renovações.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Conclusão
&lt;/h2&gt;

&lt;p&gt;DHCP é simples na superfície, mas seu impacto na estabilidade da rede é profundo. Ele centraliza a distribuição de parâmetros fundamentais, suporta reservas para equipamentos essenciais e convive com mecanismos automáticos do IPv6. Um ambiente previsível exige ranges bem planejados, reserva para hosts críticos e vigilância constante sobre quem está realmente anunciando leases na rede. Seguindo boas práticas desde o início, você evita conflitos difíceis de rastrear e ganha um ambiente coerente em todos os níveis — do roteamento ao DNS.&lt;/p&gt;

</description>
      <category>network</category>
    </item>
    <item>
      <title>(5/8) DNS: Resolver, Autoritativo e Zona Interna</title>
      <dc:creator>Levi Gomes</dc:creator>
      <pubDate>Mon, 08 Dec 2025 19:07:14 +0000</pubDate>
      <link>https://dev.to/levi_the_goat/58-dns-resolver-autoritativo-e-zona-interna-4hg3</link>
      <guid>https://dev.to/levi_the_goat/58-dns-resolver-autoritativo-e-zona-interna-4hg3</guid>
      <description>&lt;h2&gt;
  
  
  1. Introdução
&lt;/h2&gt;

&lt;p&gt;Apesar de parecer simples — transformar nomes em endereços IP — o DNS é um dos pilares mais delicados de qualquer rede. Sem ele, serviços continuam online, mas se tornam invisíveis. A diferença entre um ambiente funcional e um cheio de timeouts costuma ser uma configuração de DNS mal feita, seja por falta de servidores internos, falta de separação entre consultas internas/externas ou erros básicos na zona. Entender DNS significa entender como o tráfego realmente se orienta dentro da sua rede.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Hierarquia do DNS
&lt;/h2&gt;

&lt;p&gt;A hierarquia do DNS é distribuída e cooperativa. No topo estão os root servers, que não respondem nomes, mas indicam o caminho. Abaixo deles ficam os TLDs (&lt;strong&gt;.com&lt;/strong&gt;, &lt;strong&gt;.org&lt;/strong&gt;, &lt;strong&gt;.br&lt;/strong&gt;). Cada domínio registrado aponta para seus servidores autoritativos, que têm a palavra final sobre os registros daquela zona.&lt;/p&gt;

&lt;p&gt;Quando uma máquina faz uma consulta, ela não fala diretamente com essa hierarquia — quem assume esse papel é o resolvedor recursivo (geralmente seu roteador, seu provedor ou um servidor interno da empresa). Ele percorre a cadeia: pergunta ao root &lt;em&gt;“quem sabe sobre .com?”&lt;/em&gt;, pergunta ao TLD &lt;em&gt;“quem sabe sobre exemplo.com?”&lt;/em&gt; e finalmente consulta o servidor autoritativo do domínio. Só então devolve a resposta ao cliente.&lt;/p&gt;

&lt;p&gt;Essa separação entre recursivo (que busca) e autoritativo (que decide) é fundamental quando montamos DNS interno, porque a mesma máquina pode desempenhar um papel, o outro, ou ambos — e isso afeta diretamente a forma como a rede resolve nomes.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Entendendo uma consulta real com &lt;code&gt;dig&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Uma consulta real ajuda a visualizar tudo isso. Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; dig dev.to
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.10.6 &amp;lt;&amp;lt;&amp;gt;&amp;gt; dev.to
;; global options: +cmd
;; Got answer:
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 65291
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;dev.to.                IN  A

;; ANSWER SECTION:
dev.to.         245 IN  A   151.101.2.217
dev.to.         245 IN  A   151.101.194.217
dev.to.         245 IN  A   151.101.130.217
dev.to.         245 IN  A   151.101.66.217

;; Query time: 9 msec
;; SERVER: 10.0.0.1#53(10.0.0.1)
;; WHEN: Mon Dec 08 15:34:10 -03 2025
;; MSG SIZE  rcvd: 99
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Elementos essenciais do output:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;QUESTION SECTION&lt;/strong&gt;: O que foi perguntado. Útil para ver se não houve anexação de sufixos automáticos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ANSWER SECTION&lt;/strong&gt;: Resposta final, geralmente contendo um registro A/AAAA ou um CNAME.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AUTHORITY SECTION&lt;/strong&gt;: Indica quais servidores são responsáveis pela zona consultada caso a resposta venha de delegação.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ADDITIONAL SECTION&lt;/strong&gt;: Traz informações extras, como endereços IP dos servidores autoritativos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Query time&lt;/strong&gt;: Mostra se há lentidão na recursão.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SERVER&lt;/strong&gt;: Indica qual resolvedor respondeu; isso revela rapidamente se o cliente está consultando DNS interno ou o DNS do provedor sem querer.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Essa leitura ajuda a detectar &lt;em&gt;loops&lt;/em&gt;, consultas externas indevidas e comportamentos que escapam da topologia planejada.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Montando um DNS interno com Bind9
&lt;/h2&gt;

&lt;p&gt;Ambientes corporativos normalmente mantêm um &lt;strong&gt;DNS interno&lt;/strong&gt; para resolver nomes que não devem — e nem podem — existir no DNS público. Isso inclui servidores internos, serviços administrativos, endereços de infraestrutura e aliases operacionais.&lt;/p&gt;

&lt;p&gt;Para isso, define-se uma zona autoritativa privada, carregada somente pelos servidores internos.&lt;/p&gt;

&lt;p&gt;Definição da zona no &lt;strong&gt;&lt;code&gt;named.conf.local&lt;/code&gt;&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;zone "empresa.lan" {
    type master;
    file "/etc/bind/db.empresa.lan";
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;zone "empresa.lan"&lt;/code&gt; — nome da zona. É o sufixo que todos os registros vão compartilhar.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;type master&lt;/code&gt; — indica que este servidor é a origem autoritativa da zona.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;file&lt;/code&gt; — caminho do arquivo de zona.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Um arquivo de zona simples pode conter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$TTL 86400
@       IN  SOA ns1.empresa.lan. admin.empresa.lan. (
            2025010101 ; serial
            3600       ; refresh
            1800       ; retry
            604800     ; expire
            86400      ; minimum
)

IN  NS      ns1.empresa.lan.

; Registros A (IPv4)
ns1     IN  A       10.20.0.2
host1   IN  A       10.20.0.10
nginx   IN  A       10.20.0.20

; Registros AAAA (IPv6)
webv6   IN  AAAA    fd00:20::50

; Alias / CNAME
api     IN  CNAME   nginx.empresa.lan.

; Serviço fictício para demonstrar registros mistos
db      IN  A       10.20.0.30
db      IN  AAAA    fd00:20::30
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vamos olhar em detalhes cada parte:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;$TTL 86400&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Tempo padrão de cache para todos os registros que não tiverem TTL próprio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;@ IN SOA ns1.empresa.lan. admin.empresa.lan. ( ... )&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
O registro SOA (Start of Authority) define a origem autoritativa da zona.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;ns1.empresa.lan.&lt;/code&gt;&lt;/strong&gt;: servidor responsável pela zona&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;admin.empresa.lan.&lt;/code&gt;&lt;/strong&gt;: contato do administrador (o "@" vira um ponto)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;serial&lt;/code&gt;&lt;/strong&gt;: número de versão da zona, que deve ser incrementado a cada mudança&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;refresh&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;retry&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;expire&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;minimum&lt;/code&gt;&lt;/strong&gt;: parâmetros de controle de cache e atualização&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;IN NS ns1.empresa.lan.&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Lista os servidores que respondem pela zona.&lt;br&gt;
Em ambientes internos, normalmente só existe um servidor, mas pode haver redundância.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ns1     IN  A       10.20.0.2
host1   IN  A       10.20.0.10
nginx   IN  A       10.20.0.20
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Associa um nome a um endereço IPv4.&lt;br&gt;
Base de qualquer resolução dentro de LANs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;webv6   IN  AAAA    fd00:20::50&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Associa um nome a um endereço IPv6.&lt;br&gt;
Usado quando a rede interna já opera com IPv6 — especialmente útil para testes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;api IN CNAME nginx.empresa.lan.&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Define um apelido: api.empresa.lan → nginx.empresa.lan.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;o CNAME redireciona o nome, não o IP;&lt;/li&gt;
&lt;li&gt;um nome que é CNAME não pode ter outros registros A/AAAA/NS/MX;&lt;/li&gt;
&lt;li&gt;útil para abstrair serviços (“api”, “db”, “mail”), permitindo mover o backend sem quebrar clientes.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db      IN  A       10.20.0.30
db      IN  AAAA    fd00:20::30
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;O nome &lt;code&gt;db.empresa.lan&lt;/code&gt; tem resoluções distintas para IPv4 e IPv6.&lt;br&gt;
Clientes dual-stack escolhem de acordo com a pilha habilitada.&lt;/p&gt;


&lt;h2&gt;
  
  
  5. Reverse DNS (PTR) — quando faz sentido
&lt;/h2&gt;

&lt;p&gt;O reverse é o oposto do DNS convencional: dado um IP, retorna o nome. Ele vive em zonas como:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;0.20.10.in-addr.arpa
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em redes internas ele não é obrigatório, mas é extremamente útil para logs, auditoria, integração com sistemas de e-mail e ferramentas de monitoramento. Sem PTR, várias interfaces aparecem só com IP, o que dificulta depuração e análise de tráfego.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Testando corretamente
&lt;/h2&gt;

&lt;p&gt;O teste mais confiável é direcionar a consulta explicitamente ao servidor interno:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig @10.20.0.2 host1.empresa.lan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depois, teste a cadeia completa fazendo consultas externas e internas do mesmo cliente para garantir que:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nomes públicos continuam resolvendo via resolvedor externo;&lt;/li&gt;
&lt;li&gt;nomes internos não vazam para a Internet;&lt;/li&gt;
&lt;li&gt;o cliente está usando o DNS correto (verifique a seção “SERVER” no &lt;code&gt;dig&lt;/code&gt;);&lt;/li&gt;
&lt;li&gt;forwarders do Bind9 estão funcionando (em casos em que ele também atua como resolvedor).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use &lt;strong&gt;&lt;code&gt;tcpdump&lt;/code&gt;&lt;/strong&gt; se precisar observar se pedidos internos estão escapando para fora — problema comum causado por má configuração de search domains ou múltiplos DNS no &lt;code&gt;/etc/resolv.conf&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Problemas frequentes e como identificá-los
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Leak de DNS&lt;/strong&gt;: clientes internos enviam consultas para DNS públicos. Sintomas: lentidão, respostas inconsistentes, falha em resolver nomes internos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Servidor interno sem forwarders&lt;/strong&gt;: consultas para domínios externos demoram ou falham porque o Bind9 só atua como autoritativo, não como recursivo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Zona mal definida&lt;/strong&gt;: SOA incorreto, serial não incrementado, registros ausentes, TTLs exagerados. Tudo isso faz com que mudanças não propaguem ou causem respostas erradas.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esses problemas não são óbvios no início, mas se tornam triviais quando você olha o &lt;code&gt;dig&lt;/code&gt; com atenção.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. Conclusão
&lt;/h2&gt;

&lt;p&gt;DNS só parece simples à distância. Quando você entende o papel dos resolvedores, da hierarquia e das zonas internas, percebe que uma rede estável depende de um DNS coerente e bem isolado. Montar um servidor interno não é complicado, mas exige disciplina: manter zonas organizadas, testar rotas de consulta e garantir que nenhum cliente escape para fora da estrutura planejada. Uma base sólida de DNS deixa todo o restante — roteamento, firewall, serviços — mais previsível e muito menos sujeito a falhas silenciosas.&lt;/p&gt;

</description>
      <category>network</category>
    </item>
    <item>
      <title>(4/8) NAT: Entendendo SNAT, DNAT e MASQUERADE</title>
      <dc:creator>Levi Gomes</dc:creator>
      <pubDate>Mon, 08 Dec 2025 19:06:52 +0000</pubDate>
      <link>https://dev.to/levi_the_goat/48-nat-entendendo-snat-dnat-e-masquerade-561i</link>
      <guid>https://dev.to/levi_the_goat/48-nat-entendendo-snat-dnat-e-masquerade-561i</guid>
      <description>&lt;h2&gt;
  
  
  1. Por que NAT existe
&lt;/h2&gt;

&lt;p&gt;O NAT nasceu como uma resposta direta ao esgotamento do IPv4—mas isso nunca foi tudo. Ele também virou uma ferramenta de isolamento, pois permite que redes internas usem endereços privados, enquanto um único endereço público faz a ponte com a Internet. Isso dá controle sobre o tráfego de saída, reduz exposição e mantém a topologia interna invisível para o mundo externo. Em ambientes domésticos e corporativos, NAT é o que torna possível que dezenas ou centenas de dispositivos compartilhem o mesmo IP público sem colapsar a estrutura de endereçamento.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Tipos de NAT
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SNAT&lt;/strong&gt; (Source NAT) altera o endereço de origem de um pacote. É usado quando sua máquina ou sua rede interna precisa “sair” para outra rede, normalmente a Internet. O roteador substitui o IP privado pelo IP público e registra a tradução para conseguir reverter na volta.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;MASQUERADE&lt;/strong&gt; é um SNAT “dinâmico”, pensado para interfaces com IP variável (como DHCP ou PPPoE). Ele recalcula o IP de saída sempre que necessário, e por isso é a escolha comum em roteadores domésticos ou máquinas com IP público não fixo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DNAT&lt;/strong&gt; (Destination NAT) faz o caminho inverso: altera o endereço de destino de um pacote que chega pela interface externa. É a base do port forwarding. Um pacote destinado ao IP público na porta 80, por exemplo, pode ser redirecionado para um servidor interno em outra rede — algo obrigatório em ambientes que usam endereços privados.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. A tabela de estado (conceito chave)
&lt;/h2&gt;

&lt;p&gt;O NAT só funciona de forma confiável porque o roteador &lt;strong&gt;acompanha cada fluxo individualmente&lt;/strong&gt;. A tradução de endereços não é estática nem contínua — ela é &lt;strong&gt;específica a cada conexão&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;⬆️ Por isso, sempre que um pacote sai da rede interna em direção à Internet, o roteador:&lt;/p&gt;

&lt;p&gt;1) &lt;strong&gt;Detecta um novo fluxo&lt;/strong&gt;.&lt;br&gt;
    Identifica 5-tuple: &lt;em&gt;IP_origem&lt;/em&gt;, &lt;em&gt;porta_origem&lt;/em&gt;, &lt;em&gt;IP_destino&lt;/em&gt;, &lt;em&gt;porta_destino&lt;/em&gt;, &lt;em&gt;protocolo&lt;/em&gt;.&lt;br&gt;
  2) &lt;strong&gt;Aplica a tradução de saída&lt;/strong&gt; (normalmente no &lt;strong&gt;POSTROUTING&lt;/strong&gt;).&lt;br&gt;
    Ex.: &lt;code&gt;10.0.1.20:42831&lt;/code&gt; → &lt;code&gt;200.200.200.10:55000&lt;/code&gt;.&lt;br&gt;
  3) &lt;strong&gt;Registra esse mapeamento na conntrack table&lt;/strong&gt;.&lt;br&gt;
    É isso que será consultado no caminho de volta.&lt;/p&gt;

&lt;p&gt;Esse registro é uma entrada com estado próprio, incluindo tempo de expiração, flags de protocolo (SYN/ACK/FIN no TCP, por exemplo), portas traduzidas, e o estado atual do fluxo.&lt;/p&gt;

&lt;p&gt;⬇️ No caminho de retorno, o processo é o inverso:&lt;/p&gt;

&lt;p&gt;1) O roteador &lt;strong&gt;recebe um pacote&lt;/strong&gt; destinado ao IP público e à porta traduzida.&lt;br&gt;
2) Consulta a tabela e encontra:&lt;br&gt;
    &lt;code&gt;200.200.200.10:55000&lt;/code&gt; → &lt;code&gt;10.0.1.20:42831&lt;/code&gt;&lt;br&gt;
3) &lt;strong&gt;Restaura os valores originais&lt;/strong&gt; e entrega o pacote ao host interno certo.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sem a tabela, esse pacote voltaria “cego”: não há nada no cabeçalho que identifique qual host interno iniciou o fluxo.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A simetria entre como o pacote sai e como volta existe &lt;strong&gt;só porque a tabela mantém estado&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O NAT depende fundamentalmente do rastreamento de estado (stateful connection tracking). Quando o host envia um pacote para fora da sua rede, o roteador NAT executa a tradução no momento de saída, substituindo o endereço e — se necessário — a porta de origem por um par público. Esse é o instante em que o roteador cria uma entrada na tabela de estado, registrando o mapeamento completo: endereço interno, endereço público usado, destino externo e o protocolo envolvido.&lt;/p&gt;
&lt;h4&gt;
  
  
  Tráfego de saída:
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F72et98ihf3wxew2g5g1j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F72et98ihf3wxew2g5g1j.png" alt=" " width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Tráfego de retorno:
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg4pf6d1bu0wnrj2521sm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg4pf6d1bu0wnrj2521sm.png" alt=" " width="800" height="164"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essa tabela funciona como um mapa de retorno: quando um pacote chega da Internet destinado ao IP público, o roteador consulta o registro correspondente e restaura os valores originais, entregando o tráfego ao host correto dentro da rede interna.&lt;/p&gt;

&lt;p&gt;Já a tabela &lt;strong&gt;&lt;code&gt;conntrack&lt;/code&gt;&lt;/strong&gt; representa o coração do NAT. Cada linha corresponde a um fluxo ativo, indicando exatamente como o pacote de ida foi traduzido e como o pacote de volta deve ser restaurado. Mesmo com um único host, fica claro o princípio fundamental: o roteador depende dessa tabela para garantir consistência entre ida e retorno, preservando o fluxo TCP/UDP como se a comunicação fosse direta, apesar da tradução intermediária.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm1n1k98uqfuuhbhzivnl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm1n1k98uqfuuhbhzivnl.png" alt=" " width="800" height="182"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Configurações no Linux
&lt;/h2&gt;

&lt;p&gt;Abaixo estão exemplos práticos para cada tipo de NAT usando &lt;strong&gt;&lt;code&gt;iptables&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  Cenário 1 — Saída padrão para a Internet (MASQUERADE):
&lt;/h3&gt;

&lt;p&gt;Rede interna &lt;code&gt;10.10.0.0/24&lt;/code&gt; sai para a Internet pela interface &lt;code&gt;eth0&lt;/code&gt;, com IP dinâmico.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;iptables &lt;span class="nt"&gt;-t&lt;/span&gt; nat &lt;span class="nt"&gt;-A&lt;/span&gt; POSTROUTING &lt;span class="nt"&gt;-s&lt;/span&gt; 10.10.0.0/24 &lt;span class="nt"&gt;-o&lt;/span&gt; eth0 &lt;span class="nt"&gt;-j&lt;/span&gt; MASQUERADE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Uso típico em gateways domésticos ou laboratoriais, quando o endereço público pode mudar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cenário 2 — Saída com IP público fixo (SNAT):
&lt;/h3&gt;

&lt;p&gt;Servidor de borda tem IP público estático &lt;code&gt;203.0.113.5&lt;/code&gt;, e todos os hosts internos devem sair usando esse endereço.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;iptables &lt;span class="nt"&gt;-t&lt;/span&gt; nat &lt;span class="nt"&gt;-A&lt;/span&gt; POSTROUTING &lt;span class="nt"&gt;-s&lt;/span&gt; 10.10.0.0/24 &lt;span class="nt"&gt;-o&lt;/span&gt; eth0 &lt;span class="nt"&gt;-j&lt;/span&gt; SNAT &lt;span class="nt"&gt;--to-source&lt;/span&gt; 203.0.113.5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Evita o overhead do &lt;em&gt;MASQUERADE&lt;/em&gt; e garante consistência para logs e firewalls externos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cenário 3 — DNAT simples para um servidor web interno:
&lt;/h3&gt;

&lt;p&gt;Qualquer tráfego que chega ao IP público na porta 80 deve ir para &lt;code&gt;10.10.0.10:80&lt;/code&gt; na DMZ.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;iptables &lt;span class="nt"&gt;-t&lt;/span&gt; nat &lt;span class="nt"&gt;-A&lt;/span&gt; PREROUTING &lt;span class="nt"&gt;-i&lt;/span&gt; eth0 &lt;span class="nt"&gt;-p&lt;/span&gt; tcp &lt;span class="nt"&gt;--dport&lt;/span&gt; 80 &lt;span class="nt"&gt;-j&lt;/span&gt; DNAT &lt;span class="nt"&gt;--to-destination&lt;/span&gt; 10.10.0.10:80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Clássico &lt;em&gt;port forwarding&lt;/em&gt;, usado em servidores web expostos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cenário 4 — Redirecionar SSH externo para um bastion host
&lt;/h3&gt;

&lt;p&gt;Acesso SSH público na porta 2222 deve ser encaminhado para o host interno &lt;code&gt;10.10.0.50:22&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;iptables &lt;span class="nt"&gt;-t&lt;/span&gt; nat &lt;span class="nt"&gt;-A&lt;/span&gt; PREROUTING &lt;span class="nt"&gt;-i&lt;/span&gt; eth0 &lt;span class="nt"&gt;-p&lt;/span&gt; tcp &lt;span class="nt"&gt;--dport&lt;/span&gt; 2222 &lt;span class="nt"&gt;-j&lt;/span&gt; DNAT &lt;span class="nt"&gt;--to-destination&lt;/span&gt; 10.10.0.50:22
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Evita expor diretamente máquinas internas e permite controle mais estrito no firewall.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cenário 5 — Dois serviços internos compartilhando o mesmo IP público
&lt;/h3&gt;

&lt;p&gt;Chegadas em 80 → servidor A;&lt;br&gt;
Chegadas em 443 → servidor B.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;iptables &lt;span class="nt"&gt;-t&lt;/span&gt; nat &lt;span class="nt"&gt;-A&lt;/span&gt; PREROUTING &lt;span class="nt"&gt;-i&lt;/span&gt; eth0 &lt;span class="nt"&gt;-p&lt;/span&gt; tcp &lt;span class="nt"&gt;--dport&lt;/span&gt; 80 &lt;span class="nt"&gt;-j&lt;/span&gt; DNAT &lt;span class="nt"&gt;--to-destination&lt;/span&gt; 10.10.0.10:80
iptables &lt;span class="nt"&gt;-t&lt;/span&gt; nat &lt;span class="nt"&gt;-A&lt;/span&gt; PREROUTING &lt;span class="nt"&gt;-i&lt;/span&gt; eth0 &lt;span class="nt"&gt;-p&lt;/span&gt; tcp &lt;span class="nt"&gt;--dport&lt;/span&gt; 443 &lt;span class="nt"&gt;-j&lt;/span&gt; DNAT &lt;span class="nt"&gt;--to-destination&lt;/span&gt; 10.10.0.20:443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mostra como o roteador pode “demultiplexar” serviços distintos por porta.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cenário 6 — SNAT específico para um host ou serviço interno
&lt;/h3&gt;

&lt;p&gt;Um servidor interno (&lt;code&gt;10.10.0.30&lt;/code&gt;) precisa sair para a Internet com um IP secundário público &lt;code&gt;203.0.113.6&lt;/code&gt;, diferente do restante da rede.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;iptables &lt;span class="nt"&gt;-t&lt;/span&gt; nat &lt;span class="nt"&gt;-A&lt;/span&gt; POSTROUTING &lt;span class="nt"&gt;-s&lt;/span&gt; 10.10.0.30 &lt;span class="nt"&gt;-o&lt;/span&gt; eth0 &lt;span class="nt"&gt;-j&lt;/span&gt; SNAT &lt;span class="nt"&gt;--to-source&lt;/span&gt; 203.0.113.6
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Muito usado quando se quer segmentar logs, reputação de IP ou tráfego de e-mail.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Testes
&lt;/h2&gt;

&lt;p&gt;O jeito mais simples é abrir um &lt;strong&gt;&lt;code&gt;curl&lt;/code&gt;&lt;/strong&gt; a partir de uma máquina externa e verificar se o tráfego chega corretamente ao host interno.&lt;/p&gt;

&lt;p&gt;Se quiser observar o processo mais de perto, &lt;strong&gt;&lt;code&gt;tcpdump&lt;/code&gt;&lt;/strong&gt; na interface externa revela a porta traduzida e os fluxos acontecendo em tempo real.&lt;/p&gt;

&lt;p&gt;Esse tipo de inspeção ajuda muito a entender se o problema é de NAT ou de firewall.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Erros comuns
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Duplo NAT sem necessidade&lt;/strong&gt;:&lt;br&gt;
Duas camadas fazendo SNAT criam fluxos difíceis de rastrear e dificultam depuração.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Errado&lt;/strong&gt; ❌: roteador da operadora + seu roteador, ambos fazendo NAT.&lt;br&gt;
&lt;strong&gt;Correto&lt;/strong&gt; ✅: apenas o equipamento de borda fazendo NAT; o segundo só roteia.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;NAT sem rota de retorno&lt;/strong&gt;:&lt;br&gt;
A tradução funciona na ida, mas o retorno nunca encontra o caminho certo.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Errado&lt;/strong&gt; ❌: DNAT para &lt;code&gt;10.0.0.10&lt;/code&gt;, mas o host &lt;code&gt;10.0.0.10&lt;/code&gt; envia resposta para outro gateway.&lt;br&gt;
&lt;strong&gt;Correto&lt;/strong&gt; ✅: ajustar a rota padrão do servidor interno para apontar para o roteador que fez o DNAT.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;MASQUERADE no lugar errado&lt;/strong&gt;:&lt;br&gt;
Ele tem que estar apenas na interface que leva ao destino externo.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Errado&lt;/strong&gt; ❌: aplicar MASQUERADE numa interface interna.&lt;br&gt;
&lt;strong&gt;Correto&lt;/strong&gt; ✅: aplicar na interface de saída (geralmente WAN).&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  7. Conclusão
&lt;/h2&gt;

&lt;p&gt;O NAT continua sendo uma solução prática para manter redes funcionando em um cenário de endereços escassos e topologias diversas. Ele resolve problemas reais de conectividade, mas exige atenção ao caminho do tráfego, à tabela de estado e ao alinhamento entre NAT, rotas e firewall. Quando tudo conversa bem, ele é quase invisível. Quando algo fica desalinhado, os sintomas aparecem imediatamente — pacotes sem retorno, serviços inacessíveis, fluxos presos. Entender a lógica interna do NAT torna esses problemas muito mais previsíveis e fáceis de resolver.&lt;/p&gt;

</description>
      <category>network</category>
    </item>
    <item>
      <title>(3/8) Roteamento: Conceitos, Rotas Estáticas e Fluxo</title>
      <dc:creator>Levi Gomes</dc:creator>
      <pubDate>Mon, 08 Dec 2025 19:04:26 +0000</pubDate>
      <link>https://dev.to/levi_the_goat/38-roteamento-conceitos-rotas-estaticas-e-fluxo-5b14</link>
      <guid>https://dev.to/levi_the_goat/38-roteamento-conceitos-rotas-estaticas-e-fluxo-5b14</guid>
      <description>&lt;h2&gt;
  
  
  1. Introdução
&lt;/h2&gt;

&lt;p&gt;Roteamento é o mecanismo que permite que redes distintas se comuniquem de forma estruturada. Sem ele, o tráfego fica restrito ao próprio segmento local, mesmo que a topologia física conecte todas as máquinas. O papel do roteamento é determinar, para cada destino possível, qual é o próximo salto responsável por encaminhar o pacote. É essa simples ideia — escolher o caminho correto — que sustenta arquiteturas corporativas, nuvens privadas e praticamente toda troca de dados na internet.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Conceitos essenciais
&lt;/h2&gt;

&lt;p&gt;Toda máquina possui uma &lt;strong&gt;tabela de roteamento&lt;/strong&gt;, que nada mais é do que uma lista de caminhos possíveis. É ali que o sistema decide para onde enviar um pacote: se vai direto para a rede local ou se precisa passar por outro roteador. Essa tabela existe tanto nos hosts quanto nos roteadores — a diferença é que nos roteadores ela costuma ser bem mais rica.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;rota padrão&lt;/strong&gt; é a regra para tudo que não se encaixa em nenhuma outra rota. Quando o host não reconhece a rede de destino, ele envia para o gateway padrão, confiando que ele saberá o caminho. Em redes simples, ela é quase invisível; em redes maiores, ela é o fio condutor que impede que o tráfego se perca.&lt;/p&gt;

&lt;p&gt;Já a &lt;strong&gt;rota de rede&lt;/strong&gt; define um caminho específico para um bloco de endereços. Por exemplo, se a rede &lt;code&gt;192.168.0.0/16&lt;/code&gt; está atrás de um certo roteador, você adiciona uma rota apontando diretamente para esse roteador. Isso possibilita roteamento entre sub-redes, permitindo que máquinas em redes distintas se comuniquem sem depender de NAT ou gambiarras. É a base de todas as topologias profissionais, de datacenters a pequenos laboratórios.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Diagrama do fluxo
&lt;/h2&gt;

&lt;p&gt;Quando um host envia um pacote ele executa duas operações simples e determinísticas:&lt;br&gt;
1) verifica se o endereço de destino pertence ao mesmo prefixo configurado em sua interface (comparação IP vs. máscara);&lt;br&gt;
2) se pertencer, envia diretamente ao destino resolvendo o MAC via ARP; se não pertencer, encaminha o pacote ao gateway configurado (default gateway).&lt;/p&gt;

&lt;p&gt;O gateway (ou roteador) que recebe o pacote realiza uma busca na sua tabela de roteamento para decidir o &lt;strong&gt;próximo salto&lt;/strong&gt;. Essa decisão usa o princípio do longest-prefix match: entre todas as rotas cuja rede contém o endereço de destino, a rota com o prefixo mais específico (maior comprimento de máscara) é escolhida. O roteador então encaminha o pacote para o próximo roteador ou, se a rede de destino estiver diretamente conectada a uma de suas interfaces, entrega localmente ao segmento destino. Esse processo se repete salto a salto até a entrega final.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fylxdhkh73w24dfkg5tq9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fylxdhkh73w24dfkg5tq9.png" alt=" " width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O diagrama ilustra a primeira decisão feita pelo host (entrega direta se o destino pertence ao mesmo prefixo; caso contrário, encaminhamento ao gateway). O roteador aplica então um algoritmo de seleção de rota baseado em longest-prefix match na sua tabela de roteamento para escolher o próximo salto até a rede destino.&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Configuração de rotas
&lt;/h2&gt;

&lt;p&gt;Via &lt;strong&gt;iproute2&lt;/strong&gt; (temporário):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip route add 192.168.0.0/16 via 10.20.0.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Permanente no &lt;strong&gt;&lt;code&gt;/etc/network/interfaces&lt;/code&gt;&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;post-up ip route add 192.168.0.0/16 via 10.20.0.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse padrão é valioso porque deixa o comportamento previsível após cada reboot. Você sabe exatamente quais rotas entrarão em cena, sem depender de scripts externos ou configurações dispersas pelo sistema.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Testando o roteamento
&lt;/h2&gt;

&lt;p&gt;O &lt;strong&gt;&lt;code&gt;traceroute&lt;/code&gt;&lt;/strong&gt; revela cada salto entre a origem e o destino. Ele funciona enviando pacotes com TTL (tempo de vida) crescente. Cada roteador reduz 1 desse TTL e, quando ele chega a zero, o roteador responde — expondo sua posição no caminho. É uma forma elegante de ver onde o tráfego realmente está passando.&lt;/p&gt;

&lt;p&gt;Já o &lt;strong&gt;&lt;code&gt;tcpdump&lt;/code&gt;&lt;/strong&gt; permite observar o trânsito real na interface. Ao escutar a interface de saída, você confirma se os pacotes estão seguindo o caminho que deveriam. É a ferramenta que tira qualquer dúvida: se o pacote aparece ali, você sabe que sua rota está ativa; se não aparece, a tabela de roteamento ou o firewall estão interferindo.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Erros comuns
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Gateway fora da rede local ❌:
&lt;/h4&gt;

&lt;p&gt;Host &lt;code&gt;10.0.1.10/24&lt;/code&gt; com gateway &lt;code&gt;10.0.2.1&lt;/code&gt;.&lt;br&gt;
O host nunca conseguirá enviar pacotes ao gateway, porque ele acredita que &lt;code&gt;10.0.2.1&lt;/code&gt; está fora da sua rede local e tentará encontrar outro gateway que não existe.&lt;/p&gt;

&lt;h4&gt;
  
  
  Gateway correto ✅:
&lt;/h4&gt;

&lt;p&gt;Host &lt;code&gt;10.0.1.10/24&lt;/code&gt; com gateway &lt;code&gt;10.0.1.1&lt;/code&gt;.&lt;br&gt;
O gateway está na mesma sub-rede; a ARP resolve seu endereço e o tráfego flui.&lt;/p&gt;




&lt;h4&gt;
  
  
  Rotas sobrepostas ❌:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip route add 192.168.0.0/16 via 10.10.0.1
ip route add 192.168.1.0/24 via 10.20.0.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A segunda rota é mais específica e substitui parte da primeira silenciosamente. O administrador pode achar que todo o &lt;code&gt;/16&lt;/code&gt; vai para &lt;code&gt;10.10.0.1&lt;/code&gt;, quando na verdade só o restante do &lt;code&gt;/16&lt;/code&gt; irá; o &lt;code&gt;/24&lt;/code&gt; será roteado por outro caminho.&lt;/p&gt;

&lt;h4&gt;
  
  
  Rotas planejadas ✅:
&lt;/h4&gt;

&lt;p&gt;Especificar claramente o papel de cada rota: prefixos amplos para caminhos gerais, prefixos estreitos para exceções intencionais.&lt;/p&gt;




&lt;h4&gt;
  
  
  Ausência de rota de retorno ❌:
&lt;/h4&gt;

&lt;p&gt;Rede A sabe enviar para Rede B, mas Rede B envia tudo para o gateway padrão, que não sabe retornar à Rede A.&lt;br&gt;
Resultado: o tráfego “vai”, mas não “volta”.&lt;/p&gt;

&lt;h4&gt;
  
  
  Caminho bidirecional ✅:
&lt;/h4&gt;

&lt;p&gt;Ambas as redes possuem rotas explícitas uma para a outra — seja diretamente, seja via o mesmo roteador intermediário.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Conclusão
&lt;/h2&gt;

&lt;p&gt;Rotas bem definidas tornam a rede previsível: cada salto segue uma lógica clara, e cada decisão pode ser observada com ferramentas simples. Entender esse comportamento remove a sensação de aleatoriedade que muitos iniciantes têm quando veem pacotes atravessando a infraestrutura. À medida que você começa a testar, ajustar e analisar o tráfego, o roteamento passa a se encaixar como uma engrenagem sólida, onde pequenos detalhes — como máscaras, rotas específicas e gateways corretos — fazem toda a diferença.&lt;/p&gt;

&lt;p&gt;Com essa base consistente, o próximo tema ganha clareza: NAT, que depende totalmente de um roteamento correto para funcionar e é justamente onde muitos erros aparecem quando a fundação não está bem estabelecida.&lt;/p&gt;

</description>
      <category>network</category>
    </item>
    <item>
      <title>(2/8) IPv4 e IPv6: Conceitos, Configuração e Testes</title>
      <dc:creator>Levi Gomes</dc:creator>
      <pubDate>Mon, 08 Dec 2025 19:03:57 +0000</pubDate>
      <link>https://dev.to/levi_the_goat/28-ipv4-e-ipv6-conceitos-configuracao-e-testes-46ai</link>
      <guid>https://dev.to/levi_the_goat/28-ipv4-e-ipv6-conceitos-configuracao-e-testes-46ai</guid>
      <description>&lt;h2&gt;
  
  
  1. Introdução
&lt;/h2&gt;

&lt;p&gt;Antes de pensar em roteamento, firewall ou qualquer outro serviço, tudo começa pelo endereçamento. É aqui que uma máquina “descobre” onde ela está dentro da rede e como alcançar o resto do mundo. Se esse ponto ficar nebuloso, o restante desmorona. Por isso, este artigo mergulha no básico sem enrolação: entender como IPv4 e IPv6 organizam o espaço de endereços e como colocar isso para funcionar no Linux de forma direta.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Conceitos fundamentais de IPv4
&lt;/h2&gt;

&lt;p&gt;O IPv4 organiza a rede dividindo o espaço de endereços em blocos. A ideia de máscara de rede surgiu exatamente para isso: separar o que é “parte da rede” e o que é “parte dos hosts”. Por exemplo, uma máscara &lt;code&gt;/24&lt;/code&gt; diz que os primeiros 24 bits identificam a rede, e os 8 restantes ficam para as máquinas. Essa separação é o que permite que o sistema entenda se dois endereços estão na mesma rede local ou se precisam passar por um roteador.&lt;/p&gt;

&lt;p&gt;O padrão CIDR simplifica essa notação e evita a antiga confusão das classes (A, B, C). Com CIDR, você é livre para definir redes do tamanho que quiser, desde um &lt;code&gt;/8&lt;/code&gt; gigantesco até um &lt;code&gt;/30&lt;/code&gt; quase individual. Essa flexibilidade foi crucial para organizar melhor os endereços conforme o IPv4 foi se aproximando da saturação.&lt;/p&gt;

&lt;p&gt;Além disso, cada rede tem um endereço de broadcast, usado para enviar mensagens para todos os hosts ao mesmo tempo — útil para protocolos como ARP. E, claro, sempre existe um gateway padrão, o endereço do roteador que sabe para onde mandar tudo que não pertence à rede local. Sem esse gateway, a máquina vive isolada: conversa com os vizinhos, mas nunca alcança nada além.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Conceitos fundamentais de IPv6
&lt;/h2&gt;

&lt;p&gt;O IPv6 surgiu para resolver a limitação de endereços e propor uma rede muito mais organizada. Nele, cada interface recebe automaticamente um endereço &lt;strong&gt;link-local &lt;code&gt;(fe80::/10)&lt;/code&gt;&lt;/strong&gt;. Esse endereço sempre existe e serve para comunicação dentro do mesmo segmento, especialmente para descoberta de vizinhos — o equivalente ao ARP, só que bem mais limpo.&lt;/p&gt;

&lt;p&gt;A partir daí, entram os endereços globais (válidos na internet) e os endereços &lt;strong&gt;ULA &lt;code&gt;(fd00::/8)&lt;/code&gt;&lt;/strong&gt;, que são equivalentes ao “IPv6 privado”. Ambos são definidos por prefixos, que substituem a velha ideia de máscara. Assim como no IPv4, o prefixo determina o tamanho da rede, mas agora o espaço é tão amplo que você não precisa se preocupar com desperdício.&lt;/p&gt;

&lt;p&gt;E o mais interessante é o mecanismo de autoconfiguração. No IPv6, o roteador pode anunciar o prefixo da rede usando RA (Router Advertisement), e os hosts conseguem montar seus próprios endereços sem precisar de servidor DHCP. Esse processo se chama SLAAC (Stateless Address Autoconfiguration). Quando você quer controle mais rígido — como registrar cada máquina — entra o DHCPv6, que complementa ou substitui o SLAAC. Nada impede usar os dois juntos, mas é importante saber que cada abordagem mexe de um jeito diferente no fluxo da rede.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Fluxo de comunicação (diagrama)
&lt;/h2&gt;

&lt;p&gt;Quando um host precisa enviar um pacote, ele realiza primeiro uma decisão local de alcance: compara o endereço de destino com a sua própria configuração de rede (IP e máscara). Se o destino estiver dentro do mesmo prefixo, o pacote é entregue diretamente ao host de destino por meio de resolução de endereço (ARP). Caso contrário, o pacote é encaminhado ao gateway configurado na interface, que se torna o primeiro salto para alcançar redes externas. Essa decisão é puramente local ao host e antecede qualquer mecanismo de roteamento entre roteadores.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3mhp0gw9p6haa0vpw2r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3mhp0gw9p6haa0vpw2r.png" alt=" " width="800" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A figura ilustra o processo inicial de decisão feito por um host ao enviar um pacote. Primeiro, o host compara o endereço de destino com sua própria configuração de IP e máscara. Se o destino estiver no mesmo prefixo, a entrega é direta e depende apenas da resolução de endereço (ARP). Caso o endereço pertença a outra rede, o host não tenta descobrir o caminho por conta própria: ele encaminha o pacote ao gateway configurado, que se torna o primeiro salto para alcançar redes externas.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Configuração no Linux
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Roteador DMZ/LAN&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;auto lo
iface lo inet loopback

&lt;span class="c"&gt;# WAN (via DHCP)&lt;/span&gt;
auto eth0
iface eth0 inet dhcp
iface eth0 inet6 auto

&lt;span class="c"&gt;# DMZ – 10.10.0.0/24&lt;/span&gt;
auto eth1
iface eth1 inet static
    address 10.10.0.1
    netmask 255.255.255.0

iface eth1 inet6 static
    address fd00:a1b2::1
    netmask 64

&lt;span class="c"&gt;# LAN INTERNA – 192.168.0.0/16&lt;/span&gt;
auto eth2
iface eth2 inet static
    address 192.168.0.1
    netmask 255.255.0.0

iface eth2 inet6 static
    address fd00:192::1
    netmask 64

&lt;span class="c"&gt;# Ativar roteamento&lt;/span&gt;
post-up sysctl &lt;span class="nt"&gt;-w&lt;/span&gt; net.ipv4.ip_forward&lt;span class="o"&gt;=&lt;/span&gt;1
post-up sysctl &lt;span class="nt"&gt;-w&lt;/span&gt; net.ipv6.conf.all.forwarding&lt;span class="o"&gt;=&lt;/span&gt;1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Roteador LAN/Convidados&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;auto lo
iface lo inet loopback

&lt;span class="c"&gt;# LAN INTERNA – 192.168.0.0/16&lt;/span&gt;
auto eth0
iface eth0 inet static
    address 192.168.0.2
    netmask 255.255.0.0
    gateway 192.168.0.1

iface eth0 inet6 static
    address fd00:192::2
    netmask 64
    gateway fd00:192::1

&lt;span class="c"&gt;# CONVIDADOS – 172.30.10.0/24&lt;/span&gt;
auto eth1
iface eth1 inet static
    address 172.30.10.1
    netmask 255.255.255.0

iface eth1 inet6 static
    address fd00:172::1
    netmask 64

&lt;span class="c"&gt;# Ativar roteamento&lt;/span&gt;
post-up sysctl &lt;span class="nt"&gt;-w&lt;/span&gt; net.ipv4.ip_forward&lt;span class="o"&gt;=&lt;/span&gt;1
post-up sysctl &lt;span class="nt"&gt;-w&lt;/span&gt; net.ipv6.conf.all.forwarding&lt;span class="o"&gt;=&lt;/span&gt;1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  6. Testes
&lt;/h2&gt;

&lt;p&gt;O &lt;strong&gt;&lt;code&gt;ping&lt;/code&gt;&lt;/strong&gt; (e o &lt;strong&gt;&lt;code&gt;ping6&lt;/code&gt;&lt;/strong&gt;) são ferramentas básicas para testar conectividade. Eles enviam mensagens ICMP e esperam resposta. Se chegar, ótimo: há comunicação. Se não chegar, você sabe que existe algum bloqueio, rota errada ou interface mal configurada. É o primeiro degrau da análise.&lt;/p&gt;

&lt;p&gt;Os comandos &lt;strong&gt;&lt;code&gt;ip -4 addr&lt;/code&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;code&gt;ip -6 addr&lt;/code&gt;&lt;/strong&gt; mostram exatamente quais endereços suas interfaces receberam. Isso evita surpresas, especialmente no IPv6, onde você pode acabar com múltiplos endereços — estático, SLAAC, temporário — e nem sempre perceber que está usando o errado.&lt;/p&gt;

&lt;p&gt;Já o &lt;strong&gt;&lt;code&gt;traceroute&lt;/code&gt;&lt;/strong&gt; (e seu equivalente IPv6) revela o caminho que os pacotes percorrem até o destino. Cada salto (hop) é um roteador no meio do caminho. Ele ajuda a diagnosticar onde o tráfego está sendo interrompido ou desviado. Em redes internas ou simples, o trajeto é curto; em redes maiores, entender esse mapa faz toda a diferença.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Erros comuns
&lt;/h2&gt;

&lt;p&gt;Um erro frequente é ativar IPv6 estático e SLAAC ao mesmo tempo sem saber o efeito disso. A máquina pode acabar com vários endereços e, pior, usar um inesperado na hora de enviar pacotes. Outro problema clássico é configurar o gateway IPv6 como se fosse IPv4: no IPv6, o gateway precisa ser sempre um endereço link-local, e isso confunde quem está começando.&lt;/p&gt;

&lt;p&gt;Também é comum usar prefixos errados, especialmente quando se está migrando de IPv4. No IPv6, praticamente toda rede interna usa &lt;code&gt;/64&lt;/code&gt;. Colocar &lt;code&gt;/80&lt;/code&gt; ou &lt;code&gt;/112&lt;/code&gt; porque “parece suficiente” quebra recursos básicos da rede, incluindo SLAAC.&lt;br&gt;
E claro: máscaras incorretas no IPv4 levam a rotas mal calculadas, hosts que não conversam entre si e diagnósticos que parecem mágicos — mas não são.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. Conclusão
&lt;/h2&gt;

&lt;p&gt;Com IPv4 e IPv6 bem configurados, o resto da rede deixa de ser um labirinto. Nos próximos capítulos, tudo começa a se encaixar: roteamento, NAT, DNS, DHCP… e cada parte depende diretamente de um endereçamento sólido e bem planejado.&lt;/p&gt;

</description>
      <category>network</category>
    </item>
    <item>
      <title>(1/8) Fundamentos, Objetivos e Arquitetura da Infraestrutura de Rede</title>
      <dc:creator>Levi Gomes</dc:creator>
      <pubDate>Mon, 08 Dec 2025 19:01:47 +0000</pubDate>
      <link>https://dev.to/levi_the_goat/18-fundamentos-objetivos-e-arquitetura-da-infraestrutura-de-rede-1lck</link>
      <guid>https://dev.to/levi_the_goat/18-fundamentos-objetivos-e-arquitetura-da-infraestrutura-de-rede-1lck</guid>
      <description>&lt;h2&gt;
  
  
  1. Contexto e Motivação
&lt;/h2&gt;

&lt;p&gt;A administração de redes em Linux permanece como um dos pilares mais sólidos tanto para estudantes de ciência da computação quanto para empresas que buscam autonomia na própria infraestrutura. Mesmo com a popularização de serviços gerenciados e nuvens públicas, entender como uma rede opera por baixo dos panos continua sendo uma habilidade diferencial: facilita o diagnóstico, reduz custos, fortalece a segurança e forma profissionais mais completos.&lt;/p&gt;

&lt;p&gt;Esta série tem o objetivo de construir, passo a passo, uma infraestrutura de rede funcional usando apenas Linux — não como um tutorial solto de comandos, mas como uma explicação estruturada, onde cada decisão técnica está amarrada a uma justificativa conceitual e a um padrão arquitetural adotado no mundo real.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Objetivos da série
&lt;/h2&gt;

&lt;p&gt;A proposta central é dupla:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Ensinar redes “de verdade”, e não só o mínimo para funcionar.&lt;br&gt;
Cada etapa — endereçamento, roteamento, NAT, DNS, DHCP, firewall — será explorada tanto como tecnologia quanto como parte de uma arquitetura coerente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Relacionar a prática com boas práticas profissionais.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A série será útil para estudantes que querem entender profundamente por que as coisas funcionam, profissionais que precisam estruturar serviços internos de forma robusta e equipes pequenas que buscam implantar redes internas previsíveis e seguras.&lt;/p&gt;

&lt;p&gt;Assim, cada configuração será acompanhada de explicações sobre isolamento de redes, padronização de faixas, segurança mínima aceitável, práticas de DMZ, logging e testes reais.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. O que será construído
&lt;/h2&gt;

&lt;p&gt;Vamos propor e implementar uma arquitetura típica de empresas pequenas ou ambientes de laboratório — suficiente para ilustrar decisões reais, mas simples o bastante para ser montada em qualquer computador usando máquinas virtuais.&lt;/p&gt;

&lt;p&gt;A série completa abordará:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IPv4 e IPv6&lt;/li&gt;
&lt;li&gt;roteamento entre sub-redes&lt;/li&gt;
&lt;li&gt;NAT e exposição controlada de serviços&lt;/li&gt;
&lt;li&gt;DNS interno&lt;/li&gt;
&lt;li&gt;DHCP&lt;/li&gt;
&lt;li&gt;firewall e políticas de isolamento&lt;/li&gt;
&lt;li&gt;testes integrados, troubleshooting e validação da infraestrutura&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cada tema será tratado como um bloco independente, mas que se conecta aos demais para formar a infraestrutura final.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Planejando a infraestrutura fictícia
&lt;/h2&gt;

&lt;p&gt;Antes de configurar qualquer serviço, definimos um cenário representativo de um ambiente corporativo pequeno com três zonas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DMZ&lt;/strong&gt; — onde ficam serviços expostos parcialmente ao público (web, e-mail, APIs).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LAN interna&lt;/strong&gt; — onde trabalham usuários, aplicações internas e serviços administrativos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rede de convidados&lt;/strong&gt; — rede isolada, sem acesso à LAN, usada por dispositivos temporários.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Essa separação segue um padrão amplamente utilizado: “dividir para controlar”.&lt;br&gt;
Ao compartimentar funções de rede, diminuímos superfícies de ataque, facilitamos diagnóstico e deixamos regras de firewall mais legíveis.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Ambiente do laboratório
&lt;/h2&gt;

&lt;p&gt;Toda a infraestrutura será construída sobre Linux, usando ferramentas nativas e amplamente utilizadas em ambientes profissionais.&lt;/p&gt;

&lt;p&gt;Ferramentas usadas ao longo da série:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;iproute2&lt;/code&gt;&lt;/strong&gt; — gerenciamento moderno de interfaces, rotas, ARP e tabelas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;bind9&lt;/code&gt;&lt;/strong&gt; — servidor DNS autoritativo e recursivo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;tcpdump&lt;/code&gt;&lt;/strong&gt; — inspeção de pacotes para testes e debugging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;iptables/nftables&lt;/code&gt;&lt;/strong&gt; — filtragem e NAT.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;isc-dhcp-server&lt;/code&gt;&lt;/strong&gt; — servidor DHCP simples e confiável.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A maioria dos comandos e configs funcionará da mesma forma em Ubuntu Server, Debian e derivados, que são bons alvos para laboratório.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Arquitetura da rede fictícia
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqnof4ngt9nhylicij7mf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqnof4ngt9nhylicij7mf.png" alt=" " width="800" height="820"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essa arquitetura é simples, mas permite explorar múltiplas sub-redes, roteamento interno, NAT só no ponto correto, DNS com zonas internas e firewall contextualizado com a função de cada rede.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Faixas de rede definidas
&lt;/h2&gt;

&lt;p&gt;Para evitar sobreposição e manter estrutura clara, usaremos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DMZ: &lt;strong&gt;&lt;code&gt;10.10.0.0/24&lt;/code&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;LAN interna: &lt;strong&gt;&lt;code&gt;192.168.0.0/16&lt;/code&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Convidados: &lt;strong&gt;&lt;code&gt;172.30.10.0/24&lt;/code&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;IPv6: &lt;strong&gt;&lt;code&gt;fd00:a1b2::/64&lt;/code&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A escolha cobre os três blocos privados do IPv4 (A, B e C) e uma faixa local IPv6 com notação ULAs, que são adequadas para laboratórios e redes internas persistentes.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. Organização dos arquivos de configuração
&lt;/h2&gt;

&lt;p&gt;A ideia aqui é manter tudo limpo e fácil de entender. O arquivo &lt;strong&gt;&lt;code&gt;/etc/network/interfaces&lt;/code&gt;&lt;/strong&gt; vai ser nosso ponto de partida: é onde deixamos definidas as interfaces, seus endereços e as rotas que entram automaticamente quando a máquina sobe. Nada espalhado, nada perdido em scripts obscuros.&lt;/p&gt;

&lt;p&gt;Os serviços que exigem configurações próprias — como DNS e DHCP — ficam separados, cada um no seu canto. Isso ajuda a visualizar melhor o papel de cada peça da rede sem transformar um único arquivo em um bloco confuso.&lt;/p&gt;

&lt;p&gt;E, ao longo dos artigos, sempre que um conceito aparecer, ele virá acompanhado do comando que o materializa. A leitura fica natural: você entende a ideia, vê como ela se aplica e segue adiante sem tropeçar em camadas desnecessárias.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Conclusão e próximos passos
&lt;/h2&gt;

&lt;p&gt;Este artigo definiu o cenário, os objetivos e os padrões que vamos seguir ao longo da série.&lt;br&gt;
A partir do próximo artigo, começamos pela base de qualquer rede: IPv4 e IPv6, incluindo máscaras, CIDR, gateways, endereços link-local, diferenciação entre endereços locais e globais, e testes essenciais.&lt;/p&gt;

</description>
      <category>network</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
