NAT、代理服務、內網穿透
- 1、NAT
- 1.1、NAT過程
- 1.2、NAPT
- 2、內網穿透
- 3、內網打洞
- 3、代理服務器
- 3.1、正向代理
- 3.2、反向代理
1、NAT
1.1、NAT過程
之前我們討論了IPv4協議中IP地址數量不充足的問題。NAT技術是當前解決IP地址不夠用的主要手段,是路由器的一個重要功能。
NAT能夠將私有IP對外通信時轉為全局IP。也就是就是一種將私有IP和全局IP相互轉化的技術方法。
很多學校,家庭,公司內部采用每個終端設置私有IP,而在路由器或必要的服務器上設置全局IP。
全局IP要求唯一,但是私有IP不需要。在不同的局域網中出現相同的私有IP是完全不影響的。
如圖,客戶端A要給服務器發送消息,源地址就是客戶端A的IP地址10.0.0.10,目標地址為163.221.120.9,然后客戶端A拿著目標地址與自己所在子網的子網掩碼進行按位與,客戶端A也不知道這個IP地址是哪的,但是可以肯定的是絕對不在當前子網中,所以轉發給路由器。路由器再轉發給服務器,但是內網IP是不能出現在公網上的,所以將源地址替換成路由器的WAN口地址202.244.174.37,而路由器的10.0.0.1稱為LAN口地址。替換后轉發給服務器,將來服務器應答的時候,源地址為163.221.120.0,目標地址為202.244.174.37。但是應答到了路由器之后怎么再轉發給客戶端A我們還不知道。
對原始報文中的源IP地址進行替換,替換成途徑路由器的WAN口IP的過程,我們稱之為NAT(Network Address Translation)網絡地址轉換。
1.2、NAPT
客戶端A給服務器發數據,源IP+端口為10.0.0.10:1025,目的IP+端口為163.221.120.9:80,首先判斷目標IP不在當前子網,轉發給路由器,路由器在進行源IP替換的時候,還會構建一張NAPT轉換表。左邊是源IP+源端口和目的IP+目的端口。右邊也是如此,只不過第一行的源IP+源端口替換成路由器的了。所以路由器對報文中的源IP+端口進行替換,還會形成如圖所示的映射關系,然后轉發給服務器。而由于第一次建立了映射關系,之后主機A再發送給服務器到達路由器這里直接進行查表替換源IP地址即可。
左側源IP標識了客戶端A所在子網中唯一一臺主機,源端口標識了該主機上的唯一一個進程。然后目的IP標識了全網唯一一臺主機,目的端口標識了目的主機上的唯一一個進程。所以左側整個部分是唯一的。右側源IP+源端口也是具有唯一性,目的IP+目的端口同樣如此,所以右側整個部分也是唯一的。左側和右側都是一個四元組,并且都具有唯一性。左側和右側是互為鍵值的一組映射關系。
服務器收到后要做響應,源IP地址+端口為163.221.120.8:80,目的IP地址+端口為202.244.174.37:1025,所以服務器先轉發給路由器,路由器收到后根據這四元組反向再查NAPT,將目的IP地址+端口替換為10.0.0.10:1025,然后進行內網轉發,轉發給客戶端A。