天天看點

淺談NAT服務

        由于IP位址資源有限,一般在我們企業環境中,使用的都是私有IP位址。而私有IP位址是無法直接通路公網資源的,這個時候我們就需要用到NAT服務了(NAT服務用于将一個位址段映射到另一個位址段,即可通過NAT把内網位址(私有位址)轉換成合法的公網IP位址,以便内網位址通路公網。)。

      NAT伺服器有内部和外部兩個網卡,隻有當内外部網絡之間需要進行資料傳送時,才進行位址轉換。在NAT伺服器上都維護一張狀态表,稱為NAT表。該表記錄每個資料包在NAT伺服器上被轉換的情況。根據采用的位址轉換技術不同,可以分為三類:靜态NAT、動态NAT和端口NAT。

靜态轉換是指将内部網絡的私有IP位址轉換為公有IP位址,IP位址對是一對一的,是一成不變的,某個私有IP位址隻轉換為某個公有IP位址。借助于靜态轉換,可以實作外部網絡對内部網絡中某些特定裝置(如伺服器)的通路。 

動态轉換是指将内部網絡的私有IP位址轉換為公用IP位址時,IP位址對是随機的不确定的,所有被授權通路上Internet的私有IP位址可随機轉換為任何指定的合法IP位址。也就是說,隻要指定哪些内部位址可以進行轉換,以及用哪些合法位址作為外部位址時,就可以進行動态轉換。動态轉換可以使用多個合法外部位址集。 

端口轉換是指改變外出資料包的源端口并進行端口轉換,即端口位址轉換(PAT,Port Address Translation).采用端口多路複用方式。内部網絡的所有主機均可共享一個合法外部IP位址實作對Internet的通路,進而可以最大限度地節約IP位址資源。同時,又可隐藏網絡内部的所有主機,有效避免來自internet的攻擊。目前在企業網絡中應用最多的就是這種方式。

        下面我們就來具體看看這幾種不同方式的運作情況:

        本文運作環境: 

        内網IP位址段為:192.168.50.0/24,網關内網IP位址為192.168.50.250/24,網關外網IP位址為61.152.194.122。除了網關使用了一個公網IP外,還有三個公網IP可以使用(61.152.194.123--61.152.194.125)。另外,公網上有一台Web伺服器,IP位址為209.131.136.158,使用80端口釋出web服務。如下圖所示:

                             圖1

一、靜态位址轉換

1. 工作過程:

1)首先,需要在NAT伺服器上建立靜态NAT映射表。比如,NAT伺服器上的靜态NAT表為:

内網IP 公網IP

192.168.50.51 61.152.194.123

192.168.50.52 61.152.194.124

192.168.50.53 61.152.194.125

2)當内部主機,需要建立一條到Internet的連接配接時,首先會将請求發送到NAT伺服器。NAT伺服器接收到請求後,根據接收到的資料包檢查NAT表。如果已為該位址配置了靜态位址轉換,NAT伺服器就使用對應的公網IP位址轉發資料包,否則,NAT伺服器不對位址進行轉換,直接将資料包丢棄。

3)Internet主機接收到資訊後,将應答資訊傳回給端口NAT伺服器。

4)當NAT伺服器接收到來自Internet上的主機傳回的資料包後,檢查靜态NAT表。如果NAT表中存在比對的映射項,則将目标位址轉換為相應的内網IP,并将資料包轉發給内網主機。如果不存在比對映射項,則将資料包丢棄。

例如,内網主機PC2(IP位址為192.168.50.52/24),需要通路公網上的web伺服器209.131.136.158。如圖1所示,通路過程如下:

①. 内網主機PC2将請求資料包傳送給NAT伺服器,資料包如下:

源IP 192.168.50.52

目标IP 209.131.136.158

②. NAT伺服器收到資料包後,将資料源位址改為對應的公網IP位址,資料包如下:

源IP 61.152.194.124

同時,NAT伺服器建立一個NAT表,記錄資料包標頭資訊的變更情況,如下表:

目标IP 61.152.194.124

③. Web伺服器收到資料包後,根據源IP和端口将傳回内容傳送給NAT伺服器,資料包如下:

源IP 209.131.136.158

④. NAT伺服器接收到web伺服器發過來的資料包後,根據之前建立的NAT表,變更IP資料包資訊,如下表:

目标IP 192.168.50.52

經過上述步驟,内網主機與外部伺服器間資料互動完成。

2. 配置執行個體:

以下以Cisco路由器做為NAT伺服器為例,說明靜态NAT轉換配置:

網絡環境如上,見圖1。現在需要配置将内網位址192.168.50.51--192.168.50.53轉換為合法的公網IP位址61.152.194.123--61.152.194.125,子網路遮罩為255.255.255.248。配置步驟如下: 

1)設定外部端口。 

interface  serial  0 

ip  address  61.152.194.122  255.255.255.248 

ip  nat  outside 

2)設定内部端口。 

interface  ethernet  0 

ip  address  192.168.50.250  255.255.255.0 

ip  nat  inside 

3)在内部本地與内部合法位址之間建立靜态位址轉換。 

ip  nat  inside  source  static  192.168.50.51  61.152.194.123

ip  nat  inside  source  static  192.168.50.52  61.152.194.124  

  ip  nat  inside  source  static  192.168.50.53  61.152.194.125

至此,靜态位址轉換配置完畢。

二、動态位址轉換

    1)當内部主機需要建立一條到Internet的連接配接時,首先将請求發送到NAT伺服器上。NAT伺服器接收到請求後,根據接收到的資料包,檢查動态NAT表。如果已經存在該映射項,則NAT伺服器根據該記錄将源位址轉換為對應的公網位址,将資料包發送到Internet主機上,并記錄會話狀态。

2)Internet主機接收到資訊後,将應答資訊傳回給NAT伺服器。

3)當NAT伺服器接收到來自Internet傳回的應答資訊後,檢查NAT表。如果存在比對的映射項,則将目标IP位址轉換為對應的内網IP位址,并将資料包轉發到内網主機。如果不存在比對的映射項,則将資料包丢棄。

動态位址轉換跟靜态位址轉換的方式差不多,隻是内網跟外網的IP位址不是一一對應的,而是動态配置設定的。

以下以Cisco路由器做為NAT伺服器為例,說明動态NAT轉換配置:

網絡環境如上,見圖1。現在需要配置将内網位址192.168.50.0/24轉換為合法的公網IP位址61.152.194.123--61.152.194.125,子網路遮罩為255.255.255.248。配置步驟如下: 

ip  address  61.152.194.122  255.255.255.248

ip  nat  outside   

ip  address  192.168.50.250  255.255.255.0

3)定義合法IP位址池。  

ip  nat  pool  net  61.152.194.123  61.152.194.125  netmask  255.255.255.248 

4)定義内部網絡中允許通路Internet的通路清單。  

access-list  1  permit  192.168.50.0  0.0.0.255  

5)實作網絡位址轉換。 

ip  nat  inside  source  list 1  pool  net  

至此,動态位址轉換設定完畢。

三、端口位址轉換

1)當内網主機需要與Internet建立連接配接時,首先将請求發送到端口NAT伺服器。NAT伺服器接收到請求後,根據接收到的資料包,檢查端口NAT映射表。如果還沒有為該内網主機建立位址轉換映射項,則NAT伺服器會建立一個會話,并給該會話配置設定一個端口。之後将源位址及端口改為企業公網IP位址及相應的端口,發送資料包到Internet主機上。

2)Internet主機接收到資訊後,将應答資訊傳回給端口NAT伺服器。

3)當端口NAT伺服器接收到應答資訊後,檢查端口NAT映射表。如果端口NAT表存在比對的映射項,則将目标位址及端口轉換為對應的内網IP及端口,将資料包轉發給内網主機。如果不存在比對映射項,就将資料包丢棄。

例如,内網主機PC1(IP位址為192.168.50.51/24),需要使用端口4321通路公網上的web伺服器209.131.136.158(端口為80)。如圖1所示,通路過程如下:

①. 内網主機PC1将請求資料包傳送給NAT伺服器,資料包如下:

源IP 192.168.50.51

源端口 4321

目标端口 80

②. NAT伺服器收到資料包後,将資料源位址改為NAT伺服器的公網IP位址,并将端口改為一個未使用的端口号,比如3698,資料包如下:

源IP 61.152.194.122

源端口 3698

目标IP 61.152.194.122

目标端口 3698

源端口 80

目标IP 192.168.50.51

目标端口 4321

以下以Cisco路由器做為網關為例,說明端口NAT轉換配置:

網絡環境如上,見圖1。現在需要配置将内網位址轉換為合法的公網IP位址:61.152.194.123,子網路遮罩為255.255.255.248。配置步驟如下: 

in  nat  outside 

3)定義合法IP位址池。 

in  nat  pool  onlyone  61.152.194.123  61.152.194.123  netmask  255.255.255.248

  4)定義内部通路列。 

access-list 1  permit  192.168.50.0  0.0.0.255 

5)設定複用動态位址轉換。 

ip  nat  inside  source  list1  pool  onlyone  overload 

至此,端口複用動态位址轉換完成。

   本文主要介紹了NAT的工作過程和在路由器中的一些設定步驟,了解了NAT服務,更有利于了解資料交換等問題。

     本文轉自Tonyguo 51CTO部落格,原文連結:http://blog.51cto.com/tonyguo/191467,如需轉載請自行聯系原作者

繼續閱讀