隻想到兩種可能:
第一種情況,已經在詳細讨論過了,所以接下來重點讨論第二種情況。一個公網IP,兩個QQ共同使用,相互通信即使兩個QQ同時使用一個公網IP,要能看到這壯麗奇迹的一幕,也是非常不容易的。
讀者會很疑惑,既然兩個QQ都使用了一個公網IP,為何說卻很難看到這一幕?稍安勿躁,羅馬不是一天建成的,讓我們一步一步詳細分析。
2個QQ的聯系信息分别如下:
Alice
私網IP= 10.1.1.1 端口号= 1000
公網IP =1.1.1.1 端口号= 1111
Bob
私網IP= 192.168.1.1 端口号= 2000
公網IP =1.1.1.1 端口号= 2222
QQ中心服務器将兩者的聯系信息分别推送給彼此。Alice使用Bob公網IP、端口号與其通信,以下是在Alice主機上抓包的結果:
很顯然,這裡源IP ≠目的IP,源IP = 目的IP的神奇一幕并沒有出現。
Bob使用Alice公網IP、端口号與其通信,以下是在Bob主機上抓包的結果:
同樣這裡源IP ≠目的IP,源IP = 目的IP的神奇一幕也沒有出現。繼續讓這些報文朝着互聯網的放心繼續流淌,到達網關處。網關不能袖手旁觀,網關需要強勢介入,将報文中源IP、源端口替換成公網IP、公網端口。
Alice的被修改後的報文:
Bob的被修改後的報文:
哇,源IP = 目的IP的神奇一幕同時出現了,不是很容易出現的嗎?
通常,網關上的抓包并沒有那麼容易,要麼用戶沒有權限,要麼網關不提供抓包的接口。Alice被修改過的報文,需要重新進入路由引擎處理,查表可得這是網關的WAN口的IP,于是将修改後的IP報文從WAN口流出,并流入互聯網。Alice在互聯網裡遊啊遊,穿過了N個交換機,終于碰到了網關。網關查表發現,目的IP的路由指向與Alice報文的流動方向相反,于是網關對Alice、Bob的報文說,親愛的老司機們請掉頭。于是兩位老司機掉頭往回走,繼續遊啊遊,穿過N個交換機,又回到出發的起點網關。
網關查表将Alice、Bob的報文的目的IP、目的端口做了一次替換。Alice報文替換結果為:
Bob報文替換結果為:
從上文的描述可知,源IP = 目的IP出現的時間周期,從網關第一次替換完成始,到網關第二次替換前。在這個時間周期内,并在報文途徑的設備上抓包都是可以看到這神奇的一幕。
上文Alice、Bob的報文其實走了一段冤枉路,如果做IP替換的網關不是将替換後的IP報文,從WAN口發出,而是将其從LAN口流出,流出LAN口前,做第二次替換,IP報文就不會跑冤枉路了。簡而言之,就是在本地做一個環路(Loop)。這項技術就是NAT Hairpin技術。
由于NAT Hairpin技術打破了路由器的水平分割(Split Horizon )限制,即從一個接口收到的報文,絕不允許從同一個接口再次發出,避免形成環路。
使用NAT Hairpin技術的場景下,源IP = 目的IP 出現的時間僅僅是一霎那間,如果中間的流水線工序不提供抓包點,這個瞬間也是無法捕獲到的!
注:本文轉載自車小胖談網絡微信公衆号;文内觀點僅供參考。
埃文科技——IP定位技術領域專家,最全面、最精準的網絡空間地圖服務提供商。
公司成立于2012年,專注于網絡空間、地理空間和社會空間的相互映射,繪制三位一體的網絡空間地圖,對網絡空間資源的靜态屬性和動态變化情況進行探測。擁有27項軟件著作權及13項發明專利。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!