Como os pacotes de resposta IP chegam ao seu destino dentro de uma LAN privada? [duplicado]

23

Esta é uma pequena questão teórica que tem me confundido por um bom tempo.

Basicamente, se estamos dentro de uma LAN privada, e queremos que pacotes de entrada alcancem, por exemplo, um servidor HTTP localizado em uma das máquinas, nós encaminhamos portas para que os pacotes de entrada cheguem exatamente a esse computador.

Agora, estou bastante confuso sobre como os pacotes de 'resposta' chegam ao seu destino dentro de uma LAN, como quando abrimos uma página da Web ou algo assim. Não é possível encontrar informações úteis sobre esse assunto.

Espero que alguém possa me dar algumas pistas ou me ligar a algumas informações que possam explicar isso. Obrigado.

EDIT: Eu acho que deveria esclarecer. Um exemplo do que estou pedindo seria algo assim:
1. Um computador dentro de uma LAN com um único IP externo tenta carregar uma página web de um servidor web fora desta LAN (Basicamente na Internet)
2. O servidor da web responde e envia a página da web de volta para esse computador.

O que me confunde nesse ponto é como o roteador sabe para qual computador enviar os dados recebidos (dado que o roteador está conectado a uma LAN com vários computadores) sem o encaminhamento de porta anterior.

    
por InsomniaArray 17.03.2012 / 13:25

5 respostas

50

Mesmo que a pergunta tenha sido totalmente abordada. Eu sinto que este processo deve ser melhor descrito passo a passo.

Para este exemplo, eu me sento em uma LAN privada conectada à Internet através de um roteador. Como nossa rede compartilha um único endereço IP público, usamos o NAT.

Então, quando eu solicitar a página superuser.com , isso gerará muitos pacotes IP. Vamos olhar para um único.

Pacote IP em Fonte: 192.168.1.12 (meu IP)
Destino: 64.34.119.12 (superuser.com)

Agora, meu sistema provavelmente está configurado de maneira semelhante ao que está em questão. Eu tenho meu próprio endereço IP ( 192.168.1.12 ), uma máscara de sub-rede ( 255.255.255.0 ) e um gateway padrão ( 192.168.1.1 ). Agora, como meu campo Destination no meu pacote IP aponta para uma rede diferente que a minha, ele é enviado para o meu gateway padrão (em vez de diretamente para o computador).

Mas como o pacote pode chegar ao gateway padrão, se o Destino apontar completamente para outro lugar?

Ethernet

Isso é fácil, porque usamos o endereçamento do protocolo Ethernet para isso. Acabamos de definir nosso endereço IP de destino no pacote IP e o endereço MAC de nosso gateway padrão como o destino no quadro Ethernet .

Agora, isso garantirá que nosso gateway padrão receba o pacote para superuser.com . Yay!

Agora, o gateway tem nosso pacote e pode enviá-lo em seu caminho. Mas, para ter certeza de que obterá a resposta, primeiro é necessário substituir o endereço Fonte do pacote (caso contrário superuser.com tentaria enviar a resposta para algum dispositivo (possivelmente) inexistente com meu endereço IP em sua rede. Agora isso não seria muito bom.)
Assim, meu roteador colocará seu endereço IP público no campo Origem :

Pacote IP em Fonte: 92.69.127.243 (meu IP público)
Destino: 64.34.119.12 (superuser.com)

Agora, esse mesmo jogo continua com todos os roteadores do mundo até que o pacote finalmente chegue em superuser.com e uma resposta seja gerada.

A resposta

Responda ao pacote IP
Fonte: 64.34.119.12 (superuser.com)
Destino: 92.69.127.243 (meu IP público)

Ok, a resposta chegou ao meu roteador, e agora? Como meu roteador agora sabe enviar a resposta para 192.168.1.12 ?

TCP

Bem, isso realmente funciona porque só analisamos as partes IP e Ethernet da comunicação. O que faz este trabalho é a parte TCP.

Você provavelmente sabe que os servidores da web geralmente são executados na porta 80 . O IP não possui noção de portas . Isso vem de TCP . No TCP temos (como no IP) uma fonte e destino porta .

Meu pacote TCP para superuser.com
Fonte: 192.168.1.12 (meu IP)
Porta de origem: 11111 (a porta que meu computador criou)
Destino: 64.34.119.12 (superuser.com)
Porta de destino: 80

Quando seu roteador envia aquele pacote inicial (que é endereçado a superuser.com na porta 80 ), ele colocará uma nova porta de origem lá (como 12345 ).
E esta é a parte importante! Ele vai se lembrar dessa substituição!

O pacote TCP do meu roteador para superuser.com
Fonte: 92.69.127.243 (meu IP público)
Porta de Origem: 12345 (a porta que meu roteador criou)
Destino: 64.34.119.12 (superuser.com)
Porta de destino: 80

Assim, o pacote de resposta recebido pelo roteador realmente se parece com isso:
Responda ao TCP Packet de superuser.com
Fonte: 64.34.119.12 (superuser.com)
Porta de Origem: 80
Destino: 92.69.127.243 (meu IP público)
Porta de destino: 12345 (a porta que meu roteador criou)

Agora, ele obtém esse pacote e vê que é para uma porta que lembrou anteriormente foi atribuído às operações NAT para o endereço IP 192.168.1.12 (meu endereço IP).

Responda ao TCP Packet do meu roteador
Fonte: 64.34.119.12 (superuser.com)
Porta de Origem: 80
Destino: 192.168.1.12 (meu IP)
Porta de destino: 11111 (a porta que meu computador compôs)

    
por 17.03.2012 / 18:19
8

Tradução de endereços de rede . Resumidamente, quando o roteador de gateway da LAN privada substitui o endereço de origem da LAN privada por seu próprio endereço público, ele modifica o pacote de alguma forma, como atribuir um número de porta exclusivo e sem sentido local que é mapeado de volta ao nó da LAN e solicitação de saída. . Ele se lembra desse mapeamento de portas, de modo que quando uma resposta retorna ao IP público / porta exclusiva #, ele (o roteador) sabe como remover o mapa de volta para o de seu nó de origem. Também é assim que você pode executar várias guias, navegadores ou instâncias do navegador, e as respostas a cada solicitação do navegador retornam ao navegador e à guia corretos.

    
por 17.03.2012 / 16:32
0

Quando um pacote inicial chega na interface externa do roteador, ele altera o endereço IP de destino do pacote conforme a configuração de encaminhamento de porta e transmite o pacote modificado na interface interna do roteador (após o ARP usual, se necessário)

O pacote chega ao servidor web e ainda tem um endereço IP de origem externo que será usado como endereço de destino para qualquer resposta. O servidor endereça adequadamente o (s) pacote (s) de resposta de saída da maneira usual, com um endereço IP de destino igual ao endereço IP de origem da solicitação. Como o endereço IP do solicitante é externo, o pacote é endereçado, na camada MAC, à interface interna do roteador.

Note que existem diferentes alvos em cada camada de rede.

    
por 17.03.2012 / 14:49
0

O encaminhamento de porta geralmente é feito em um roteador ou dispositivo adjacente a ele. Quando um dispositivo em uma LAN envia tráfego para outro dispositivo na mesma LAN, o roteador não está envolvido. O tráfego nem sequer toca nele. Suas regras de encaminhamento de porta não terão efeito sobre o tráfego de LAN para LAN.

A Ethernet foi projetada com uma topologia de "barramento" em mente, onde cada computador estava fisicamente conectado ao mesmo meio. Enquanto os switches modernos otimizam o fluxo de tráfego aprendendo o endereço MAC na outra extremidade da porta e replicando o tráfego de acordo, a topologia de "barramento" ainda permanece. Qualquer coisa conectada a um switch padrão pode "atingir" diretamente qualquer outra coisa (supondo que esteja na mesma sub-rede) sem ter que "passar" por um dispositivo intermediário, como um roteador.

Você pode ficar confuso se o dispositivo ao qual você está conectando todos os computadores tiver várias portas Ethernet "LAN" e, em seguida, uma única porta "WAN". Esses tipos de dispositivos são na verdade tanto um roteador quanto um switch no mesmo chassi.

Assim, dentro da sua LAN, se o seu servidor HTTP tiver o endereço 192.168.1.55, para acessá-lo dentro da sua LAN, você precisará digitar " link "na barra de endereços do seu navegador. O roteador nunca vê isso. Para acessá-lo fora de sua LAN, você precisará digitar seu IP externo, ou seja, " link : {a porta que você enviou aqui}" ou o que quer que seja . Isso atinge o seu roteador, a função NAT do roteador funciona e, em seguida, o roteador envia para 192.168.1.55.

    
por 17.03.2012 / 16:19
0

Simplesmente, quando um computador dentro da LAN privada inicia uma conexão de saída, o gateway NAT gera automaticamente um mapeamento de porta para ele. Eles são quase iguais aos mapeamentos de portas que você inseriu manualmente anteriormente: {porta pública, endereço particular, porta privada} e são usados da mesma maneira. A maior diferença com os mapeamentos dinâmicos é que o gateway NAT frequentemente tem que atribuir arbitrariamente as portas públicas para os mapeamentos, quando o número de porta esperado já estiver em uso.

    
por 17.03.2012 / 17:31