nat
1.1 NAT工作原理
NAT的基本工作原理是,當私有網主機和公共網主機通信的IP包經過NAT網關時,將IP包中的源IP或目的IP在私有IP和NAT的公共IP之間進行轉換。NAT網關有2個網絡端口,其中公共網絡端口的IP地址是統一分配的公共IP,為202.204.65.2;私有網絡端口的IP地址是保留地址,為192.168.1.1。私有網中的主機 192.168.1.2向公共網中的主機166.111.80.200發送了1個IP包(Des=166.111.80.200,Src=192.168.1.2)。當IP包經過NAT網關時,NAT會將IP包的源IP轉換為NAT的公共 IP並轉發到公共網,此時IP包(Des=166.111.80.200,Src=202.204.65.2)中已經不含任何私有網IP的信息。由於IP 包的源IP已經被轉換成NAT的公共IP,響應的IP包(Des=202.204.65.2,Src=166.111.80.200)將被發送到NAT。 這時,NAT會將IP包的目的IP轉換成私有網中主機的IP,然后將IP包(Des=192.168.1.2,Src=166.111.80.200)轉 發到私有網。對於通信雙方而言,這種地址的轉換過程是完全透明的。
1.2 NAPT技術
由於NAT實現是私有IP和NAT的公共IP之間的轉換,那么,私有網中同時與公共網進行通信的主機數量就受到NAT的公共IP地址數量的限制。為了克服 這種限制,NAT被進一步擴展到在進行IP地址轉換的同時進行Port的轉換,這就是網絡地址端口轉換NAPT(Network Address Port Translation)技術。
NAPT與NAT的區別在於,NAPT不僅轉換IP包中的IP地址,還對IP包中TCP和UDP的Port進行轉換。這使得多台私有網主機利用1個NAT公共IP就可以同時和公共網進行通信。(NAPT多了對TCP和UDP的端口號的轉換)
私有網主機192.168.1.2要訪問公共網中的 Http服務器166.111.80.200。首先,要建立TCP連接,假設分配的TCP Port是1010,發送了1個IP包(Des=166.111.80.200:80,Src=192.168.1.2:1010),當IP包經過NAT 網關時,NAT會將IP包的源IP轉換為NAT的公共IP,同時將源Port轉換為NAT動態分配的1個Port。然后,轉發到公共網,此時IP包 (Des=166.111.80.200:80,Src=202.204.65.2:2010)已經不含任何私有網IP和Port的信息。由於IP包的源 IP和Port已經被轉換成NAT的公共IP和Port,響應的IP包 (Des=202.204.65.2:,Src=2010166.111.80.200:80)將被發送到NAT。這時NAT會將IP包的目的IP轉換成 私有網主機的IP,同時將目的Port轉換為私有網主機的Port,然后將IP包 (Des=192.168.1.2:1010,Src=166.111.80.200:80)轉發到私網。對於通信雙方而言,這種IP地址和Port的轉 換是完全透明的。