「乾貨」網絡地址轉換技術詳解(三)

網絡地址轉換(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地址略少於網絡內部的計算機數量時。可以採用動態轉換的方式。

端口多路複用(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 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-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 3 pool chinanet

如果有多個地址池,也可以一一添加,以增加合法地址池範圍,如

ip nat insde source list 1 pool cernet

ip nat insde source list 2 pool cernet

ip nat insde source list 3 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

ip nat outside

第二步,設置內部端口。

interface ethernet 0

ip address 10.100.100.1 255.255.255.0

ip nat inside

第三步,定義合法IP地址池。

ip 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地址http://www.1525.net,則應當分別鍵入起止的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.0.0.255。

第五步,設置複用動態地址轉換。

在全局設置模式下,設置在內部的本地地址與內部合法IP地址間建立複用動態地址轉換。命令語法如下:

ip nat inside source list訪問列表號pool http://www.k65.cc內部合法地址池名字overload

示例:

ip nat inside source list1 pool onlyone overload //以端口複用方式,將訪問列表1中的私有IP地址轉換為onlyone IP地址池中定義的合法IP地址。

注意:overload是複用動態地址轉換的關鍵詞。

至此,端口複用動態地址轉換完成


分享到:


相關文章: