淺談NAT服務

  本文來自於: http://tonyguo.blog.51cto.com/379574/191467

由於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
目標IP 209.131.136.158
同時,NAT服務器建立一個NAT表,記錄數據包包頭信息的變更情況,如下表:
源IP 192.168.50.52
目標IP 61.152.194.124
③. Web服務器收到數據包後,根據源IP和端口將返回內容傳送給NAT服務器,數據包如下:
源IP 209.131.136.158
目標IP 61.152.194.124
④. NAT服務器接收到web服務器發過來的數據包後,根據之前建立的NAT表,變更IP數據包信息,如下表:
源IP 61.152.194.124
目標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. 工作過程:
    1)當內部主機需要建立一條到Internet的連接時,首先將請求發送到NAT服務器上。NAT服務器接收到請求後,根據接收到的數據包,檢查動態NAT表。如果已經存在該映射項,則NAT服務器根據該記錄將源地址轉換爲對應的公網地址,將數據包發送到Internet主機上,並記錄會話狀態。
2)Internet主機接收到信息後,將應答信息返回給NAT服務器。
3)當NAT服務器接收到來自Internet返回的應答信息後,檢查NAT表。如果存在匹配的映射項,則將目標IP地址轉換爲對應的內網IP地址,並將數據包轉發到內網主機。如果不存在匹配的映射項,則將數據包丟棄。
動態地址轉換跟靜態地址轉換的方式差不多,只是內網跟外網的IP地址不是一一對應的,而是動態分配的。
2. 配置實例:
以下以Cisco路由器做爲NAT服務器爲例,說明動態NAT轉換配置:
網絡環境如上,見圖1。現在需要配置將內網地址192.168.50.0/24轉換爲合法的公網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地址池。 
  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. 工作過程:
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
目標IP 209.131.136.158
目標端口 80
②. NAT服務器收到數據包後,將數據源地址改爲NAT服務器的公網IP地址,並將端口改爲一個未使用的端口號,比如3698,數據包如下:
源IP 61.152.194.122
源端口 3698
目標IP 209.131.136.158
目標端口 80
同時,NAT服務器建立一個NAT表,記錄數據包包頭信息的變更情況,如下表:
源IP 192.168.50.51
源端口 4321
目標IP 61.152.194.122
目標端口 3698
③. Web服務器收到數據包後,根據源IP和端口將返回內容傳送給NAT服務器,數據包如下:
源IP 209.131.136.158
源端口 80
目標IP 61.152.194.122
目標端口 3698
④. NAT服務器接收到web服務器發過來的數據包後,根據之前建立的NAT表,變更IP數據包信息,如下表:
源IP 61.152.194.122
源端口 3698
目標IP 192.168.50.51
目標端口 4321
經過上述步驟,內網主機與外部服務器間數據交互完成。
2. 配置實例:
以下以Cisco路由器做爲網關爲例,說明端口NAT轉換配置:
網絡環境如上,見圖1。現在需要配置將內網地址轉換爲合法的公網IP地址:61.152.194.123,子網掩碼爲255.255.255.248。配置步驟如下:
1)設置外部端口。
  interface  serial  0
  ip  address  61.152.194.122  255.255.255.248
  in  nat  outside
  2)設置內部端口。
  interface  ethernet  0
  ip  address  192.168.50.250  255.255.255.0
  ip  nat  inside
  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服務,更有利於瞭解數據交換等問題。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章