王霞俊
(常州輕工職業(yè)技術(shù)學(xué)院 信息工程與技術(shù)學(xué)院, 常州 213164)
NAT(Network Address Translation,網(wǎng)絡(luò)地址翻譯)[1,2]已經(jīng)成為目前最廣泛應(yīng)用的網(wǎng)絡(luò)技術(shù)之一,是高職院校計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)專業(yè)的必修課程,是信息安全課程和網(wǎng)絡(luò)工程課程的重要內(nèi)容[3-5]。高職院校不僅僅強(qiáng)調(diào)對專業(yè)知識的理論學(xué)習(xí),尤其重視學(xué)生的動手實(shí)踐能力的培養(yǎng)與提高[6-7]。因此,其實(shí)驗(yàn)/實(shí)訓(xùn)實(shí)踐環(huán)節(jié)對課程教學(xué)尤為重要。
針對目前高職院校計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)的現(xiàn)狀和特點(diǎn),依托華三云實(shí)驗(yàn)室(H3C Cloud Lab,HCL又稱為H3C模擬器)模擬仿真實(shí)驗(yàn)平臺,設(shè)計(jì)并實(shí)現(xiàn)了Basic NAT、NAPT、Easy IP、NAT Server 4種實(shí)驗(yàn)方案。這樣一方面通過這種有機(jī)綜合性實(shí)驗(yàn)可以加深學(xué)生對各種NAT相關(guān)技術(shù)的理解和掌握,另一方面也可以減少昂貴網(wǎng)絡(luò)設(shè)備的投入,提高學(xué)生完成實(shí)驗(yàn)的效率[8]。同時,對激發(fā)學(xué)生的學(xué)習(xí)興趣[9,10],提高學(xué)生實(shí)踐動手能力和創(chuàng)新能力,提高教師的教學(xué)研究水平也具有重要意義。
Internet技術(shù)的飛速發(fā)展,使越來越多的用戶加入到互聯(lián)網(wǎng),因此IP地址短缺已成為一個十分突出的問題。NAT(Network Address Translation,網(wǎng)絡(luò)地址翻譯)就是在IP地址日益短缺的情況下提出的[11,12]。
NAT現(xiàn)在已經(jīng)是一個IETF標(biāo)準(zhǔn),允許一個機(jī)構(gòu)以一個地址出現(xiàn)在Internet上。NAT技術(shù)使得一個私有網(wǎng)絡(luò)可以通過Internet注冊公網(wǎng)IP連接到外部世界。其中,位于Inside網(wǎng)絡(luò)和Outside網(wǎng)絡(luò)中NAT由器在發(fā)送數(shù)據(jù)包之前,負(fù)責(zé)把內(nèi)部私有IP地址翻譯成外部合法公網(wǎng)IP地址,反之亦然。NAT技術(shù)也可以應(yīng)用到防火墻技術(shù)里,可以有效的隱藏內(nèi)部局域網(wǎng)中的主機(jī),是一種有效的網(wǎng)絡(luò)安全保護(hù)技術(shù)。同時,NAT可以按照用戶的需要,在局域網(wǎng)內(nèi)部提供給外部FTP、WWW、Telnet等服務(wù)[13-16],如圖1所示。
圖1 NAT的基本工作原理
通過設(shè)計(jì)并實(shí)現(xiàn)Basic NAT、NAPT、Easy IP、NAT Server四種實(shí)驗(yàn)方案,能夠從理論上和實(shí)踐上更好地理解和掌握各種NAT的分類及實(shí)現(xiàn)技術(shù),并且在實(shí)際網(wǎng)絡(luò)中能夠靈活使用NAT技術(shù)。
實(shí)驗(yàn)拓?fù)浣Y(jié)構(gòu)如圖2所示。
圖2 實(shí)驗(yàn)拓?fù)浣Y(jié)構(gòu)
實(shí)驗(yàn)設(shè)備包括2臺H3C MSR 3600路由器2臺、2臺H3C S3600系列以太網(wǎng)交換機(jī)及多臺PC機(jī)。
在此拓?fù)浣Y(jié)構(gòu)中,路由器RTA左側(cè)的網(wǎng)絡(luò)代表私有IP的內(nèi)網(wǎng),路由器RTA右側(cè)以及路由器RTB代表了公網(wǎng)。這里,RTA充當(dāng)了NAT設(shè)備,完成內(nèi)網(wǎng)、外網(wǎng)IP的轉(zhuǎn)換工作。
2.3.1 Basic NAT實(shí)驗(yàn)
1) 基本IP地址和路由配置
依據(jù)圖2實(shí)驗(yàn)組網(wǎng)圖,完成RTA和RTB命名,各接口IP地址的配置,Client_A、Client_B和上Server上的IP地址配置等。
需要在RTA上配置缺省路由去往公網(wǎng)路由器RTB,完整的路由配置為:
[RTA]ip route-static 0.0.0.0 0 198.76.28.2
2) 檢查連通性
分別在Client_A和Client_B上ping Server(IP地址為198.76.29.4),其結(jié)果為無法ping通。產(chǎn)生這種結(jié)果的原因是在公網(wǎng)路由器上不可能有私網(wǎng)的路由,從Server回應(yīng)的ping 響應(yīng)報文到RTB的路由表上無法找到10.0.0.0網(wǎng)段的路由
3) 配置Basic NAT
在RTA上配置Basic NAT:
# 首先,通過ACL定義一條rule,匹配源地址屬于10.0.0.0/24網(wǎng)段的數(shù)據(jù)
[RTA]acl number 2000
[RTA-acl-basic-2000]rule 0 permit source 10.0.0.0 0.0.0.255
# 其次,配置NAT地址池,設(shè)置地址池中用于地址轉(zhuǎn)換的地址范圍為:198.76.28.11到198.76.28.20,在該命令中,數(shù)字1的含義是:地址池的索引號是1
[RTA]nat address-group 1 198.76.28.11 198.76.28.20
# 最后,將地址池與ACL關(guān)聯(lián),并在正確的接口的正確方向上下發(fā)
# 進(jìn)入接口模式視圖
[RTA] interface G0/1
# 將地址池1與acl 2000關(guān)聯(lián),并在接口出方向上應(yīng)用NAT
[RTA- G0/1] nat outbound 2000 address-group 1 no-pat
在該命令中,參數(shù)no-pat的含義是:表示不使用TCP/UDP端口信息實(shí)現(xiàn)多對多地址轉(zhuǎn)換,也即表示使用一對一地址轉(zhuǎn)換,只轉(zhuǎn)換數(shù)據(jù)包的地址而不轉(zhuǎn)換端口信息。
4) 檢查連通性、NAT表項(xiàng)
從Client_A、Client_B分別ping Server,其結(jié)果是可以Ping通。
在RTA上通過display nat session命令查看NAT會話信息,依據(jù)該信息輸出,可以看到該ICMP報文的源地址10.0.0.1已經(jīng)轉(zhuǎn)換成公網(wǎng)地址198.76.28.12,目的端口號和源端口號均為1024。源地址10.0.0.2已經(jīng)轉(zhuǎn)換成公網(wǎng)地址198.76.28.11,目的端口號和源端口號均為512。(注意:每次實(shí)驗(yàn)中顯示的轉(zhuǎn)換后的公網(wǎng)地址和端口號可能不同,這是正?,F(xiàn)象。)五分鐘后再次通過該命令查看表項(xiàng),發(fā)現(xiàn)NAT表項(xiàng)全部消失,產(chǎn)生這種現(xiàn)象的原因是NAT表項(xiàng)具有一定的老化時間(aging-time),一旦超過老化時間,NAT會刪除表項(xiàng)??梢酝ㄟ^display nat aging-time命令查看路由器的NAT默認(rèn)老化時間。
2.3.2 NAPT實(shí)驗(yàn)
私網(wǎng)客戶端Client_A、 Client_B需要訪問公網(wǎng)服務(wù)器Server,但由于公網(wǎng)地址有限(例如只有一個公網(wǎng)IP地址),因此動態(tài)給各客戶端分配不同公網(wǎng)IP地址是不可行的,需要配置NAPT(Network Address Port Translation,網(wǎng)絡(luò)端口地址轉(zhuǎn)換),動態(tài)地為Client_A、Client_B分配一個公網(wǎng)IP地址和協(xié)議端口。
1) 基本IP地址和路由配置
與2.3.1 Basic NAT實(shí)驗(yàn)任務(wù)同樣,配置RTA和RTB相關(guān)接口的IP地址以及路由。
2) 檢查連通性
從Client_A、Client_B上 ping Server(IP地址為198.76.29.4),其結(jié)果是不能ping通的。
3) 配置NAPT
在RTA上配置NAPT:
#首先,通過通過ACL定義一條rule,匹配源地址屬于10.0.0.0/24網(wǎng)段的數(shù)據(jù)
[RTA]acl number 2000
[RTA-acl-basic-2000]rule 0 permit source 10.0.0.0 0.0.0.255
#其次,配置NAT地址池1,地址池中只放入一個地址198.76.28.11
[RTA-acl-basic-2000]nat address-group 1 198.76.28.11 198.76.28.11
#在接口視圖下,將NAT地址池與ACL綁定并下發(fā)
[RTA] interface G0/1
[RTA- G0/1] nat outbound 2000 address-group 1
注意,這里NAPT配置命令中,不需要攜帶no-pat參數(shù),意味著NAT要對數(shù)據(jù)包進(jìn)行端口的轉(zhuǎn)換。
4) 檢查連通性、NAT表項(xiàng)
從Client_A、Client_B上分別ping Server,其結(jié)果是可以ping通。
在RTA上通過display nat session命令查看NAT會話信息,依據(jù)該信息輸出,可以看到源地址10.0.0.1和10.0.0.2轉(zhuǎn)換成的公網(wǎng)地址分別為198.76.28.11和198.76.28.11,10.0.0.1轉(zhuǎn)換后的端口為12289,10.0.0.2轉(zhuǎn)換后的端口為12288。當(dāng)RTA出接口收到目的地址為198.76.28.11的回程流量時,正是用當(dāng)初轉(zhuǎn)換時賦予的不同的端口來分辯該流量是轉(zhuǎn)發(fā)給10.0.0.1還是10.0.0.2。NAPT正是靠這種方式,對數(shù)據(jù)包的IP層和傳輸層信息同時進(jìn)行轉(zhuǎn)換,顯著地提高公有IP地址的利用效率。
2.3.3 Easy IP實(shí)驗(yàn)
私網(wǎng)客戶端Client_A、Client_B需要訪問公網(wǎng)服務(wù)器Server,但沒有公網(wǎng)IP地址可用。所以,只能用路由器公網(wǎng)接口IP地址動態(tài)為Client_A、Client_B分配公網(wǎng)地址和協(xié)議端口。
1) 基本IP地址和路由配置
與2.3.1 Basic NAT實(shí)驗(yàn)任務(wù)同樣,配置RTA和RTB相關(guān)接口的IP地址以及路由。
2) 檢查連通性
從Client_A、Client_B ping Server(IP地址為198.76.29.4),其結(jié)果是無法ping通。
3) 配置Easy IP
在RTA上配置Easy IP:
#首先,通過通過ACL定義一條rule,匹配源地址屬于10.0.0.0/24網(wǎng)段的數(shù)據(jù)
[RTA]acl number 2000
[RTA-acl-basic-2000]rule 0 permit source 10.0.0.0 0.0.0.255
#然后在接口視圖下,將ACL與接口關(guān)聯(lián),并在出方向上應(yīng)用NAT
[RTA] interface G0/1
[RTA- G0/1] nat outbound 2000
4) 檢查連通性、NAT表項(xiàng)
從Client_A、Client_B分別ping Server,其結(jié)果是能夠ping通。
在RTA上通過display nat session命令查看NAT會話信息,依據(jù)該信息輸出,可以看到源地址10.0.0.1和10.0.0.2轉(zhuǎn)換成的公網(wǎng)地址分別為198.76.28.1和198.76.28.1(也就是路由器RTA的公網(wǎng)接口IP地址)。
2.3.4 NAT Server實(shí)驗(yàn)
有時,內(nèi)網(wǎng)的服務(wù)器,如Web、E-mail、FTP等,需要為外部用戶提供服務(wù),前面介紹的Basic NAT、NAPT、Easy IP三種技術(shù)將無法實(shí)現(xiàn)。因?yàn)樵赗TA上始終沒有私有IP 10.0.0.0/24網(wǎng)段的路由,所以Server直接ping Client_A是不可達(dá)的。為了解決私有IP地址無法路由的問題,需要將內(nèi)部網(wǎng)絡(luò)中的每個主機(jī)都被永久映射成外部網(wǎng)絡(luò)中的某個合法的地址,也就是這些內(nèi)網(wǎng)服務(wù)器的私有IP地址必須采用靜態(tài)地址轉(zhuǎn)換成公網(wǎng)IP地址,以便外部用戶可以使用這些服務(wù)。
1) 基本IP地址和路由配置
實(shí)驗(yàn)拓?fù)浣Y(jié)構(gòu)仍如圖2所示,只是Client_A是一個Web服務(wù)器,Client_B是一個FTP服務(wù)器。
完成RTA和RTB命名、各接口IP地址的配置,Client_A、Client_B和上Server上的IP地址配置等。
需要在RTA上配置缺省路由去往公網(wǎng)路由器RTB,完整的路由配置為:
[RTA]ip route-static 0.0.0.0 0 198.76.28.2
2) 檢查連通性
分別在Client_A和Client_B上ping Server(IP地址為198.76.29.4),其結(jié)果為無法ping通。
在Server上ping Client_A和Client_B,其結(jié)果也為無法ping通。
3) 配置NAT Server
在RTA上配置NAT Server:
# 首先,通過通過ACL定義一條rule,匹配源地址屬于10.0.0.0/24網(wǎng)段的數(shù)據(jù)
[RTA]acl number 2000
[RTA-acl-basic-2000]rule 0 permit source 10.0.0.0 0.0.0.255
# 其次,配置NAT地址池,地址范圍為:198.76.28.11到198.76.28.20
[RTA]nat address-group 1 198.76.28.11 198.76.28.20
#進(jìn)入接口模式,在出接口上將私網(wǎng)服務(wù)器地址和公網(wǎng)地址做一對一NAT映射綁定
#將公網(wǎng)地址198.76.28.11與私有地址10.0.0.1一對一NAT映射綁定
[RTA]interface G0/1
[RTA- G0/1]nat server protocol tcp global 198.76.28.11 80 inside 10.0.1.1 80
#將公網(wǎng)地址198.76.28.12與私有地址10.0.0.2一對一NAT映射綁定
[RTA- G0/1]nat server protocol tcp global 198.76.28.12 21 inside 10.0.1.2 21
# 配置Basic NAT,以便其他內(nèi)網(wǎng)機(jī)器可以訪問外網(wǎng)
#將地址池1與acl 2000關(guān)聯(lián),并在接口出方向上應(yīng)用NAT
[RTA- G0/1] nat outbound 2000 address-group 1 no-pat
4) 檢查連通性、查看NAT表項(xiàng)
從Client_A、Client_B分別ping Server,其結(jié)果是能夠ping通。
從Server主動ping Client_A的公網(wǎng)地址198.76.28.11,其結(jié)果是可以ping通。
從Server主動ping Client_B的公網(wǎng)地址198.76.28.12,其結(jié)果是可以ping通。
在Server上,通過瀏覽器訪問http://198.76.28.11和ftp://198.76.28.12,也是可行的。
在RTA上通過display nat server命令查看NAT Server表項(xiàng),表項(xiàng)信息中顯示出地址198.76.28.11和地址10.0.0.1,198.76.28.12和地址10.0.0.2的一對一的映射關(guān)系。
2.3.5 四種實(shí)驗(yàn)方案比較
通過實(shí)驗(yàn)分析,可知,Basic NAT實(shí)現(xiàn)私網(wǎng)地址與公網(wǎng)地址一對一動態(tài)轉(zhuǎn)換。NAPT只定義了一個公網(wǎng)地址,利用不同的端口號來區(qū)分,實(shí)現(xiàn)私網(wǎng)地址與公網(wǎng)地址的多對一轉(zhuǎn)換,適用于撥號接入Internet或動態(tài)獲得IP地址的場合。Easy IP工作原理與普通NAPT相同,是NAPT的一種特例。它直接使用路由器出接口的IP地址作為轉(zhuǎn)換后的源地址,不用預(yù)先配置地址池,適用于出接口地址無法預(yù)知的場合。而NAT Server使公網(wǎng)主機(jī)可以主動連接私網(wǎng)服務(wù)器獲取服務(wù),是一種靜態(tài)NAT,適合于對外提供服務(wù)。
本文研究了NAT技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了Basic NAT、NAPT、Easy IP、NAT Server 4種實(shí)驗(yàn)方案,并在H3C HCL模擬器仿真環(huán)境中給出了詳細(xì)的實(shí)驗(yàn)過程。教學(xué)實(shí)踐表明,這可以使學(xué)生從理論上和實(shí)踐上更好地理解和掌握NAT技術(shù)。在此實(shí)驗(yàn)方案基礎(chǔ)上,可以進(jìn)一步延伸和豐富實(shí)驗(yàn)內(nèi)容。比如,增加多個內(nèi)網(wǎng),添加VLAN、防火墻、ACL、VPN、RIP & OSPF路由協(xié)議等。