
尤其是 CentOS。假設機器位於 1.2.3.4 上執行 httpd 並發出請求http://1.2.3.4,機器是否立即知道該請求是發給自己的,因此在內部路由它,或者它是出去又回來?
我有興趣了解這是如何工作的。
答案1
是的,機器立即知道該請求是發給它自己的。它透過將封包的目標位址與分配給網路介面的所有已知 IP 位址進行比較,將封包標記為當地的,查詢一個特殊的路由表 ( ip route show table local
),該表會根據本地分配的 IP 位址的規則自動更新,並替換網路介面以傳遞它lo
,即使目標位址不是(在 ping 本地位址時127.0.0.1
嘗試)。tcpdump -ni lo
您還可以使用它ip route get 1.2.3.4
來顯示 Linux 核心如何對路由 ( local
) 進行分類,以及它將透過什麼介面傳遞封包,以及網關等其他資訊。