真情服務  厚德載物
今天是:
聯系我們

市場部:0564-3227239
技術部:0564-3227237
財務部: 0564-3227034
公司郵箱:lachs@126.com
技術郵箱:cc1982@163.com
地址:六安市淠望路103號

技術分類
推薦資訊
當前位置:首 頁 > 技術中心 > 網絡 > 查看信息
網絡地址轉換(NAT)
作者:永辰科技  來源:永辰科技  發表時間:2011-8-18 0:04:01  點擊:3089


  網絡地址轉換(NAT,Network Address Translation)屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化為合法IP地址的轉換技術,它被廣泛應用于各種類型Internet接入方式和各種類型的網絡中。原因很簡單,NAT不僅完美地解決了lP地址不足的問題,而且還能夠有效地避免來自網絡外部的攻擊,隱藏并保護網絡內部的計算機。
  雖然NAT可以借助于某些代理服務器來實現,但考慮到運算成本和網絡性能,很多時候都是在路由器上來實現的。
  隨著接入Internet的計算機數量的不斷猛增,IP地址資源也就愈加顯得捉襟見肘。事實上,除了中國教育和科研計算機網(CERNET)外,一般用戶幾乎申請不到整段的C類IP地址。在其他ISP那里,即使是擁有幾百臺計算機的大型局域網用戶,當他們申請IP地址時,所分配的地址也不過只有幾個或十幾個IP地址。顯然,這樣少的IP地址根本無法滿足網絡用戶的需求,于是也就產生了NAT技術。
  l.NAT簡介


  借助于NAT,私有(保留)地址的"內部"網絡通過路由器發送數據包時,私有地址被轉換成合法的IP地址,一個局域網只需使用少量IP地址(甚至是1個)即可實現私有地址網絡內所有計算機與Internet的通信需求。
  NAT將自動修改IP報文的源IP地址和目的IP地址,Ip地址校驗則在NAT處理過程中自動完成。有些應用程序將源IP地址嵌入到IP報文的數據部分中,所以還需要同時對報文進行修改,以匹配IP頭中已經修改過的源IP地址。否則,在報文數據都分別嵌入IP地址的應用程序就不能正常工作。
  2.NAT實現方式


  NAT的實現方式有三種,即靜態轉換Static Nat、動態轉換Dynamic Nat和 端口多路復用OverLoad。
  靜態轉換是指將內部網絡的私有IP地址轉換為公有IP地址,IP地址對是一對一的,是一成不變的,某個私有IP地址只轉換為某個公有IP地址。借助于靜態轉換,可以實現外部網絡對內部網絡中某些特定設備(如服務器)的訪問。
  動態轉換是指將內部網絡的私有IP地址轉換為公用IP地址時,IP地址對是不確定的,而是隨機的,所有被授權訪問上Internet的私有IP地址可隨機轉換為任何指定的合法IP地址。也就是說,只要指定哪些內部地址可以進行轉換,以及用哪些合法地址作為外部地址時,就可以進行動態轉換。動態轉換可以使用多個合法外部地址集。當ISP提供的合法IP地址略少于網絡內部的計算機數量時?梢圆捎脛討B轉換的方式。
  端口多路復用(Port address Translation,PAT)是指改變外出數據包的源端口并進行端口轉換,即端口地址轉換(PAT,Port Address Translation).采用端口多路復用方式。內部網絡的所有主機均可共享一個合法外部IP地址實現對Internet的訪問,從而可以最大限度地節約IP地址資源。同時,又可隱藏網絡內部的所有主機,有效避免來自internet的攻擊。因此,目前網絡中應用最多的就是端口多路復用方式。
  3.網絡地址轉換(NAT)的實現


  在配置網絡地址轉換的過程之前,首先必須搞清楚內部接口和外部接口,以及在哪個外部接口上啟用NAT。通常情況下,連接到用戶內部網絡的接口是NAT內部接口,而連接到外部網絡(如Internet)的接口是NAT外部接口。
  1).靜態地址轉換的實現


  假設內部局域網使用的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
  至此,靜態地址轉換配置完畢。
  2).動態地址轉換的實現
  假設內部網絡使用的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.248//將其IP地址指定為61.159.62.129,子網掩碼為255.255.255.248
  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 net 61.159.62.130 61.159.62.190 netmask 255.255.255.192 //指明地址緩沖池的名稱為net,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-list2 permit 172.16.99.0~0.0.0.255
  第五步,實現網絡地址轉換。
  在全局設置模式下,將由access-list指定的內部本地地址與指定的內部合法地址池進行地址轉換。命令語法如下:
  ip nat inside source list 訪問列表標號 pool 內部合法地址池名字
  示例:
  ip nat inside source list 1 pool chinanet
  如果有多個內部訪問列表,可以一一添加,以實現網絡地址轉換,如
  ip nat insde source list 2 pool chinanet
  ip nat insde source list 2 pool chinanet
  如果有多個地址池,也可以一一添加,以增加合法地址池范圍,如
  ip nat insde source list 2 pool cernet
  ip nat insde source list 2 pool cernet
  ip nat insde source list 2 pool cernet
  至此,動態地址轉換設置完畢。
  3).端口復用動態地址轉換(PAT)


  內部網絡使用的IP地址段為10.100.100.1~10.100.100.254,路由器局域網端口(即默認網關)的IP地址為10.100.100.1,子網掩碼為255.255.255.0。網絡分配的合法IP地址范圍為202.99.160.0~202.99.160.3,路由器廣域網中的IP地址為202.99.160.1,子網掩碼為255.255.255.252,可用于轉換的IP地址為202.99.160.2。要求將內部網址10.100.100.1~10.100.100.254 轉換為合法IP地址202.99.160.2。
  第一步,設置外部端口。
  interface serial 0
  ip address 202.99.160.1 255.255.255.252
  in nat outside
  第二步,設置內部端口。
  interface ethernet 0
  ip address 10.100.100.1 255.255.255.0
  ip nat inside
  第三步,定義合法IP地址池。
  in nat pool onlyone 202.99.160.2 202.99.160.2 netmask 255.255.255.252
  // 指明地址緩沖池的名稱為onlyone,IP地址范圍為202.99.160.2,子網掩碼為255.255.255.252。由于本例只有一個IP地址可用,所以,起始IP地址與終止IP地址均為202.99.160.2。如果有多個IP地址,則應當分別鍵入起止的IP直址。
  第四步,定義內部訪問列。
  access-list 1 permit 10.100.100.0 0.0.0.255
  允許訪問Internetr的網段為10.100.100.0~10.100.100.255,子網掩碼為255.255.255.0。需要注意的是,在這里子網掩碼的順序跟平常所寫的順序相反,即0.255.255.255。


  第五步,設置復用動態地址轉換。
  在全局設置模式下,設置在內部的本地地址與內部合法IP地址間建立復用動態地址轉換。命令語法如下:
  ip nat inside source list訪問列表號pool內部合法地址池名字overload
  示例:
  ip nat inside source list1 pool onlyone overload //以端口復用方式,將訪問列表1中的私有IP地址轉換為onlyone IP地址池中定義的合法IP地址。
  注意:overload是復用動態地址轉換的關鍵詞
  至此,端口復用動態地址轉換完成。
[編輯本段]NAT的不同類型
  NAT設置可分為靜態地址轉換、動態地址轉換、復用動態地址轉換三種。
  靜態地址轉換將內部本地地址與內部合法地址進行一對一的轉換,且需要指定和哪個合法地址進行轉換。靜態地址轉換經常在一個固定的外部的IP地址訪問一內部主機情況下使用。
  動態地址轉換也是將內部本地地址與內部合法地址一對一的轉換,但是動態地址轉換是從內部合法地址池中動態地選擇一個未使用的地址來對內部本地地址進行轉換的。而一旦連接斷開,取出的全局IP地址將重新放入池中,以供其他的鏈接使用。動態轉換效率是非常高的,因為一個注冊過的IP地址可以讓多個不同的端站點使用多次。
  復用動態地址轉換首先是一種動態地址轉換,但是它可以允許多個內部本地地址公用一個內部合法地址。對只申請到少量IP地址但卻經常同時有多個用戶上外部網絡的情況,這種轉換極為有用。
  PAT(port address translation)將多個內部地址映射為一個公網地址,但以不同的協議端口號與不同的內部地址相對應。
[編輯本段]網絡地址轉換(NAT)-實例
  
  示例一:全部采用端口復用地址轉換
  當ISP分配的IP地址數量很少,網絡又沒有其他特殊需求,即無需為Internet提供網絡服務時,可采用端口利用地址轉換方式,使網絡內的計算機采用同一IP地址訪問Internet,在節約IP地址資源的同時,又可有效保護網絡內部的計算機。
  網絡環境為:
  局域網采用10Mb/s光纖,以城域網方式接入Internet,如圖4-2-2所示。路由器選用擁有2個10/100 Mb/s自適應端口的Cisco 2611。內部網絡使用的IP地址段為192.168.100.1~192.101.254,局域網端口Ethernet 0的IP地址為192.168.100.1,子網掩碼為255.255.0.0。網絡分配的合法IP地址范圍為202.99.160.128~202.99.160.131,連接ISP的端口Ethernet 1的IP地址為202.99.160.129,子網掩碼為255.255.255.252?捎糜谵D換的IP地址為202.99.160.130。要求網絡內部的所有計算機均可訪問Internet。
  案例分析:
  既然只有一個可用的合法IP地址,同時處于局域網的服務器又只為局域網提供服務,而不允許Internet中的主機對其訪問,因此完全可以采用端口復用地址轉換方式實現NAT,使得網絡內的所有計算機均可獨立訪問Internet。
  配置清單:
  interface fastethernet0/0
  ip address 192.168.100.1 255.255.0.0 //定義本地端口IP地址
  duplex auto
  speed auto
  ip nat inside // 定義為本地端口
  !
  interface fastethernet0/1
  ip address 202.99.160.129 255.255.255.252
  duplex auto
  speed auto
  ip nat outside
  !
  ip nat pool onlyone 202.99.160.130 202.99.160.130 netmadk 255.255.255.252 //定義合法IP地址池,名稱為onlyone
  access-list 1 permit 192.168.100.0 0.0.0.255 //定義本地訪問列表
  access-list 1 permit 192.168.100.0 0.0.0.255
  ip nat inside source list1 pool onlyone overload //采用端口復用動態地址轉換
  示例二:動態地址+端口復用地址轉換
  許多FTP網站考慮到服務器性能和Internet連接帶寬的占用問題,都限制同一IP地址的多個進程訪問。如果采用端口復地址轉換方式,則網絡內的所以計算機都采用同一IP地址訪問Internet,那么,將因此而被禁止對該網站的訪問。所以,當提供的合法IP地址數量稍多時,可同時采用端口復用和動態地址轉換方式,從而既可保證所有用戶都能夠獲得訪問Internet的權力,同時,又不致、某些計算機因使用同一IP地址而被限制權限。需要注意的是,由于所有計算機都采用動態地址轉換方式,因此Internet中的所有計算機將無法實現對網絡內部服務器的訪問。
  網絡環境:
  局域網以2Mb/s DNA專線接入Internet,路由器選用安裝了廣域網模塊的Cisco 2611,如圖4-2-2所示。內部網絡使用的IP地址段為172.16.100.1~172.16.102.254,局域網端口Ethernet 0的IP地址為172.16.100.1,子網掩碼為255.255.0.0。網絡分配的合法IP地址范圍為202.99.160.128~202.99.160.129,子網掩碼為255.255.255.192,可用于轉換的IP地址范圍為202.99.160.130~202.99.160.190。要求網絡部分的部分計算機可以不受任何限制地訪問Internet,服務器無需提供Internet訪問服務。
  案例分析:
  既然要求網絡中的部分計算機可以不受任何限制地訪問Internet,同時,服務器無需提供Internet訪問服務,那么,只需采用動態地址轉換+端口復用地址轉換方式即可實現。部分有特殊需求的計算機采用動態地址轉換的NAT方式,其他計算機則采用端口復用地址轉換的NAT方式。因此,部分有特殊需求的計算機可采用內部網址172.16.100.1~172.16.100.254,并動態轉換為合法地址202.99.160.130~202.99.160.189,其他計算機采用內部網址172.16.101.1~172.16.102.254,全部轉換為202.99.160.190。
  配置清單:
  interface fastethernet0/1
  ip address 10.100.100.1 255.255.255.0 //定義局域網端口IP地址
  duplex auto
  speed auto
  ip nat inside //定義為局域端口
  !
  interface serial 0/0
  ip address 202.99.160.129 255.255.255.192 //定義廣域網端口IP地址
  !
  duplex auto
  speed auto
  ip nat outside //定義為廣域端口
  !
  ip nat pool public 202.99.160.130 202.130.160.190 netmask 255.255.255.192 //定義合法IP地址池,名稱為public
  ip nat pool super 202.99.160.130 202.130.160.189 netmask 255.255.255.192 //定義合法IP地址池,名稱為super
  ip nat inside source list1 pool super //定義列表達1采用動態地址轉換
  ip nat inside source list2 pool public overload? //定義列表2采用端口復用地址轉換
  access-list1 permit 172.16.100.0 0.0.0.255 //定義本地訪問列表1
  access-list2 permit 172.16.102.0 0.0.0.255 //定義本地訪問列表2
  access-list2 permit 172.16.102.0 0.0.0.255
  示例三:靜態地址轉換+端口復用地址轉換
  其實在很多時候,網絡中的服務器既為網絡內部的客戶提供網絡服務,又同時為Internet中的用戶提供訪問服務。因此,如果采用端口復用地址轉換或動態地址轉換,將由于無法確定服務器的IP地址,而導致Internet用戶無法實現對網絡內部服務器的訪問。此時,就應當采用靜態地址轉換+端口復用地址轉換的NAT方式。也就是說,對服務器采用靜態地址轉換,以確保服務器擁有固定的合法IP地址。而對普通的客戶計算機則采用端口復用地址轉換,使所有用戶都享有訪問Internet的權力。
  網絡環境為:
  局域網采用10Mb/s光纖,以城域網方式接入Internet,如圖4-2-2所示。路由器選用擁有2個10/100 Mb/s自適應端口的Cisco 2611。內部網絡使用的IP地址段為10.18.100.1~10.18.104.254,局域網端口Ethernet 0的IP地址為10.18.100.1,子網掩碼為255.255.0.0。網絡分配的合法IP地址范圍為211.82.220.80~211.82.220.87,連接ISP的端口Ethernet 1的IP地址為211.82.220.81,子網掩碼為255.255.255.248。要求網絡內部的所有計算機均可訪問Internet,并且在Internet中提供Web、E-mail、FTP和Media等4種服務。
  案例分析:
  既然網絡內的服務器要求能夠被Internet訪問到,那么,這部分主機必須擁有合法的IP地址,也就是說,服務器必須采用靜態地址轉換。其他計算機由于沒有任何限制,所以,可采用端口復用地址轉換的NAT方式。因此,服務器可采用內網址10.18.100.1~10.18.100.254,并分別映射為一個合法的IP地址。其他計算機則采用內部網址10.18.101.1~172.16.104.254,并全部轉換為一個合法的IP地址。
  配置清單:
  interface fastethernet0/0
  ip address 10.18.100.1 255.255.0.0 //定義局域網口IP地址
  duplex auto
  speed auto
  ip nat inside //定義局域網口
  !
  interface fastethernet0/1
  ip address 211.82.220.81 255.255.255.248 //定義廣域網口IP地址
  duplex auto
  speed auto
  ip nat outside //定義廣域網口
  !
  ip nat pool every 211.82.220.86 211.82.220.86 netmask 255.255.255.248 //定義合法IP地址池
  access-list 1 permit 10.18.101.0 0.0.0.255 //定義本地訪問列表1
  access-list 1 premit 10.18.102.0 0.0.0.255
  access-list 1 premit 10.18.103.0 0.0.0.255
  access-list 1 premit 10.18.104.0 0.0.0.255
  ip nat inside source list1 pool every overload //定義列表達1采用端口復用地址轉換
  ip nat inside source static 10.18.100.10 211.82.220.82 //定義靜態地址轉換
  ip nat inside source static 10.18.100.11 211.82.220.83
  ip nat inside source static 10.18.100.12 211.82.220.84
  ip nat inside source static 10.18.100.13 211.82.220.85
  示例四:TCP/UDP端口NAT映射
  如果ISP提供的合法IP地址的數量較多,我們自然可以采用靜態地址轉換+端口復用動態地址轉換的方式得以完美實現。但如果ISP只提供4個IP地址,其中2個作為網絡號和廣播地址而不可使用,1個IP地址要用于路由器定義為默認網關, 那么將只剩下1個IP地址可用。當然我們也可以利用這個僅存的一個IP地址采用端口復用地址轉換技術,從而實現整個局域網的Internet接入。但是由于服務器也采用動態端口,因此,Internet中的計算機將無法訪問到網絡內部的服務器。有沒有好的解決問題的方案呢?這就是TCP/UDP端口NAT映射。
  我們知道,不同應用程序使用的TCP/UDP的端口是不同的,比如,Web服務使用50,FTP服務使用21,SMTP服務使用25,POP3服務使用110,等等。因此,可以將不同的TCP端口綁定至不同的內部IP地址,從而只使用一個合法的IP地址,即可在允許內部所有服務器被Internet訪問的同時,實現內部所有主機對Internet訪問。
  網絡環境:
  局域網采用10Mb/s光纖,以城域網方式接入Internet,如圖4-2-5所示。路由器選用擁有2個10/100 Mb/s自適應端口的Cisco 2611。內部網絡使用的IP地址段為192.168.1.1~192.168.1.254,局域網端口Ethernet 0的IP地址為192.168.1.1,子網掩碼為255.255.255.0。網絡分配的合法IP地址范圍為,211.82.220.128~211.82.220.131,連接ISP的端口Ethernet 1的IP地址為211.82.220.129,子網掩碼為255.225.255.252,可用于轉換的IP地址為211.82.220.130。要求網絡內部的所有計算機均可訪問Internet。
  案例分析:
  既然只有一個可用的合法IP地址,當然只能采用端口復用方式實現NAT,不過,由于同時又要求網絡內部的服務器可以被Internet訪問到,因此,必須使用PAT創建TCP/UDP端口的NAT映射。需要注意的是,也可以直接使用廣域端口創建TCP/UDP端口的NAT映射,也就是說,即使只有一個IP地址,也可以完美實現端口復用。由于合法IP地址位于路由器端口上,所以,不再需要定義NAT池,只簡單地使用inside source list語句即可。
  需要注意的是,由于每種應用服務都有自己默認的端口,所以,這種NAT方式下,網絡內部每種應用服務中只能各自有一臺服務器成為Internet中的主機,例如,只能有一臺Web服務器,一臺E-mail服務,一臺FTP服務器。盡管可以采用改變默認端口的方式創建多臺應用服務器,但這種服務器在訪問時比較困難,要求用戶必須先了解某種服務采用的新TCP端口。
  配置清單:
  interface fastethernet0/0
  ip address 192.168.1.1 255.255.255.0//指定局域網口的IP地址
  duplex auto
  speed auto
  ip nat inside //指定局域網接口
  !
  interface fastethernet0/1
  ip address 211.82.220.129 255.255.255.248 //指定廣域網口的IP地址
  access-list 1 permit 192.168.1.0 0.0.0.255
  !
  ip nat inside source list1 interface fastethernet0/1 overload //啟用端口復用地址轉換,并直接采用fastethernet0/1的IP地址。
  ip nat inside source static tcp 192.168.1.11 80 202.99.160.129.80
  ip nat inside source static tcp 192.168.1.12 21 202.99.160.129.21
  ip nat inside source static tcp 192.168.1.13 25 202.99.160.129.25
  ip nat inside source static tcp 192.168.1.13 110 202.99.160.129 110
  示例五:利用地址轉換實現負載均衡
  隨著訪問量的上升,當一臺服務器難以勝任時,就必須采用負載均衡技術,將大量的訪問合理地分配至多臺服務器上。當然,實現負載均衡的手段有許多種,比如可以采用服務器群集負載均衡、交換機負載均衡、DNS解析負載均衡等等。
  其實除此以外,也可以通過地址轉換方式實現服務器的負載均衡。事實上,這些負載均衡的實現大多是采用輪詢方式實現的,使每臺服務器都擁有平等的被訪問機會。
  網絡環境:
  局域網以2Mb/s DDN專線拉入Internet,路由器選用安裝了廣域網模塊的Cisco 2611,如圖4-2-6所示。內部網絡使用的IP地址段為10.1.1.1~10.1.3.254,局域網端口Ethernet 0的IP地址為10.1.1.1,子網掩碼為255.255.252.0。網絡分配的合法IP地址范圍為202.110.198.80~202.110.198.87,連接ISP的端口Ethernet 1的IP地址為202.110.198.81,子網掩碼為255.255.255.248。要求網絡內部的所有計算機均可訪問Internet,并且在3臺Web服務器和2臺FTP服務器實現負載均衡。
  案例分析:
  既然要求網絡內所有計算機都可以接入Internet,而合法IP地址又只有5個可用,當然可采用端口復用地址轉換方式。本來對服務器通過采用靜態地址轉換,賦予其合法IP地址即可。但是,由于服務器的訪問量太大(或者是服務器的性能太差),不得不使用多臺服務器作負載均衡,因此,必須將一個合法IP地址轉換成多相內部IP地址,以輪詢方式減輕每臺服務器的訪問壓力。
  配置文件:
  interface fastethernet0/1
  ip adderss 10.1.1.1 255.255.252.0 //定義局域網端口IP地址
  duplex auto
  speed auto
  ip nat inside //定義為局域端口
  !
  interface serial 0/0
  ip address 202.110.198.81 255.255.255.248 //定義廣域網端口IP地址
  duplex auto
  speed auto
  ip nat outside //定義為廣域端口
  !
  access-list 1 permit 202.110.198.82 //定義輪詢地址列表1
  access-list 2 permit 202.110.198.83 //定義輪詢地址列表2
  access-list 3 permit 10.1.1.0 0.0.3.255 //定義本地訪問列表3
  !
  ip nat pool websev 10.1.1.2 10.1.1.4 255.255.255.248 type rotary //定義Web服務器的IP地址池,Rotary關鍵字表示準備使用輪詢策略從NAT池中取出相應的IP地址用于轉換進來的IP報文,訪問202.110.198.82的請求將依次發送給web服務器:10.1.1.2、10.1.1.3和10.1.1.4
  ip nat pool ftpsev 10.1.1.8 10.1.1.9 255.255.255.248 type rotary //定義ftp服務器的IP地址池。
  ip nat pool normal 202.110.198.84 202.110.198.84 netmask 255.255.255.248 //定義合法IP地址池,名稱為normal
  ip nat inside destination list 1 pool websev //inside destination list 語句定義與列表1相匹配的IP地址的報文將使用輪詢策略
  ip nat inside destination list 2 pool ftpsev
[編輯本段]受到NAT影響的應用程序
  一些高層協議(比如FTP,Quake,SIP)是在IP包的有效數據內發送網絡層(第三層)信息的。比如,主動模式的FTP使用單獨的端口分別來控制命令傳輸和數據傳輸。當請求一個文件傳輸時,主機在發送請求的同時也通知對方自己想要在哪個端口接受數據。但是,如果主機是在一個簡單的NAT防火墻后發送的請求,那么由于端口的映射將會使對方接收到的信息無效。
  一個應用層網關(Application Layer Gateway或ALG)可以修正這個問題。運行在NAT防火墻設備上的ALG軟件模塊可以更新任何由地址轉換而導致無效的信息。顯然,ALG需要明白它所要修正的上層協議,所以每個有這種問題的協議都需要有一個單獨的ALG。
  但是,除FTP外的大多數傳統的客戶機-服務器協議不需要發送網絡層(第三層)信息,也就不需要ALG。
  這個問題的另一個可能的解決方法是使用象STUN這樣的技術,但是這只針對建立在UDP上的高層協議,并且需要它內建這種技術。這種技術對對稱NAT也是無效的。還有一種可能的方案是UPnP,但它需要和NAT設備配合起來使用。
[編輯本段]NAT的不同類型和NAT影響的應用程序
  NAT的不同類型

  Full cone NAT,亦即著名的一對一(one-to-one) NAT
  一旦一個內部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有發自iAddr:port1的包都經由eAddr:port2向外發送。任意外部主機都能通過給eAddr:port2發包到達iAddr:port1
  Address-Restricted cone NAT
  一旦一個內部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有發自iAddr:port1的包都經由eAddr:port2向外發送。任意外部主機(hostAddr:any)都能通過給eAddr:port2發包到達iAddr:port1的前提是:iAddr:port1之前發送過包到hostAddr:any. "any"也就是說端口不受限制
  Port-Restricted cone NAT
  類似受限制錐形NAT(Restricted cone NAT),但是還有端口限制。
  一旦一個內部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有發自iAddr:port1的包都經由eAddr:port2向外發送。一個外部主機(hostAddr:port3)能夠發包到達iAddr:port1的前提是:iAddr:port1之前發送過包到hostAddr:port3.
  Symmetric NAT(對稱NAT)
  每一個來自相同內部IP與port的請求到一個特定目的地的IP地址和端口,映射到一個獨特的外部來源的IP地址和端口。
  同一個內部主機發出一個信息包到不同的目的端,不同的映射使用
  外部主機收到了一封包從一個內部主機可以送一封包回來
  受到NAT影響的應用程序

  一些高層協議(比如FTP,Quake,SIP,VPN)是在IP包的有效數據內發送網絡層(第三層)信息的。比如,主動模式的FTP使用單獨的端口分別來控制命令傳輸和數據傳輸。當請求一個文件傳輸時,主機在發送請求的同時也通知對方自己想要在哪個端口接受數據。但是,如果主機是在一個簡單的NAT防火墻后發送的請求,那么由于端口的映射將會使對方接收到的信息無效。
  一個應用層網關(Application Layer Gateway或ALG)可以修正這個問題。運行在NAT防火墻設備上的ALG軟件模塊可以更新任何由地址轉換而導致無效的信息。顯然,ALG需要明白它所要修正的上層協議,所以每個有這種問題的協議都需要有一個單獨的ALG。
  但是,除FTP外的大多數傳統的客戶機-服務器協議不需要發送網絡層(第三層)信息,也就不需要ALG。
  這個問題的另一個可能的解決方法是使用象STUN這樣的技術,但是這只針對建立在UDP上的高層協議,并且需要它內建這種技術。這種技術對對稱NAT也是無效的。還有一種可能的方案是UPnP,但它需要和NAT設備配合起來使用[4]


 

 
 
 
合作伙伴
微軟中國 | 聯想集團 | IBM | 蘋果電腦 | 浪潮集團 | 惠普中國 | 深信服 | 愛數軟件 | 華為
六安市永辰科技有限公司 版權所有 © Copyright 2010-2021 All Rights 六安市淠望路103號 最佳瀏覽效果 IE8或以上瀏覽器
訪問量:2667971    皖ICP備11014188號-1
911亚洲天堂,亚洲AV片激情一区二区二三区,久久久久亚洲精品成人小说网,亚洲A∨无码国产精品久久一本