歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> NAT( 網絡地址轉換) 的實現

NAT( 網絡地址轉換) 的實現

日期:2017/2/28 14:28:30   编辑:Linux教程

NAT的基本介紹:

  網絡地址轉換(NAT,Network Address Translation)屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化為合法IP地址的轉換技術,它被廣泛應用於各種類型Internet接入方式和各種類型的網絡中。原因很簡單,NAT不僅完美地解決了lP地址不足的問題,而且還能夠有效地避免來自網絡外部的攻擊,隱藏並保護網絡內部的計算機。

  借助於NAT,私有(保留)地址的"內部"網絡通過路由器發送數據包時,私有地址被轉換成合法的IP地址,一個局域網只需使用少量IP地址(甚至是1個)即可實現私有地址網絡內所有計算機與Internet的通信需求。

  NAT將自動修改IP報文的源IP地址和目的IP地址,Ip地址校驗則在NAT處理過程中自動完成。有些應用程序將源IP地址嵌入到IP報文的數據部分中,所以還需要同時對報文的數據部分進行修改,以匹配IP頭中已經修改過的源IP地址。否則,在報文數據都分別嵌入IP地址的應用程序就不能正常工作。

NAT的三種實現方式:

  NAT的實現方式有三種,即靜態轉換Static Nat、動態轉換Dynamic Nat 和端口多路復用OverLoad。

  靜態轉換是指將內部網絡的私有IP地址轉換為公有IP地址,IP地址對是一對一的,是一成不變的,某個私有IP地址只轉換為某個公有IP地址。借助於靜態轉換,可以實現外部網絡對內部網絡中某些特定設備(如服務器)的訪問。

  動態轉換是指將內部網絡的私有IP地址轉換為公用IP地址時,IP地址是不確定的,是隨機的,所有被授權訪問上Internet的私有IP地址可隨機轉換為任何指定的合法IP地址。也就是說,只要指定哪些內部地址可以進行轉換,以及用哪些合法地址作為外部地址時,就可以進行動態轉換。動態轉換可以使用多個合法外部地址集。當ISP提供的合法IP地址略少於網絡內部的計算機數量時。可以采用動態轉換的方式。

  端口多路復用(Port address Translation,PAT)是指改變外出數據包的源端口並進行端口轉換,即端口地址轉換(PAT,Port Address Translation).采用端口多路復用方式。內部網絡的所有主機均可共享一個合法外部IP地址實現對Internet的訪問,從而可以最大限度地節約IP地址資源。同時,又可隱藏網絡內部的所有主機,有效避免來自internet的攻擊。因此,目前網絡中應用最多的就是端口多路復用方式。

I. 靜態地址轉換的實現

假設內部局域網使用的lP地址段為192.168.0.1~192.168.0.254,路由器局域網端(即默認網關)的IP地址為192.168.0.1,子網掩碼為255.255.255.0。網絡分配的合法IP地址范圍為61.159.62.128~61.159.62.135,路由器在廣域網中的IP地址為61.159.62.129,子網掩碼為255.255.255.248可用於轉換的IP地址范圍為61.159.62.130~61.159.62.134。要求將內部網址192.168.0.2~192.168.0.6分別轉換為合法IP地址61.159.62.130~61.159.62.134。
>>>第一步,設置外部端口。
  interface serial 0
  ip address 61.159.62.129 255.255.255.248
  ip nat outside
>>>第二步,設置內部端口。
  interface ethernet 0
  ip address 192.168.0.1 255.255.255.0
  ip nat inside
>>>第三步,在內部本地與外部合法地址之間建立靜態地址轉換。
  ip nat inside source static 內部本地地址內部合法地址。
  示例:
  ip nat inside source static 192.168.0.2 61.159.62.130 //將內部網絡地址192.168.0.2轉換為合法IP地址61.159.62.130
  ip nat inside source static 192.168.0.3 61.159.62.131 //將內部網絡地址192.168.0.3轉換為合法IP地址61.159.62.131
  ip nat inside source static 192.168.0.4 61.159.62.132 //將內部網絡地址192.168.0.4轉換為合法IP地址61.159.62.132
  ip nat inside source static 192.168.0.5 61.159.62.133 //將內部網絡地址192.168.0.5轉換為合法IP地址61.159.62.133
  ip nat inside source static 192.168.0.6 61.159.62.134 //將內部網絡地址192.168.0.6轉換為合法IP地址61.159.62.134
  至此,靜態地址轉換配置完畢。


II. 動態地址轉換的實現

假設內部網絡使用的IP地址段為172.16.100.1~172.16.100.254,路由器局域網端口(即默認網關)的IP地址為172.16.100.1,子網掩碼為255.255.255.0。網絡分配的合法IP地址范圍為61.159.62.128~61.159.62.191,路由器在廣域網中的IP地址為61.159.62.129,子網掩碼為255.255.255.192,可用於轉換的IP地址范圍為61.159.62.130~61.159.62.190。要求將內部網址172.16.100.1~172.16.100.254動態轉換為合法IP地址61.159.62.130~61.159.62.190。
>>>第一步,設置外部端口。
  設置外部端口命令的語法如下:
  ip nat outside
  示例:
  interface serial 0 //進入串行端口serial 0
  ip address 61.159.62.129 255.255.255.192//將其IP地址指定為61.159.62.129,子網掩碼為255.255.255.192
  ip nat outside //將串行口serial 0設置為外網端口
  注意,可以定義多個外部端口。
>>>第二步,設置內部端口。
  設置內部接口命令的語法如下:
  ip nat inside
  示例:
  interface ethernet 0 //進入以太網端口Ethernet 0
  ip address 172.16.100.1 255.255.255.0 // 將其IP地址指定為172.16.100.1,子網掩碼為255.255.255.0
  ip nat inside //將Ethernet 0 設置為內網端口。
  注意,可以定義多個內部端口。

>>>第三步,定義合法IP地址池。
  定義合法IP地址池命令的語法如下:
  ip nat pool 地址池名稱起始IP地址 終止IP地址子網掩碼
  其中,地址池名字可以任意設定。
  示例:
  ip nat pool chinanet 61.159.62.130 61.159.62.190 netmask 255.255.255.192 //指明地址緩沖池的名稱為chinanet,IP地址范圍為61.159.62.130~61.159.62.190,子網掩碼為255.255.255.192。需要注意的是,即使掩碼為255.255.255.0,也會由起始IP地址和終止IP地址對IP地址池進行限制。
  或ip nat pool test 61.159.62.130 61.159.62.190 prefix-length 26
  注意,如果有多個合法IP地址范圍,可以分別添加。例如,如果還有一段合法IP地址范圍為"211.82.216.1~211.82.216.254",那麼,可以再通過下述命令將其添加至緩沖池中。
  ip nat pool cernet 211.82.216.1 211.82.216.254 netmask 255.255.255.0
  或
  ip nat pool test 211.82.216.1 211.82.216.254 prefix-length 24
>>>第四步,定義內部網絡中允許訪問Internet的訪問列表。
  定義內部訪問列表命令的語法如下:
  access-list 標號 permit 源地址通配符(其中,標號為1~99之間的整數)
  access-list 1 permit 172.16.100.0 0.0.0.255 //允許訪問Internet的網段為172.16.100.0~172.16.100.255,反掩碼為0.0.0.255。需要注意的是,在這裡采用的是反掩碼,而非子網掩碼。反掩碼與子網掩碼的關系為:反掩碼+子網掩碼=255.255.255.255。例如,子網掩碼為255.255.0.0,則反掩碼為0.0.255.255;子網掩碼為255.0.0.0,則反掩碼為0.255.255.255;子網掩碼為255.252.0.0,則反掩碼為0.3.255.255;子網掩碼為255.255.255.192,則反掩碼為0.0.0.63。
  另外,如果想將多個IP地址段轉換為合法IP地址,可以添加多個訪問列表。例如,當欲將172.16.98.0~172.16.98.255和172.16.99.0~172.16.99.255轉換為合法IP地址時,應當添加下述命令:
  access-list2 permit 172.16.98.0 0.0.0.255
  access-list3 permit 172.16.99.0 0.0.0.255
>>>第五步,實現網絡地址轉換。
  在全局設置模式下,將第四步由access-list指定的內部本地地址列表與第三步指定的合法IP地址池進行地址轉換。命令語法如下:
  ip nat inside source list 訪問列表標號 pool 內部合法地址池名字
  示例:
  ip nat inside source list 1 pool chinanet
  如果有多個內部訪問列表,可以一一添加,以實現網絡地址轉換,如
  ip nat inside source list 2 pool chinanet
  ip nat inside source list 3 pool chinanet
  如果有多個地址池,也可以一一添加,以增加合法地址池范圍,如
  ip nat inside source list 1 pool cernet
  ip nat inside source list 2 pool cernet
  ip nat inside source list 3 pool cernet
  至此,動態地址轉換設置完畢。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-09/10609p2.htm

Copyright © Linux教程網 All Rights Reserved