CISCO NAT 經典配置合集

CISCO NAT 經典配置合集
網絡學習   2009-05-20 13:43   閱讀229   評論1  
字號:    
ip nat inside source
Translates the source of IP packets that are traveling inside to outside.
Translates the destination of the IP packets that are traveling outside to inside.

ip nat outside source
Translates the source of the IP packets that are traveling outside to inside.
Translates the destination of the IP packets that are traveling inside to outside.

ip nat inside destination
Translates the destination of IP packets that are traveling inside to outside.
Translates the source of the IP packets that are traveling outside to inside.

ip nat outside destination
Translates the destination of the IP packets that are traveling outside to inside.
Translates the source of the IP packets that are traveling inside to outside.


ip nat inside 是對配置了ip nat inside的接口的數據包進行nat轉換,相應的ip nat outside是對配置了ip nat outside的接口的數據包進行nat轉換。


而source和destination是對數據包的源地址活着目的地址進行轉換。

NAT基礎知識
  ● NAT簡介
  NAT(Network Address Translation)的功能,就是指在一個網絡內部,根據需要可以隨意自定義的IP地址,而不需要經過申請。在網絡內部,各計算機間通過內部的IP地址進行通訊。而當內部的計算機要與外部internet網絡進行通訊時,具有NAT功能的設備(比如:路由器)負責將其內部的IP地址轉換爲合法的IP地址(即經過申請的IP地址)進行通信。
  ● NAT 的應用環境:
  情況1:一個企業不想讓外部網絡用戶知道自己的網絡內部結構,可以通過NAT將內部網絡與外部Internet 隔離開,則外部用戶根本不知道通過NAT設置的內部IP地址。
  CISCO NAT經典基礎配置
  ● 全部採用端口:ISP分配的IP202.99.160.129
interface fastethernet0/0
ip address 192.168.1.1 255.255.255.0
duplex auto
speed auto
in nat inside
no shutdown

interface fastethernet0/1
ip address 192.168.2..1 255.255.255.0
duplex auto
speed auto
in nat outside
no shutdown

ip nat pool OnlyYou 202.99.160.130 202.99.160.130 netmask 255.255.255.252
//OnlyYou代表地址池的名稱。 2個202.99.160.130是代表只用一個ip做轉換後ip.
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.2.0 0.0.0.255
ip nat inside source list1 pool OnlyYou overload
  ● 動態地址轉換+端口:ISP分配的IP 有:202.99.160.130~190 255.255.255.192
Interface fastethernet0/1
Ip address 192.168.1.1 255.255.255.0
Ip address 192.168.2.1 255.255.255.0 secondary
Duplex auto
Speed auto
Ip nat inside
No shutdown

Interface serial 0/0
Ip address 202.99.160.129 255.255.255.192
Duplex auto
Speed auto
Ip nat outside
No shutdwon

Ip nat pool OutPort 202.99.160.190 202.99.160.190 netmask 255.255.255.192
Ip nat pool OutPool 202.99.160.130 202.99.160.190 netmask 255.255.255.192
Ip nat inside source list1 pool OutPort //192.168.1.0段主機全部轉成202.99.160.190
Ip nat inside source list2 pool OutPool
//出於訪問ftp站點等考慮:192.168.2.0和192.168.3.0段主機全部
//轉成202.99.160.130到202.99.160.189中的所有地址。
Access-list1 permit 192.168.1.0 0.0.0.255
Access-list2 permit 192.168.2.0 0.0.0.255
Access-list2 permit 192.168.3.0 0.0.0.255
  ● 靜態地址轉換:ISP分配的IP地址是:211.82.220.80~211.82.220.87、211.82.220.81 255.255.255.248。要求Intranet上的Web.E-mail.Ftp.Media可以被外部訪問。
Interface fastethernet0/0
Ip address 192.168.1.1 255.255.255.0
Duplex auto
Speed auto
Ip nat inside
No shutdown
Interface fastethernet0/1
Ip address 211.82.220.81 255.255.255.248
Speed auto
Duplex auto
Ip nat outside
No shutdown
Ip nat pool Outpool 211.82.220.86 211.82.20.86 netmask 255.255.255.248
Access-list 1 permit 192.168.1.2 0.0.0.255
Access-list 1 permit 192.168.1.3 0.0.0.255
Access-list 1 permit 192.168.1.4 0.0.0.255
Access-list 1 permit 192.168.1.5 0.0.0.255
Ip nat inside source list1 pool Outpool overload
Ip nat inside source static 192.168.1.2 211.82.220.82
Ip nat inside source static 192.168.1.3 211.82.220.83
Ip nat inside source static 192.168.1.4 211.82.220.84
Ip nat inside source static 192.168.1.5 211.82.220.85
  ● NAT映射:如果ISP提供的IP地址比較多還可以,但如果不是的時候(如就兩個時),一個用於內網地址轉換,另一個用於對外網提供服務。ISP提供的內網上網IP。
Interface ethernet0
Ip address 192.168.1.1 255.255.255.0
Duplex auto
Speed auto
Ip nat inside
No shutdown
Interface fastethernet0/0
Ip address 211.82.220.129 255.255.255.248
Duplex auto
Speed auto
Ip nat outside
No shutdown

Access-list 1 permit 192.168.1.0 0.0.0.255
Ip nat pool Everybody 211.82.220.130 211.82.220.130 network 255.255.255.252
Ip nat inside source list1 pool Everybody overload
Ip nat inside source static tcp 192.168.1.2 80 202.99.220.130 80
Ip nat inside source static tcp 192.168.1.3 21 202.99.220.130 21
Ip nat inside source static tcp 192.168.1.4 25 202.99.220.130 25
Ip nat inside source static tcp 192.168.1.5 110 202.99.220.130 110
  ● 利用地址轉換實現負載均衡:當有如象騰訊公司似的多服務器時,使用路由器實現負載平衡,可以使它們有平等的訪問機會.
Interface fastethernet0/1
Ip address 192.168.1.1 255.255.255.0
Duplex auto
Speed auto
Ip nat inside
No shutdown

Interface fastethernet0/0
Ip address 202.110.198.81 255.2555.255.248
Duplex auto
Speed auto
Ip nat outside
Access-list 1 permit 202.110.198.82
Access-list 2 permit 202.110.198.83
Access-list 3 permit 192.168.1.0 0.0.0.255
Ip nat pool Webser 192.168.1.2 192.168.1.3 255.255.255.248 type rotary
Ip nat pool Ftpser 192.168.1.4 192.168.1.5 255.255.255.248 type rotary
Ip nat pool normal 202.110.198.84 202.110.198.84 netmask 255.255.255.248
Ip nat inside destination list 1 pool Webser
Ip nat inside destination list 2 pool Ftpser



示例1
在本例中,公司使用一臺兩接口路由器,一個是Ethernet,另一個是串行接口。Ethernet0連接到內部網絡,而串行接口則通過PPP鏈路連接到 ISP路由器。在內部網絡中,公司使用10.0.0.0/24地址範圍內的地址。公司已從其供應商那裏獲得了一個單一的全局可路由的IP地址 171.100.1.1,並且該地址用於路由器的串行接口上。公司使用PAT將其所有的內部本地地址轉換成單一的內部全局地址171.100.1.1。公司希望提供可以從Internet訪問的FTP和Web服務器,並且對Web服務器的請求應被送到Web服務器所在的地址10.1.1.100,而FTP 請求則被送到FTP服務器所在的地址10.1.1.101。

1 解決方案
interface ethernet0
ip address 10.1.1.1 255.255.255.0
ip nat inside
!
interface 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 interface 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內部或外部接口。通常,在定義NAT接口之後,就要定義NAT池來指定所用的內部全局地址。但是,在本例中只使用了一個單一的內部全局地址,並且將該單一內部全局地址用於路由器的serial 0接口上。由於只有一個單一內部全局地址並且用於路由器自己的接口上,所以我們不需要定義NAT池。我們只簡單地使用示例中所示的inside source list語句即可。所定義源列表使用路由器接口的IP地址,並且超載該單一IP地址。該命令允許來自10.0.0.0/24網絡的內部主機訪問 Internet。路由器執行PAT來創建TCP / UDP端口的NAT映射。完成該步以後,接下來需要爲內部Web和FTP服務器創建靜態映射。
由於只有一個單一的內部全局IP地址,因此要根據IP地址以及TCP或UDP端口來定義靜態映射。在本例中,將目的地址爲171.100.1.1和目的 TCP端口爲80的報文地址轉換成TCP端口80上的10.1.1.100內部主機地址。我們還將目的地址爲171.100.1.1和目的TCP端口爲 21的報文地址轉換成TCP端口21上的10.1.1.101內部主機地址。這樣我們就在不同的內部服務器上提供了Web和FTP服務,雖然我們只有一個單一的內部全局地址。注意,由於該命令語法允許指定內部服務器的IP地址和端口,所以可以在內部提供多個Web和FTP服務器。例如,可以創建如下的靜態映射:
ip nat inside source static tcp 10.1.1.102 21 21.171.100.1 27
該轉換*作將所有目的地址爲171.100.1.1且目的端口爲27的向內報文的地址轉換爲FTP端口上的地址10.1.1.102。當然,我們必須保證,外部用戶能夠知道我們的FTP服務器使用非標準的端口,而大多數的FTP客戶機都提供這一能力。顯然公司可以使用各種不同的端口轉換方法來提供服務,即使公司只有一個全局可路由的IP地址。這些方法使Cisco NAT的功能更加強大。
示例2

在本例中,某公司使用一臺具有兩個Ethernet的路由器。Ethernet0連接到內部網絡,而Ethernet1則連接到一個LAN網段。公司與其 ISP的路由器共享該網段。在內部網絡中,公司使用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轉換。公司希望在路由器上使用必要的命令,以使其內部用戶能夠使用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的接口。通過將相應的命令放在每個接口下面,指定該接口是一個NAT外部接口或內部接口。這是配置NAT的第一步。如果讀者不將接口指定爲一個NAT內部或NAT外部接口,或者指定的不正確,則NAT就不能正確工作。如果不定義NAT接口,NAT根本不工作,並且debug ip nat detail命令也不會輸出任何結果。如果讀者已定義了所有其他的NAT命令,但NAT還是不工作,則確認每個接口下面的所放的NAT命令是否合理。
在每個接口下面定義了合適的NAT命令之後,就可以定義存放內部全局地址的NAT池。我們定義的起始IP地址是171.100.1.3,而結束地址爲 171.100.1.254。我們不使用.1和.2地址是因爲這兩個地址分別用於用戶路由器和ISP路由器。由於這兩個地址也與用戶路由器上的 Ethernet1接口所在的子網是同一子網地址,用戶路由器將使用自己的MAC地址回答來自ISP路由器的ARP請求。這允許ISP路由器從NAT池中解析出IP地址,並使用從NAP池中取出的目的IP地址將報文發送給用戶路由器。
注意,MAT地址池並非必須來自與用戶路由器接口上所配置的子網相同。
示例3

在本例中,公司使用一臺具有兩個接口的路由器,分別是以太網和串行接口。Ethernet0連接到內部網絡,而串行接口則通過點到點協議(PPP)鏈路連接到ISP路由器。在內部網絡中,公司使用的地址來自地址空間10.0.0.0/24,該地址空間在Internet上是不可路由的。公司自己使用IP地址範圍171.100.1.0/24。到ISP的PPP鏈路使用來自198.50.1.0/30子網的地址。公司希望在路由器上配置合適的命令,以便內部用戶可以通過使用有效的、全局可路由的地址訪問Internet。這些地址應該是來自ISP所提供的地址空間171.100.1.0/24。我們打算與上游的ISP路由器交換OSPF(開放式最短路徑優先)更新信息。從而可以從該路由器接收缺省路由,並將其通知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內部或外部接口。在每個接口下面定義了適當的 NAT命令之後,再定義內部全局地址所在的NAT池。定義全局地址的起始IP地址爲171.100.1.1,結束IP地址爲171.100.1.254。我們使用除.1和.2地址之外的所有主機地址,是因爲這些主機地址都不用於路由器接口。通過在NAT池中使用與用戶路由器接口所用子網不同的子網,可以獲得一些主機地址。但這又引入了一個新的問題。
在前一個示例中,ISP路由器直接連接到分配給NAT池的子網上。這種情況下,ISP路由器只發出一個ARP請求,以請求NAT池中的單個NAT地址,而用戶路由器則使用自己的MAC地址來響應,此時工作正常。但是,上游的ISP路由器並不直接連接到NAT地址池子網171.100.1.0/24,所以必須告訴它如何通過路由協議或靜態路由的方法到達NAT池所在的子網。在解決方案1中,我們啓用了OSPF並且爲171.100.1.0/24重新分配一個靜態路由到OSPF中。上游的ISP路由器會接收到該路由,並且將所有目的地址爲NAT池中地址的報文轉發到我們的路由器中。
可選地,ISP可以在其路由器上安裝一個靜態路由,用來將所有171.100.1.0/24網絡的報文指向我們的路由器。但是,我們希望:當NAT池地址不是直接從相連的子網上取出時,能夠顯示出路由信息的傳播路徑。注意,我們將整個171.10.10/24子網的NAT地址表置爲null0。由於我們要指定NAT地址表中的某些表項,而非整個171.100.1.0/24子網,這時路由器並不丟棄這些報文,而是將它們轉發到NAT表中所定義的內部主機上。
在解決方案2中,我們使用了另一種方法來通知ISP路由器有關NAT池的信息。這種方法是創建一個閉環(loopback)接口,並給其分配一個NAT池中的IP地址。通過將network171.100.1.00.0.0.255 area 0語句包含在我們的OSPF路由進程下面,可以將該閉環地址作爲OSPF路由的一部分。注意,我們將.1地址從NAT池中刪除,而使用主機地址.2作爲 NAT池的起始地址,這樣就減少了NAT池地址和用於閉環接口上的IP地址重疊的可能性。另外,我們在閉環接口下面使用接口命令ip ospf ntwork point-to-point。一般地,OSPF將閉環接口看成是一個OSPF樁(stub)網絡,並且將接口的32位表項作爲路由,而非整個子網。在本例中,OSPF進程會發送172.100.1.1/32而非表172.100.1.0/24。在這種情況下,由於需要將整個171.100.1.0/24 子網信息傳送給上游的ISP路由器,所以該地址轉換過程不能工作。OSPF接口命令告訴OSPF傳送該接口的路由,就像該網絡是點到點網絡一樣,而不像是一個樁(stub)網絡。這意味着它將通過OSPF傳送整個171.100.1.0/24子網信息(ip ospf network point-to-point命令在IOS版本11.3或更高版本中使用),這兩種方法都能正常工作,但使用哪一種則是讀者的偏好問題了。
注意:我們知道一個公司通常會在其路由器和ISP路由器之間運行邊界網關協議(Border Gateway Protocol, BGP)。在本例中,我們選擇了OSPF路由協議,目的是爲了分析ip ospf network point-to-point命令。

示例4

在本例中,公司與示例2中的公司相同,但情況稍有不同。這裏公司處於Internet環境中,它決定提供一個能從Internet訪問的Web服務器,以便那些瀏覽Web的用戶能夠了解公司。該服務器位於內部網絡中,並且能夠從Internet上的主機訪問該服務器。這樣它將擁有IP地址 10.1.1.100。由於Web服務器必須能夠通過Internet來訪問,所以這個源IP地址在轉發給ISP路由器之前,必須被轉換成內部全局緩衝池中的地址。我們爲公司Web服務器選擇171.100.1.100作爲其轉換成的內部全局地址。
如示例2那樣,Ethernet0連接到內部網絡,而串行接口則通過PPP鏈路連接到ISP路由器。在內部網絡中,公司使用10.0.0.0/24中的地址,而全局池中的IP地址範圍是171.100.1.0/24。在本例中,我們將假定ISP使用靜態路由來找到我們的路由器,其中路由器地址在 172.100.1.0/24地址範圍內。並且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命令之前,應先定義NAT內部和外部接口。而後需要配置NAT池地址和NAT源列表,以允許能夠從池中獲得地址。本例與示例2的不同之處在於:我們需要爲Web服務器設置IP地址171.100.1.100。另外,必須在內部全局地址和內部本地地址之間給出靜態映射關係。不然的話,就不能保證NAT表中的NAT轉換會將NAT池中的特定IP地址映射到Web服務器。這也意味着無法從Internet上知道應該使用哪個地址才能到達Web服務器,顯然這是毫無用處的。
注意,我們在配置中使用ip nat inside source static 命令,以建立10.1.1.100和171.100.1.100之間的靜態映射。注意到在本例中NAT池的語法有些不同。Cisco已擴展了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池中排除出去,因爲我們使用該地址進行靜態轉換。我們使用 ip nat inside source list命令來定義IP地址,以允許該IP地址從NAT池中獲取
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章