談談NAT:什麼?全球IP和私有IP是什麼鬼?

苦逼的碼農發表於2019-01-15

談談NAT:什麼?全球IP和私有IP是什麼鬼?


本文字數:1460字

閱讀本文大概需要:4分鐘


可能你們會經常聽到全球 IP(外網)和私有 IP(內網),他們的區別是什麼呢?今天這篇文章來簡單講講這到底是怎麼回事。

我們都知道,IPv4中的IP地址的數量是有限的,每次把一部分地址分配出去,那麼就意味著能夠用來分配的IP地址就更少了,而且隨著現在手機,電腦等的快速發展,如果每個手機或者電腦都要求一個IP地址,那麼顯然IP地址是不夠用的。

為了解決這個問題,我們可以採取這樣的策略:例如對於一個公司來說,每個公司都會有一個屬於自己公司的內網(也可以稱之為區域網)

假如我們給這個公司A分配了一個IP=192.168.1.1。我們把這個IP作為這個公司內網的閘道器吧。

談談NAT:什麼?全球IP和私有IP是什麼鬼?


在公司A的內網裡面有3臺電腦,如果這三臺電腦要上網的話,我們需要給他分配一個IP,那麼我們一定需要去申請3個IP地址來使用嗎?

答否。我們不一定需要去申請3個IP的,在我們這個內網裡,我們可以指定自己的規則,例如,我們可以給這三臺電腦隨便分配三個IP(請注意,這三個IP不是去申請的,而且我自己隨意給它分配的)。分別分配電腦A = 192.168.1.2   電腦B = 192.168.1.3 電腦C = 192.168.1.4

談談NAT:什麼?全球IP和私有IP是什麼鬼?

假如電腦A想要訪問百度,百度的IP我們假設為:172.168.30.3

談談NAT:什麼?全球IP和私有IP是什麼鬼?

我們都知道,電腦A的IP是我們虛構的,實際上可能並不存在這樣一個IP,如果用電腦A的IP去訪問百度,那肯定行不通。

我們也知道,由於百度和電腦A不在一個區域網內,所以A要訪問百度,那麼必須得經過閘道器。而閘道器的這個IP地址,是真實存在的,是可以訪問百度的。

為了讓 A 可以訪問百度,那麼我們可以採取這樣的方法:讓閘道器去幫助 A 訪問,然後百度把結果傳遞給閘道器,而閘道器再把結果傳遞給 A,這樣不就可以解決了?

談談NAT:什麼?全球IP和私有IP是什麼鬼?

不過電腦A, B, C都可能拜託閘道器去幫忙訪問百度,而百度返回的結果 的目的IP都是閘道器的IP=192.168.1.1。那麼閘道器該如何進行區分這結果是A的,B的還是C的呢?

我們去訪問百度的時候,不是需要指定一個埠嗎?只要我們把 A的IP + 埠  對映成  閘道器的IP+埠,不就可以唯一確定身份了?

例如A用埠60去訪問百度,閘道器把   A的IP+埠60    對映成     閘道器的IP+埠80 不就可以了?

談談NAT:什麼?全球IP和私有IP是什麼鬼?

百度把結果返回給閘道器的80埠之後,閘道器再透過對映表,就可以把結果返回給 A的60埠 了。

如果B也是用60埠去訪問百度的話,也是一樣,可以把它對映到90埠。

談談NAT:什麼?全球IP和私有IP是什麼鬼?

這種方法地址的對映轉換,我們也稱之為網路地址轉換。英文為 Network Address Translation,簡稱NAT

而像A, B, C這樣的IP地址我們也稱之為內網IP,即私有IP;而像閘道器,百度這樣的IP我們稱之為外網IP,即全球IP。現在知道外網IP和內網IP了吧?

幾點需要注意的地方

1、對於全球IP,顯然每個IP都是唯一的,而對於私有IP,同一個區域網內,也得是唯一的,但在兩個不同的區域網中,是可以有相同的私有IP的。

2、區域網內主機之間的通訊,是不需要進行地址轉換的,而如果需要訪問外網,才需要進行地址轉換。

實際上,我們也可以把這種地址轉換稱之為一種代理。閘道器就相當於一個代理,把區域網內的主機的一些資訊都給隱藏了起來。百度並不知道是主機A訪問它,他只知道是閘道器訪問了它。

講到這裡,也差不多結束了。有收穫的小夥伴加個雞腿犒勞一下?(點底部廣告 or 轉發分享)。這篇文章具體細節沒展開,算是大概講解了NAT。

- End -

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561266/viewspace-2558416/,如需轉載,請註明出處,否則將追究法律責任。

相關文章