Сценарий: Компьютер A имеет локальный IP 192.168.1.100, который выполняет VM в нем. VM теперь выполняет tcp запрос к внешнему IP-адресу (74.125.225.98).
Кто-то мог объяснить, как запрос направляется и к удаленному IP и затем обратно к VM?
От моего понимания VM переносит этот запрос в пакет IP с целевым IP, и затем перенесенный снова в кадре Ethernet с его собственным уникальным (вероятно, фальшивка) MAC-адрес. Маршрутизатор затем заменяет IP VM и MAC с его собственным, и устанавливает целевой MAC на маршрутизатор ISP.
Мой основной беспорядок, когда tcp ответ создан и передан обратно VM..., так как VM выполняет внутренний компьютер A, как маршрутизатор выполнил бы запрос ARP для получения MAC-адреса VMs?
Спасибо за справку :)
Править:
Найденный следующим видео, которое помогло объяснить NAT: https://www.youtube.com/watch? v=01ajHxPLxAw
Если вы ищете короткий ответ, то он (маршрутизатор/брандмауэр) уже знает все, что нужно для "ответа" TCP из таблицы сеансов и таблицы маршрутизации.
Общий пример будет выглядеть так:
Если нужно, то маршрутизатор может выполнить ARP-запрос так же, как и в любое другое время, когда ему нужно выполнить поиск MAC-адреса. Но обычно это относится к локальным устройствам, т.е. в зависимости от подсети маршрутизатор может просто маршрутизировать пакеты 3-го уровня на другое устройство.
Более сложный ответ включает в себя знание КАК ВМ находится в сети (bridged/NAT/etc.), а также сложность сети и т.д. что будет книжным ответом и питьем из огня, если честно.
Есть два метода, которые можно использовать для обработки ARP-трафика, когда NAT не используется.
Это также обычное NAT для ВМ. В этом случае исходный адрес (и, возможно, порт) меняются, когда пакеты маршрутизируются хостом ВМ во внешний мир. Ответы имеют изменение адреса назначения на исходное.