Como uma solicitação TCP é roteada de uma máquina virtual para um recurso externo e de volta?

1

Cenário: o computador A tem um ip local de 192.168.1.100, que está executando uma VM dentro dele. A VM agora faz uma solicitação tcp para um endereço IP externo (74.125.225.98).

Alguém poderia explicar como a solicitação é roteada para o ip remoto e depois para a VM?

Pelo que entendi, a VM envolve esse pedido em um pacote IP com o ip de destino e, em seguida, envolve novamente dentro de um quadro Ethernet com seu próprio endereço MAC exclusivo (provavelmente falso). Em seguida, o roteador substitui o ip e o MAC da VM por seus próprios e define o MAC de destino para o roteador do ISP.

Minha principal confusão é que, quando a resposta tcp é criada e enviada de volta à VM ... já que a VM está sendo executada dentro do computador A, como o roteador executaria uma solicitação ARP para obter o endereço MAC das VMs?

Obrigado pela ajuda:)

EDITAR:

Encontrou o seguinte vídeo que ajudou a explicar o NAT: link

    
por Obto 11.12.2014 / 14:47

2 respostas

3

Se você está procurando a resposta curta, ele (o roteador / firewall) já sabe tudo o que precisa para a "resposta" TCP da tabela de sessão e da tabela de roteamento.

Um exemplo genérico ficaria assim:

Se necessário, o roteador pode executar uma solicitação ARP da mesma forma que faria sempre que precisar fazer uma consulta de endereço MAC. Mas, normalmente, seria para dispositivos locais, o que significa que, com base na sub-rede, pode acabar simplesmente encaminhando a camada de pacotes 3 para outro dispositivo.

Uma resposta mais complexa envolveria saber COMO a VM está na rede (bridge / NAT / etc.), assim como a complexidade da rede, etc., o que será uma resposta de livro e beber do firehose, para ser honesto.

    
por 11.12.2014 / 15:13
2

Existem dois métodos que podem ser usados para lidar com o tráfego ARP quando o NAT não é usado.

  • O tráfego pode ser superado e a VM receberá e responderá à solicitação ARP por conta própria.
  • O tráfego pode ser roteado e o host da VM responde com uma resposta ProxyARP.

Também é comum para nós NAT para uma VM. Nesse caso, o endereço de origem (e possivelmente a porta) é alterado quando os pacotes são roteados pelo host da VM para o mundo externo. As respostas têm o destino alterado para o destino original.

    
por 11.12.2014 / 15:14