Ip

TCP 請求如何從虛擬機路由到外部資源並再次返回?

  • December 11, 2014

場景:電腦 A 的本地 ip 為 192.168.1.100,在其中執行虛擬機。VM 現在向外部 IP 地址 (74.125.225.98) 發出 tcp 請求。

有人可以解釋如何將請求路由到遠端 ip 然後返回到 VM 嗎?

據我了解,VM 將此請求包裝在帶有目標 IP 的 IP 數據包中,然後再次包裝在具有自己唯一(可能是假的)MAC 地址的乙太網幀中。然後路由器用自己的替換VM的IP和MAC,並將目標MAC設置為ISP的路由器。

我的主要困惑是,當創建 tcp 響應並將其發送回 VM 時……由於 VM 在電腦 A 內執行,路由器將如何執行 ARP 請求來獲取 VM 的 MAC 地址?

謝謝您的幫助 :)

編輯:

找到以下有助於解釋 NAT 的影片:https ://www.youtube.com/watch?v=01ajHxPLxAw

如果您正在尋找簡短的答案,它(路由器/防火牆)已經知道會話表和路由表中 TCP“響應”所需的一切。

一個通用範例如下所示:

在此處輸入圖像描述

如果需要,路由器可以像在任何時候需要執行 MAC 地址查找一樣執行 ARP 請求。但它通常用於本地設備,這意味著根據子網,它最終可能只是將數據包第 3 層路由到另一個設備。

一個更複雜的答案將涉及了解虛擬機在網路上的狀態(橋接/NAT/等)以及網路的複雜性等。老實說,這將是一本書的答案並從消防水管中喝水.

引用自:https://serverfault.com/questions/651867