Eu sei que esta é uma questão bastante básica, mas estou lutando para encontrar fontes online para esclarecê-la.
Pelo que entendi, no NAT, o roteador que conecta a rede privada à internet pública possui um endereço IP, para o qual é direcionado todo o tráfego da rede privada; o roteador então usa números de porta para descobrir para qual dispositivo na rede privada é o tráfego. Em contraste, com o DHCP, cada dispositivo na rede recebe seu próprio endereço IP público para o qual o tráfego é direcionado.
Minha confusão decorre de ouvir que ambos podem ser usados simultaneamente, o que parece contradizer a ideia de que com NAT, existe apenas um endereço IP para toda a rede privada, enquanto com DHCP, existe um endereço IP para cada dispositivo na rede. Se eles são mutuamente exclusivos, onde cada um é normalmente usado?
Sinta-se à vontade para separar as declarações acima se achar que isso ajudará :).
Editar: A resposta abaixo explica muito bem - eu estava sendo burro e não percebi que o DHCP pode atribuir qualquer "tipo" de endereço IP, é apenas um protocolo para dispositivos ingressarem em uma rede?
O NAT é uma maneira de traduzir o tráfego de várias maneiras. O mais simples em roteadores domésticos é fazer com que tudo pareça estar atrás do mesmo endereço IP. Isso significa que qualquer conexão de saída da rede local é aceita, seu endereço de origem é definido como o endereço público do roteador, uma nova porta é alocada e o pacote modificado é enviado adiante. Quando há um pacote de volta, a mesma coisa é feita ao contrário e o pacote é enviado para o dispositivo original.
O NAT não precisa estar entre redes privadas e públicas. Também pode ser entre duas redes públicas ou duas privadas. Apenas desvia o tráfego e não sabe nada sobre público ou privado.
O DHCP não tem nenhuma relação com isso. É uma maneira de os dispositivos enviarem mensagens para a rede local solicitando um endereço IP e outras informações relacionadas (como o endereço do gateway, servidores de nomes, etc.) Novamente, um roteador doméstico geralmente possui um servidor para atender os clientes na rede local. Sem um servidor DHCP, você precisaria definir todos os IPs endereçados manualmente para cada dispositivo (ou usar o sistema de IP automático no Windows, por exemplo, mas isso é apenas para redes locais, não para redes). Os dispositivos não podem se comunicar usando IP, a menos que tenham endereços IP e, como praticamente todas as comunicações são por IP, é necessário.
O endereço IP fornecido não é necessariamente público. Talvez isso cause confusão para você. É qualquer endereço definido no pool DHCP ou talvez até mesmo um estático para esse dispositivo específico.
Assim, você pode ter DHCP alocando endereços IP e nunca usar um NAT. Ele apenas fornece IPs do pool e é isso. Você também pode ter NAT sem DHCP. Você pode definir IPs fixos ou usar NAT para desviar o tráfego através de um firewall para outra máquina, etc. Não precisa de nada do DHCP.
Em redes domésticas, ambos são úteis, pois quase sempre há apenas um IP externo e os usuários não desejam definir endereços IP fixos manualmente. Portanto, o DHCP fornece IPs privados locais e o NAT traduz as conexões para que pareçam vir do mesmo endereço.
DHCP é um protocolo para configurar hosts e é executado periodicamente para manter seus endereços e outras configurações atualizadas. NAT é um processo para reescrever pacotes à medida que são encaminhados por um roteador. Para ser mais específico, traduz os endereços e, às vezes, as portas.
O DHCP pega um pool de IPs e os atribui mediante solicitação. Pode ser público ou privado
NAT (normalmente) pega dados IP roteáveis e os envia para um IP não roteável (como o onipresente bloco 192.168.0.0)
Em outras palavras, eles não são a mesma coisa. É como motores e pneus: ambos pertencem a um carro e ajudam a fazê-lo funcionar, mas fazem coisas MUITO diferentes.
O que provavelmente está atrapalhando você é que a maior parte da Internet é executada em NAT (e geralmente IPv4 NAT). Se você estiver usando NAT, a configuração padrão é que você pegue um IP público e, em seguida, DHCP seu bloco sem roteamento para quaisquer dispositivos conectados atrás do roteador. O truque é que você não PRECISA do DHCP NAT . Na verdade, você pode atribuir a todos os seus dispositivos um IP local sem roteamento. Na verdade, a maioria dos roteadores residenciais tem algum bloqueio que eles não fazem DHCP por esse motivo, então você pode atribuir, digamos, um IP fixo a uma impressora de rede.
Seria uma pena que alguém viesse à sua casa e perguntasse "Qual é a senha do seu Wi-Fi?" apenas para que você responda "Espere, deixe-me atribuir um IP ao seu dispositivo. Qual é o seu endereço MAC?" Você não apenas receberá um olhar vazio (e seus pais o rejeitarão por convidá-los para a tecnologia), mas também será uma dor enorme para você. Como tal, ninguém opera sua rede assim porque o DHCP é realmente conveniente . Quero dizer, Adam Jacobs, do Chef (empresa DevOps), contou esta história sobre uma empresa que pensava que não poderia usar DHCP . O que imediatamente levantou as sobrancelhas entre os profissionais de tecnologia .
Todas as conexões TCP/IP têm 4 números. Suponha que seja entre Alice e Bob.
Temos Alice_IP e Alice_Port, e temos Bob_IP e Bob_Port.
Quando houver um NAT entre eles (digamos, traduzindo solicitações do lado de Alice), pegue Alice_IP e Alice_Port e os substitua por NAT_IP e NAT_Port.
Portanto, para Bob e todas as redes entre NAT e Bob, a conexão é entre NAT_IP e NAT_Port e Bob_IP e Bob_Port.
O NAT mantém uma tabela dizendo "Pacotes de Bob_IP e Bob_Port destinados a NAT_IP e NAT_Port são traduzidos para Alice_IP e Alice_Port".
Embora isso seja normalmente usado para que endereços IP privados possam ser usados por Alice e seus amigos, o NAT possui um NAT_IP que é um IP público válido em toda a Internet.
Mas você também pode ter camadas de NAT entre Alice e Bob, algumas voltadas para Alice, outras voltadas para Bob. Pode até ser usado quando os endereços traduzidos são endereços públicos reais da Internet (mas não vejo muito sentido).
O DHCP resolve um problema diferente. Quando você se conecta a uma rede, pode não ter um endereço IP. DHCP é uma maneira de seu computador transmitir "Olá, sou eu [identificação de hardware ethernet], preciso de um endereço IP, alguém pode me ajudar?"
Freqüentemente, um roteador será configurado para responder com "Claro, aqui está um endereço IP", e o roteador lembra (a) seu endereço mac tem esse endereço IP e (b) o endereço IP está nessa sub-rede específica.
Onde ele obtém esses endereços IP não é algo com o qual o DHCP se preocupa. Em um roteador de consumo típico, ele os pega de um pool de endereços IP reservados para uso privado, 10.xx.xx.xx ou 192.168.xx.xx.
O problema é que o resto da internet não consegue rotear para esses endereços. Na verdade, muitos roteadores na Internet são configurados para apenas descartar pacotes com esses endereços.
Seu roteador consumidor se conecta ao roteador do seu ISP (ou equivalente), que por sua vez distribui um endereço IP. Seu roteador normalmente faz NAT, convertendo as conexões DHCP de endereço IP privado de seus computadores domésticos em seu próprio endereço IP fornecido por DHCP de ISP. Possivelmente, seu ISP traduz o endereço IP do seu roteador em um endereço IP real da Internet usando outra camada de NAT; ou talvez o seu ISP possua endereços IP suficientes para fornecer ao seu roteador um endereço IP "real na Internet".
A desvantagem desse NAT é que seu computador não possui uma identidade exclusiva. Portanto, quando alguém deseja se conectar ao seu computador, se enviar um pacote no que parece ser o endereço IP do seu computador, ele o enviará ao roteador.
E o roteador pode não ter uma entrada em sua tabela NAT para essa nova conexão não solicitada, portanto, descarta a conexão como um absurdo.
Existem hacks para contornar isso de eficácia variável.
Nat é usado para traduzir endereço IP público para privado dentro de uma rede, dhcp é usado para fornecer automaticamente um IP aos hosts em uma rede, para que eles possam se comunicar com o roteador e com o mundo externo.
Você está confuso sobre o DHCP. Aqui está o que está acontecendo em termos simples:
Um roteador é um dispositivo que une duas redes, fornecendo comunicação entre elas e suas redes vizinhas. Isso significa que um roteador tem dois endereços IP, um para cada rede em que está inserido. Um roteador "puro" tem apenas dois conectores de rede, um para cada rede. O seu possui mais conectores do lado privado porque possui um switch integrado (ou seja, um divisor de rede inteligente).
NAT é quando o endereço do dispositivo na rede 1 é exposto à rede 2 em um endereço diferente. Quando o roteador recebe dados endereçados a esse endereço na rede 2, ele os encaminha para a rede 1, alterando o endereço do destinatário. As redes domésticas usam um NAT um-para-muitos, onde todos os dispositivos parecem ter um endereço público na Internet, mas as portas desse endereço são mapeadas para vários dispositivos na rede privada.
DHCP é um protocolo para distribuição de endereços IP. Quando um dispositivo se conecta a uma rede, ele grita "ei, há algum servidor DHCP por aí que me forneça um endereço IP?" e o servidor DHCP responde com um IP livre.
O DHCP não é uma alternativa ao NAT. Ele serve a um propósito completamente diferente. Não cruza a fronteira da rede. Na verdade, seu roteador está executando um servidor DHCP para distribuir endereços na rede privada, mas também está obtendo seu próprio IP público do servidor DHCP do seu ISP. Há DHCP rodando em ambas as redes!