CISCO NAT 經(jīng)典配置合集(5個)示例1
在本例中,,公司使用一臺兩接口路由器,,一個是Ethernet,,另一個是串行接口。Ethernet0連接到內(nèi)部網(wǎng)絡(luò),,而串行接口則通過PPP鏈路連接到ISP路由器,。在內(nèi)部網(wǎng)絡(luò)中,公司使用10.0.0.0/24地址范圍內(nèi)的地址,。公司已從其供應(yīng)商那里獲得了一個單一的全局可路由的IP地址171.100.1.1,,并且該地址用于路由器的串行接口上。公司使用PAT將其所有的內(nèi)部本地地址轉(zhuǎn)換成單一的內(nèi)部全局地址171.100.1.1,。公司希望提供可以從Internet訪問的FTP和Web服務(wù)器,并且對Web服務(wù)器的請求應(yīng)被送到Web服務(wù)器所在的地址10.1.1.100,,而FTP請求則被送到FTP服務(wù)器所在的地址10.1.1.101,。 1 解決方案 inte***ce ethernet0 ip address 10.1.1.1 255.255.255.0 ip nat inside ! inte***ce serial0 ip address 171.100.1.1 255.255.255.252 ip nat outside ! ip access-list permit 10.0.0.0 0.255.255.255 ! ip nat inside source list 1 inte***ce serial0 overload ip nat inside source list 1 static tcp 10.1.1.100 80 171.100.1.1 80 ip nat inside source list 1 static tcp 10.1.1.101 21 171.100.1.1 21 2 分析 先定義NAT所用的接口,,并通過將合適的命令放在每個接口下面來定義接口是NAT內(nèi)部或外部接口,。通常,在定義NAT接口之后,,就要定義NAT池來指定所用的內(nèi)部全局地址。但是,,在本例中只使用了一個單一的內(nèi)部全局地址,并且將該單一內(nèi)部全局地址用于路由器的serial 0接口上,。由于只有一個單一內(nèi)部全局地址并且用于路由器自己的接口上,,所以我們不需要定義NAT池。我們只簡單地使用示例中所示的inside source list語句即可。所定義源列表使用路由器接口的IP地址,,并且超載該單一IP地址。該命令允許來自10.0.0.0/24網(wǎng)絡(luò)的內(nèi)部主機(jī)訪問Internet,。路由器執(zhí)行PAT來創(chuàng)建TCP / UDP端口的NAT映射,。完成該步以后,接下來需要為內(nèi)部Web和FTP服務(wù)器創(chuàng)建靜態(tài)映射,。 由于只有一個單一的內(nèi)部全局IP地址,,因此要根據(jù)IP地址以及TCP或UDP端口來定義靜態(tài)映射。在本例中,,將目的地址為171.100.1.1和目的TCP端口為80的報文地址轉(zhuǎn)換成TCP端口80上的10.1.1.100內(nèi)部主機(jī)地址。我們還將目的地址為171.100.1.1和目的TCP端口為21的報文地址轉(zhuǎn)換成TCP端口21上的10.1.1.101內(nèi)部主機(jī)地址。這樣我們就在不同的內(nèi)部服務(wù)器上提供了Web和FTP服務(wù),,雖然我們只有一個單一的內(nèi)部全局地址,。注意,由于該命令語法允許指定內(nèi)部服務(wù)器的IP地址和端口,,所以可以在內(nèi)部提供多個Web和FTP服務(wù)器。例如,,可以創(chuàng)建如下的靜態(tài)映射: ip nat inside source static tcp 10.1.1.102 21 21.171.100.1 27 該轉(zhuǎn)換*作將所有目的地址為171.100.1.1且目的端口為27的向內(nèi)報文的地址轉(zhuǎn)換為FTP端口上的地址10.1.1.102,。當(dāng)然,,我們必須保證,,外部用戶能夠知道我們的FTP服務(wù)器使用非標(biāo)準(zhǔn)的端口,,而大多數(shù)的FTP客戶機(jī)都提供這一能力,。顯然公司可以使用各種不同的端口轉(zhuǎn)換方法來提供服務(wù),即使公司只有一個全局可路由的IP地址,。這些方法使Cisco NAT的功能更加強(qiáng)大,。 示例2 在本例中,,某公司使用一臺具有兩個Ethernet的路由器,。Ethernet0連接到內(nèi)部網(wǎng)絡(luò),而Ethernet1則連接到一個LAN網(wǎng)段,。公司與其ISP的路由器共享該網(wǎng)段,。在內(nèi)部網(wǎng)絡(luò)中,公司使用10.0.0.0/24地址空間中的地址。公司為自己提供一個IP地址或171.100.1.0/24。公司路由器的接口使用IP地址171.100.1.1,,而ISP路由器接口則使用IP地址171.100.1.2,,而將那些從171.100.1.0/24開始的其余地址留給NAT轉(zhuǎn)換。公司希望在路由器上使用必要的命令,,以使其內(nèi)部用戶能夠使用ISP所提供的地址空間中的有效,,全局可路由的地址,,以訪問Internet,。 1 解決方案 interface ethernet0 ip address 10.1.1.1 255.255.255.0 ip nat inside ! interface Ethernet1 ip address 171.100.1.1 255.255.255.0 ip nat outside ! ip access-list 1 permit 10.0.0.0 0.255.255.255 ! ip nat pool internet 171.100.1.3 171.100.1.254 netmask 255.255.255.0 ! ip nat inside source list 1 pool internet 2 分析 在該方案中定義了用于NAT的接口。通過將相應(yīng)的命令放在每個接口下面,,指定該接口是一個NAT外部接口或內(nèi)部接口。這是配置NAT的第一步,。如果讀者不將接口指定為一個NAT內(nèi)部或NAT外部接口,或者指定的不正確,,則NAT就不能正確工作。如果不定義NAT接口,,NAT根本不工作,并且debug ip nat detail命令也不會輸出任何結(jié)果,。如果讀者已定義了所有其他的NAT命令,,但NAT還是不工作,則確認(rèn)每個接口下面的所放的NAT命令是否合理,。 在每個接口下面定義了合適的NAT命令之后,就可以定義存放內(nèi)部全局地址的NAT池,。我們定義的起始IP地址是171.100.1.3,,而結(jié)束地址為171.100.1.254,。我們不使用.1和.2地址是因為這兩個地址分別用于用戶路由器和ISP路由器。由于這兩個地址也與用戶路由器上的Ethernet1接口所在的子網(wǎng)是同一子網(wǎng)地址,,用戶路由器將使用自己的MAC地址回答來自ISP路由器的ARP請求,。這允許ISP路由器從NAT池中解析出IP地址,,并使用從NAP池中取出的目的IP地址將報文發(fā)送給用戶路由器。 注意,,MAT地址池并非必須來自與用戶路由器接口上所配置的子網(wǎng)相同,。 示例3 在本例中,公司使用一臺具有兩個接口的路由器,,分別是以太網(wǎng)和串行接口,。Ethernet0連接到內(nèi)部網(wǎng)絡(luò),而串行接口則通過點(diǎn)到點(diǎn)協(xié)議(PPP)鏈路連接到ISP路由器,。在內(nèi)部網(wǎng)絡(luò)中,公司使用的地址來自地址空間10.0.0.0/24,,該地址空間在Internet上是不可路由的,。公司自己使用IP地址范圍171.100.1.0/24,。到ISP的PPP鏈路使用來自198.50.1.0/30子網(wǎng)的地址,。公司希望在路由器上配置合適的命令,,以便內(nèi)部用戶可以通過使用有效的、全局可路由的地址訪問Internet,。這些地址應(yīng)該是來自ISP所提供的地址空間171.100.1.0/24,。我們打算與上游的ISP路由器交換OSPF(開放式最短路徑優(yōu)先)更新信息,。從而可以從該路由器接收缺省路由,,并將其通知ISP路由器,,該路由正在公司路由器上使用,。 1 解決方案1 interface ethernet0 ip address 10.1.1.1 255.255.255.0 ip nat inside ! interface serial0 ip address address 198.50.1.1 255.255.255.252 ip nat outside ! ip access-list 1 permit 10.0.0.0 0.255.255.555 ! ip nat pool internet 171.100.1.1 171.100.1.254 netmask 255.255.255.0 ! ip nat inside source list 1 pool internet ! ip route 171.100.1.0 255.255.255.0 null0 ! router ospf 1 network 198.50.1.0 0.0.0.255 area 0 redistribute static 2 解決方案2 interface loopback 0 ip address 171.100.1.1 255.255.255.0 ip ospf network point-to-point ! interface ethernet0 ip address 10.1.1.1 255.255.255.0 ip nat inside ! interface serial0 ip address address 198.50.1.1 255.255.255.252 ip nat outside ! ip access-list 1 permit 10.0.0.0 0.255.255.555 ! ip nat pool internet 171.100.1.1 171.100.1.254 netmask 255.255.255.0 ! ip nat inside source list 1 pool internet ! ip route 171.100.1.0 255.255.255.0 null0 ! router ospf 1 network 198.50.1.0 0.0.0.255 area 0 network 171.100.1.0 0.0.0.255 area 0 3 分析 在解決方案1中,先定義了用于NAT的接口,,并通過將合適的命令放在每個接口下面,,來指定該接口是一個NAT內(nèi)部或外部接口。在每個接口下面定義了適當(dāng)?shù)腘AT命令之后,,再定義內(nèi)部全局地址所在的NAT池,。定義全局地址的起始IP地址為171.100.1.1,結(jié)束IP地址為171.100.1.254,。我們使用除.1和.2地址之外的所有主機(jī)地址,,是因為這些主機(jī)地址都不用于路由器接口,。通過在NAT池中使用與用戶路由器接口所用子網(wǎng)不同的子網(wǎng),可以獲得一些主機(jī)地址,。但這又引入了一個新的問題,。 在前一個示例中,ISP路由器直接連接到分配給NAT池的子網(wǎng)上,。這種情況下,,ISP路由器只發(fā)出一個ARP請求,以請求NAT池中的單個NAT地址,,而用戶路由器則使用自己的MAC地址來響應(yīng),,此時工作正常。但是,,上游的ISP路由器并不直接連接到NAT地址池子網(wǎng)171.100.1.0/24,所以必須告訴它如何通過路由協(xié)議或靜態(tài)路由的方法到達(dá)NAT池所在的子網(wǎng),。在解決方案1中,,我們啟用了OSPF并且為171.100.1.0/24重新分配一個靜態(tài)路由到OSPF中,。上游的ISP路由器會接收到該路由,并且將所有目的地址為NAT池中地址的報文轉(zhuǎn)發(fā)到我們的路由器中,。 可選地,,ISP可以在其路由器上安裝一個靜態(tài)路由,用來將所有171.100.1.0/24網(wǎng)絡(luò)的報文指向我們的路由器,。但是,,我們希望:當(dāng)NAT池地址不是直接從相連的子網(wǎng)上取出時,能夠顯示出路由信息的傳播路徑,。注意,我們將整個171.10.10/24子網(wǎng)的NAT地址表置為null0,。由于我們要指定NAT地址表中的某些表項,,而非整個171.100.1.0/24子網(wǎng),,這時路由器并不丟棄這些報文,而是將它們轉(zhuǎn)發(fā)到NAT表中所定義的內(nèi)部主機(jī)上,。 在解決方案2中,,我們使用了另一種方法來通知ISP路由器有關(guān)NAT池的信息,。這種方法是創(chuàng)建一個閉環(huán)(loopback)接口,并給其分配一個NAT池中的IP地址,。通過將network171.100.1.00.0.0.255 area 0語句包含在我們的OSPF路由進(jìn)程下面,,可以將該閉環(huán)地址作為OSPF路由的一部分,。注意,,我們將.1地址從NAT池中刪除,而使用主機(jī)地址.2作為NAT池的起始地址,,這樣就減少了NAT池地址和用于閉環(huán)接口上的IP地址重疊的可能性。另外,,我們在閉環(huán)接口下面使用接口命令ip ospf ntwork point-to-point,。一般地,,OSPF將閉環(huán)接口看成是一個OSPF樁(stub)網(wǎng)絡(luò),并且將接口的32位表項作為路由,,而非整個子網(wǎng)。在本例中,,OSPF進(jìn)程會發(fā)送172.100.1.1/32而非表172.100.1.0/24。在這種情況下,,由于需要將整個171.100.1.0/24子網(wǎng)信息傳送給上游的ISP路由器,所以該地址轉(zhuǎn)換過程不能工作。OSPF接口命令告訴OSPF傳送該接口的路由,,就像該網(wǎng)絡(luò)是點(diǎn)到點(diǎn)網(wǎng)絡(luò)一樣,而不像是一個樁(stub)網(wǎng)絡(luò),。這意味著它將通過OSPF傳送整個171.100.1.0/24子網(wǎng)信息(ip ospf network point-to-point命令在IOS版本11.3或更高版本中使用),,這兩種方法都能正常工作,但使用哪一種則是讀者的偏好問題了,。 注意:我們知道一個公司通常會在其路由器和ISP路由器之間運(yùn)行邊界網(wǎng)關(guān)協(xié)議(Border Gateway Protocol, BGP),。在本例中,,我們選擇了OSPF路由協(xié)議,,目的是為了分析ip ospf network point-to-point命令。 示例4 在本例中,,公司與示例2中的公司相同,但情況稍有不同,。這里公司處于Internet環(huán)境中,,它決定提供一個能從Internet訪問的Web服務(wù)器,以便那些瀏覽Web的用戶能夠了解公司,。該服務(wù)器位于內(nèi)部網(wǎng)絡(luò)中,并且能夠從Internet上的主機(jī)訪問該服務(wù)器,。這樣它將擁有IP地址10.1.1.100。由于Web服務(wù)器必須能夠通過Internet來訪問,所以這個源IP地址在轉(zhuǎn)發(fā)給ISP路由器之前,,必須被轉(zhuǎn)換成內(nèi)部全局緩沖池中的地址,。我們?yōu)楣網(wǎng)eb服務(wù)器選擇171.100.1.100作為其轉(zhuǎn)換成的內(nèi)部全局地址,。 如示例2那樣,Ethernet0連接到內(nèi)部網(wǎng)絡(luò),,而串行接口則通過PPP鏈路連接到ISP路由器。在內(nèi)部網(wǎng)絡(luò)中,,公司使用10.0.0.0/24中的地址,而全局池中的IP地址范圍是171.100.1.0/24,。在本例中,我們將假定ISP使用靜態(tài)路由來找到我們的路由器,,其中路由器地址在172.100.1.0/24地址范圍內(nèi)。并且ISP將該路由傳送到Internet上,。 1 解決方案 interface ethernet0 ip address 10.1.1.1 255.255.255.0 ip nat inside ! interface serial0 ip address 198.50.1.1 255.255.255.252 ip nat outside ip access-list 1 permit 10.0.0.0 0.255.255.255 ! ip nat pool internet prefix-length 24 address 171.100.1.1 171.100.1.99 address 171.100.1.101 171.100.1.254 ! ip nat inside source static 10.1.1.100 171.100.1.100 ip nat inside source list 1 pool internet 2 分析 如其他示例那樣,,我們在使用任何其他NAT命令之前,,應(yīng)先定義NAT內(nèi)部和外部接口。而后需要配置NAT池地址和NAT源列表,,以允許能夠從池中獲得地址,。本例與示例2的不同之處在于:我們需要為Web服務(wù)器設(shè)置IP地址171.100.1.100,。另外,,必須在內(nèi)部全局地址和內(nèi)部本地地址之間給出靜態(tài)映射關(guān)系,。不然的話,就不能保證NAT表中的NAT轉(zhuǎn)換會將NAT池中的特定IP地址映射到Web服務(wù)器,。這也意味著無法從Internet上知道應(yīng)該使用哪個地址才能到達(dá)Web服務(wù)器,,顯然這是毫無用處的。 注意,,我們在配置中使用ip nat inside source static 命令,,以建立10.1.1.100和171.100.1.100之間的靜態(tài)映射,。注意到在本例中NAT池的語法有些不同。Cisco已擴(kuò)展了NAT語法,,所以可以拆分NAT池所用的IP地址范圍,。我們定義了兩個不同的地址范圍:從171.100.1.1到171.100.1.9 9,以及從171.100.1.1 0 1到171.100.1.254,。所以我們可以將IP地址171.100.1.100從NAT池中排除出去,因為我們使用該地址進(jìn)行靜態(tài)轉(zhuǎn)換,。我們使用ip nat inside source list命令來定義IP地址,,以允許該IP地址從NAT池中獲取相應(yīng)的IP地址,。注意,至此,,只使用了標(biāo)準(zhǔn)IP訪問表來定義IP地址,。也可以使用一個擴(kuò)展的IP訪問表,,在本章后面的示例中會涉及到。 示例5 在本例中,,公司使用一臺兩接口路由器,一個Ethernet和一個串行接口,。其中Ethernet0連接到內(nèi)部網(wǎng)絡(luò),而串行接口則通過PPP鏈路連接到ISP路由器,。在內(nèi)部網(wǎng)絡(luò)中,,公司使用10.0.0.0/24地址空間中的地址,該地址在Internet上不能路由,。公司還提供了IP地址范圍171.100.1.0/24,,用以創(chuàng)建全局可訪問的Web服務(wù)器,。公司認(rèn)為他們將有大量的Web服務(wù)器連接,,但服務(wù)器只是一個低端服務(wù)器。并且公司并不打算買更多的機(jī)器,,因為公司已經(jīng)花費(fèi)了大量資金來購買硬件設(shè)備,。公司希望只使用少數(shù)幾臺服務(wù)器,并且對于外界看來應(yīng)該就像是一臺服務(wù)器一樣,。換句話說,公司希望發(fā)送到一個內(nèi)部全局地址上的報文能被轉(zhuǎn)換成多個內(nèi)部本地地址,。 1 解決方案 interface ethernet0 ip address 10.1.1.1 255.255.255.0 ip nat inside ! interface serial0 ip address 198.50.1.1 255.255.255.252 ip nat outside ! ip access-list 1 permit 171.100.1.100 ! ip nat pool web-farm 10.1.1.2 10.1.1.4 prefix-length 29 type rotary ! ip nat inside destination list 1 pool web-farm 2 分析 我們先定義用于NAT的接口,,并通過將合適的命令放在每個接口下面,來確定這些接口是NAT內(nèi)部接口,,還是外部接口。在每個接口下面定義了合適的NAT命令之后,,接著定義NAT池,。在非本例的情況下,NAT池的Web地址標(biāo)識了公司所有的Web服務(wù)器的內(nèi)部本地地址,。注意,在本例中我們使用參數(shù)prefix-length而非netmask,。值為29的prefix-length等價于掩碼參數(shù)值255.255.255.248,。再注意rotary關(guān)鍵字的使用。這表明了我們打算使用round-robin策略從NAT池中取出相應(yīng)的IP地址用于轉(zhuǎn)換進(jìn)來的IP報文,。 在定義了NAT池之后,我們繼續(xù)定義將從rotary池中選中的IP地址,。我們定義一個inside destination list語句,而不使用inside source list語句,。其中inside destination list語句定義了其IP的地址匹配訪問表1的報文將使用round-robin策略,,將其目的地址轉(zhuǎn)換成rotary池中定義的池地址,。在這種情況下訪問表1將匹配一個單一的IP地址171.100.1.100,。這樣,,具有171.100.1.100目的地址的報文會將其目的IP地址修改為:路由器使用輪詢策略從rotary池中所取出的地址,。這允許使用3個內(nèi)部服務(wù)器來接收目的地址為171.100.1.100的向內(nèi)報文,。所有這三個內(nèi)部Web服務(wù)器將分擔(dān)發(fā)送到該單一全局地址上的請求,。著重指出的是路由器不會保證三臺Web服務(wù)器都是正常的。如果某臺服務(wù)器故障,,路由器仍會向該服務(wù)器發(fā)送報文,。如果需要功能更完善的解決方案,,則Cisco有一種稱為本地導(dǎo)向器(Local Director)的產(chǎn)品,,它可以用來確定池中的服務(wù)器是否正常工作。 |
|