大型企業(yè)網(wǎng)絡(luò)配置系列課程詳解(七)
--NAT的配置與相關(guān)概念的理解
實(shí)驗(yàn)背景:隨著接入因特網(wǎng)的計(jì)算機(jī)數(shù)量不斷猛增,IPv4版本地址資源也就愈加顯得捉襟見肘。好多企業(yè)申請(qǐng)的IP地址都是經(jīng)過子網(wǎng)不斷劃分得到的。A類,B類地址基本已用完,而一般的用戶根本就申請(qǐng)不到整段的公網(wǎng)C類地址。如果,要想讓每一個(gè)連入互聯(lián)網(wǎng)的主機(jī)擁有公網(wǎng)的IP地址,在IPv4的年代是根本不可能的事情,而IPv6正在不斷發(fā)展中,IPv4到IPv6的過度還是需要一段時(shí)間的。為了解決這一問題,A類,B類,C類地址里便規(guī)劃出了一部分私有地址(A類:10.0.0.0~10.255.255.255,B類:172.16.0.0~172.31.255.255,C類:192.168.1.0~192.168.255.255)作為企業(yè)內(nèi)部使用,而內(nèi)網(wǎng)與外網(wǎng)之間的轉(zhuǎn)換便用到了現(xiàn)在主流的NAT(Network Adderss Translation)技術(shù)。NAT技術(shù)允許使用私有IP地址的企業(yè)局域網(wǎng)可以透明地連接到像因特網(wǎng)這樣的公網(wǎng)網(wǎng)絡(luò)上。NAT不僅解決了IP地址不足的問題,而且還能夠隱藏內(nèi)部網(wǎng)絡(luò)的細(xì)節(jié),避免來自網(wǎng)絡(luò)外部的攻擊,起到一定的安全作用。當(dāng)然,任何事物,當(dāng)你提高它其中一部分性能的時(shí)候,其它與之關(guān)聯(lián)的性能必然會(huì)有所降低。而企業(yè)內(nèi)部啟用了NAT之后,做NAT轉(zhuǎn)換的路由器必須對(duì)每一個(gè)數(shù)據(jù)包進(jìn)行IP地址處理,從而造成了一定的網(wǎng)絡(luò)延遲。
實(shí)驗(yàn)?zāi)康模?/b>1、通過試驗(yàn)了解NAT的基本原理
2、靜態(tài)NAT的實(shí)現(xiàn)與原理
3、動(dòng)態(tài)NAT的實(shí)現(xiàn)與原理
4、端口多路復(fù)用NAT(PAT)的實(shí)現(xiàn)與原理
5、TCP負(fù)載均衡配置
實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)洌?/b>
實(shí)驗(yàn)步驟:
一、配置模擬公網(wǎng)的基本參數(shù)(由于不是重點(diǎn),點(diǎn)到為止)
為了增加試驗(yàn)的真實(shí)性,選用R6和R7互聯(lián)來模擬公網(wǎng),并且啟用RIP v2(如果,中間路由器多了,還可以啟用OSPF路由協(xié)議),而兩邊的網(wǎng)絡(luò)相當(dāng)于兩個(gè)不同的企業(yè)。(R6和R7配置完成之后,配置內(nèi)網(wǎng)的交換路由設(shè)備時(shí),要想著R6和R7之間的連接就是公網(wǎng),而我們根本就不知道它是如何相連的,我們只需要在企業(yè)內(nèi)部出外網(wǎng)的路由器接口上啟用虛擬撥號(hào)功能進(jìn)行IP地址協(xié)商動(dòng)態(tài)獲得IP地址就可以了,考慮到試驗(yàn)局限性的原因,這里就當(dāng)出外網(wǎng)的路由器接口已經(jīng)通過了虛擬撥號(hào)驗(yàn)證并分配的公網(wǎng)IP地址。因此,接下來只需要配置默認(rèn)路由和NAT就可以連入互聯(lián)網(wǎng)(實(shí)際上是R6和R7之間的互聯(lián))
R6的具體配置:
R7的具體配置:
檢查公網(wǎng)R6和R7是否連接正常:
二、 配置內(nèi)網(wǎng)路由器的基本參數(shù),并啟用默認(rèn)路由(不是重點(diǎn),點(diǎn)到為止)。
R5的具體配置:
注意:配置默認(rèn)路由的時(shí)候,由于根本就不知道公網(wǎng)的存在,所以,下一跳應(yīng)該寫出外網(wǎng)的端口號(hào)。
R10的具體配置:
******************NAT技術(shù)的實(shí)施****************
其實(shí)NAT技術(shù)是可以借助于某些代理服務(wù)器來實(shí)現(xiàn),但企業(yè)考慮到運(yùn)算成本和網(wǎng)絡(luò)性能,很多時(shí)候,都是在路由器上實(shí)現(xiàn)的。當(dāng)內(nèi)網(wǎng)數(shù)據(jù)發(fā)送連接外網(wǎng)的路由器上時(shí)(R5和R10),NAT將自動(dòng)修改IP包頭中的源IP包頭中的源IP地址和目的IP地址,IP地址校驗(yàn)則在NAT處理過程中自動(dòng)完成。NAT支持的業(yè)務(wù)類型和應(yīng)用有HTTP,TFTP,Telnet,NTP,NFS以及任何應(yīng)用數(shù)據(jù)流中不承載源/目的IP地址的TCP/IP業(yè)務(wù);支持在數(shù)據(jù)流中有IP地址的業(yè)務(wù)類型有ICMP,F(xiàn)TP(包括PORT和PASV),TCP/IP上的NetBIOS(數(shù)據(jù)報(bào)、名稱和會(huì)話服務(wù)),DNS,H.323/NetMeeting,IP多播(只轉(zhuǎn)換源地址);不支持的業(yè)務(wù)類型有路由表更新,DNS區(qū)域傳送,BOOTP,talk、ntalk,SNMP,Netshow,VPN。
三、 靜態(tài)NAT的配置:
靜態(tài)NAT轉(zhuǎn)換就是將內(nèi)部網(wǎng)絡(luò)的私有IP地址轉(zhuǎn)換成公有合法的IP地址,IP地址的對(duì)應(yīng)關(guān)系是一對(duì)一的,是不變的,即某個(gè)私有IP地址只能轉(zhuǎn)換成某個(gè)固定的公有IP地址。這種轉(zhuǎn)換一般擁有公司里某些特定的設(shè)備(如服務(wù)器)的訪問,是不能節(jié)省公網(wǎng)IP地址的,但是可以隱藏企業(yè)內(nèi)部服務(wù)器的IP地址,降低外網(wǎng)的攻擊,從而增強(qiáng)內(nèi)部設(shè)備的安全性。
在內(nèi)部局部(內(nèi)網(wǎng)局域網(wǎng)配置的私有地址)和內(nèi)部全局地址(出外網(wǎng)路由器接口的公網(wǎng)地址)之間建立靜態(tài)地址轉(zhuǎn)換,將內(nèi)部局部地址172.16.0.1轉(zhuǎn)換為內(nèi)部全局地址100.100.100.1
設(shè)置NAT功能的路由器需要由一個(gè)內(nèi)部端口(Inside)和一個(gè)外部端口(Outside)。內(nèi)部端口連接的網(wǎng)絡(luò)用戶使用的是內(nèi)部IP地址(私有地址),外部端口連接的外部的網(wǎng)絡(luò)使用的是外部IP地址(公有地址,具有全球唯一性),如因特網(wǎng)。要NAT功能發(fā)揮作用,必須在這兩個(gè)端口上啟用NAT。R5的端口F0/0應(yīng)設(shè)置為Inside,F(xiàn)0/1應(yīng)設(shè)置為Outside;R10的E0/0應(yīng)設(shè)置為Outside,E0/1應(yīng)設(shè)置為Inside。
配置完靜態(tài)NAT之后,使用PC22 ping路由器R10 E0/0接口的IP地址,可以觸發(fā)R5上數(shù)據(jù)流量的通過,R5上的靜態(tài)NAT轉(zhuǎn)換表便會(huì)生成。在特權(quán)模式下使用show ip nat translation便可以查看靜態(tài)NAT的統(tǒng)計(jì)信息,也可以在其它模式下使用do show ip nat translation查看。
(注意:Pro是協(xié)議的意思,Inside global是內(nèi)部局部IP地址,Inside local是內(nèi)部全局IP地址,Outside local是外部局部IP地址(由其所有者給外部網(wǎng)絡(luò)上的主機(jī)分配的IP地址),Outsid global是外部全局IP地址(外部主機(jī)表現(xiàn)在內(nèi)部網(wǎng)絡(luò)的IP地址))
這里引用一個(gè)很形象的例子(書上一段話)加以說明:
其實(shí),NAT地址轉(zhuǎn)換就像這個(gè)過程,這些地址就是我們穿的鞋子。內(nèi)部局部地址就是我們回家之后在家里穿的拖鞋,只能在家里穿不能穿出門,而內(nèi)部全局地址則是我們出門要穿的皮鞋,出門換上進(jìn)家脫下來;外部地址就是來家里拜訪的客人所穿的鞋子,外部全局地址是客人穿來的皮鞋,到了我們家里要換上我們專門為他準(zhǔn)備的拖鞋—外部局部地址,而客人離開的時(shí)候,就得換回他自己的皮鞋才能出門。其中,我們自己的皮鞋和客人的皮鞋不能混穿,我們自己的拖鞋和客人的拖鞋不能混穿。這就是4中類型的地址之間的關(guān)系。
注意:也可以使用主機(jī)PC22 ping 主機(jī)PC23的私有地址192.168.1.1(理論是ping不通的,實(shí)驗(yàn)也證明了這一點(diǎn))。
四、 動(dòng)態(tài)NAT的配置:
動(dòng)態(tài)NAT是指將內(nèi)部網(wǎng)絡(luò)的私有地址轉(zhuǎn)換為公有地址時(shí),IP地址對(duì)應(yīng)關(guān)系是不確定的、隨即的,所有被授權(quán)訪問因特網(wǎng)的私有地址可隨即轉(zhuǎn)換為任何指定的合法地址。當(dāng)ISP(網(wǎng)絡(luò)服務(wù)提供商)提供的合法地址少于網(wǎng)絡(luò)內(nèi)部的計(jì)算機(jī)數(shù)量時(shí),可以采用動(dòng)態(tài)轉(zhuǎn)換的方式。
在配置動(dòng)態(tài)NAT之前,最后將剛才配置的靜態(tài)NAT刪除,以免給動(dòng)態(tài)NAT造成影響。
如果刪除不掉剛才配置的靜態(tài)NAT,可以使用clear ip nat translation * 命令來清除NAT轉(zhuǎn)換表中的所有條目。清除完之后,可以使用show ip nat translation 命令進(jìn)行查看。如果要清除NAT轉(zhuǎn)換表中的某一條目,可以使用clear ip nat translation inside local-ip global-ip命令。
接下來配置動(dòng)態(tài)NAT:
首先,第一條命令是定義一個(gè)ACL條目,允許172.16.0.0/16段的網(wǎng)絡(luò)通過連接外網(wǎng)的路由器(注意:這里配置有點(diǎn)誤區(qū),將172.16.0.0/16配置成為一個(gè)子網(wǎng)172.16.0.0/24。但是,測(cè)試主機(jī)172.16.0.1和172.16.0.2即屬于172.16.0.0/16段同時(shí)也屬于172.16.0.0/24段里的IP地址,對(duì)試驗(yàn)不會(huì)造成太大的影響,希望引起注意。正確的配置應(yīng)該是access-list 2 permit 172.16.0.0 0.0.255.255)。
第二條命令是定義一個(gè)合法IP地址池。語法為: “ Router(config)#ip nat pool pool-name star-ip end-ip {netmask netmask|prefix-length prefix-length} [type rotary] ”其中pool-name是定義的地址池名稱,star-ip到end-ip是地址池范圍,netmask是子網(wǎng)掩碼,prefix-length是子網(wǎng)掩碼的另外一種表示方法,type rotary為地址池中的地址可以循環(huán)使用。
第三條命令是實(shí)現(xiàn)網(wǎng)絡(luò)地址轉(zhuǎn)換。將由access-list指定的內(nèi)部局部地址與指定的內(nèi)部全局地址池進(jìn)行地址轉(zhuǎn)換。語法為Router(config)#ip nat inside source list access-list-number pool pool-name [overload],其中access-list-number是剛才定義的ACL編號(hào),pool-name是剛才定義的地址池名稱,overload使用地址復(fù)用,用于PAT。
R5的具體配置:
定義ACL的access-list-number為2,地址池名稱為pool-2,范圍為100.100.100.5~100.100.100.6
R10的具體配置:
定義ACL的access-list-number為1,地址池名稱為pool-1,范圍為200.200.200.5~200.200.200.6(注意:其中第二條命令后面出現(xiàn)了個(gè)$,表明此條命令太長(zhǎng),被縮減,正確的配置應(yīng)該為ip nat pool pool-1 200.200.200.5 200.200.200.6 netmask 255.255.255.0)
配置完成之后,同樣,使用PC22 ping 100.100.100.2。然后將PC22的IP地址改為172.16.0.2和172.16.0.3,也就相當(dāng)于有三臺(tái)主機(jī)觸發(fā)了R5上的NAT流量。然后,在路由器R5上使用show ip nat translations命令查看NAT轉(zhuǎn)換表,可以發(fā)現(xiàn)只顯示了172.16.0.1和172.16.0.2,而172.16.0.3是ping不通100.100.100.2的,原因是172.16.0.1和172.16.0.2都占用了所以的公網(wǎng)IP地址池,如果想要172.16.0.3ping通100.100.100.2,而且NAT列表里有這項(xiàng)條目,可以使用clear ip nat translations清空NAT列表,然后再使用。同樣,172.16.0.1~172.16.0.3都ping不通私網(wǎng)IP:192.168.0.0網(wǎng)段。
五、 PAT的配置:
PAT(Port Address Translation端口多路復(fù)用)是改變外出數(shù)據(jù)包的源IP地址和源端口并進(jìn)行端口轉(zhuǎn)換,即端口地址轉(zhuǎn)換采用端口多路復(fù)用方式。內(nèi)部網(wǎng)絡(luò)的所以主機(jī)均可共享一個(gè)合法外部IP地址實(shí)現(xiàn)因特網(wǎng)的訪問,從而可以最大限度地節(jié)約IP地址資源。同時(shí),又可以隱藏網(wǎng)絡(luò)內(nèi)部的所有主機(jī),以有效地避免來自因特網(wǎng)的攻擊。因此,目前網(wǎng)絡(luò)中使用最多的就是端口多路復(fù)用方式。而內(nèi)部局部地址是通過TCP或UDP端口號(hào)來彼此區(qū)分的。
首先清除動(dòng)態(tài)NAT轉(zhuǎn)換表,然后將剛才配置過的命令刪除掉,以免給PAT配置造成影響。
PAT的配置和動(dòng)態(tài)NAT的配置基本相同,就是在實(shí)現(xiàn)網(wǎng)絡(luò)地址轉(zhuǎn)換的時(shí)候,需要在命令后面加上overload參數(shù)。以R5為例,下面第一條命令是定義一個(gè)ACL 10允許172.16.0.0/24的網(wǎng)段通過R5出外網(wǎng),第二條命令設(shè)置的地址池名字為onlyone-2 范圍為100.100.100.1~100.100.100.1,也就是100.100.100.1,第二條命令也可以用“ip nat pool .lyone-2 fastethernet 0/1 overload”代替,其中,fastethernet 0/1就是路由器R5連接公網(wǎng)的端口。
配置完成之后,同樣,使用PC22 ping 100.100.100.2。然后將PC22的IP地址改為172.16.0.2、172.16.0.3和172.16.0.4,也就相當(dāng)于有三臺(tái)主機(jī)觸發(fā)了R5上的NAT流量。然后,在路由器R5上使用show ip nat translations命令查看NAT轉(zhuǎn)換表,可以發(fā)現(xiàn),只要是172.16.0.0段的IP地址都被轉(zhuǎn)換成了公網(wǎng)IP:100.100.100.1,而他們之間就是靠IP后面端口號(hào)來區(qū)分的。
六、 TCP負(fù)載均衡配置:
TCP負(fù)載均衡是指利用NAT技術(shù),用對(duì)外的虛擬IP地址來代表多個(gè)同樣的服務(wù)器,本實(shí)驗(yàn)以四臺(tái)WEB服務(wù)器(其實(shí)只用了一臺(tái)WEB服務(wù)器(PC23用了四次),內(nèi)網(wǎng)主機(jī)訪問之后,將其IP地址改成地址池里的其它IP地址而得到的)為例進(jìn)行說明。
假如現(xiàn)在在192.168.1.0網(wǎng)段有四臺(tái)WEB服務(wù)器(由PC23不斷改變IP地址充當(dāng))IP地址分別為172.16.0.10、172.16.0.11、172.16.0.12、172.16.0.13,使用一個(gè)虛擬主機(jī)172.16.0.100來代表這個(gè)服務(wù)器組。要求利用NAT技術(shù)在3個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡。
第一條命令是:在R5上建立一個(gè)ACL 30,并允許虛擬主機(jī)172.16.0.100通過。
第二條命令是:配置虛擬主機(jī)對(duì)于真實(shí)主機(jī)的連續(xù)地址池為172.16.0.10~172.16.0.13,并命名為real-host,設(shè)置網(wǎng)絡(luò)前綴長(zhǎng)度為16,且該地址集為循環(huán)(rotary)型。由于地址過長(zhǎng),type后面省略的是rotary。
第三條命令是:設(shè)置訪問控制列表 30與NAT地址集real-host之間的映射。
接下來需要在R10上做一個(gè)靜態(tài)的地址映射,將虛擬主機(jī)地址172.16.0.100映射到連接外網(wǎng)的端口上,并啟用80端口。命令為:“ip nat inside source static tcp 172.16.0.100 80 200.200.200.2 80。 并啟用http服務(wù)功能。
本文出自 “小諾的Linux開源技術(shù)博客” 博客,請(qǐng)務(wù)必保留此出處http://dreamfire.blog.51cto.com/418026/130905