NAT 地址轉換

NAT功能
        NAT不只能解決了lP地址不足的問題,並且還可以有效地避免來自網絡外部的攻擊,隱藏並保護網絡內部的計算機。
1.寬帶分享:這是 NAT 主機的最大功能。解決IP4地址短缺的問題。
2.安全防禦:NAT 以內的 PC 聯機到 Internet 上面時,他所顯示的 IP 是 NAT 主機的公共 IP,因此 Client 端的 PC 固然就具備必定程度的安全了,外界在進行 portscan(端口掃描) 的時候,就偵測不到源Client 端的 PC 。

NAT實現方式
    有三種,即
1.靜態轉換Static Nat  (靜態ip  靜態端口)
2.動態(源地址)轉換Dynamic Nat
3.動態(目的地址)轉換Dynamic Nat
4..端口多路複用OverLoad(PAT)
 
 
這些東西仍是放在前面講吧,看不懂,記不住無所謂,底層的原理
Inside    內部
Outside  外部
四個概念:
Inside local     內部本地地址(內部主機的實際地址,通常爲私有地址)
Inside global   內部全局地址(內部主機經NAT轉換後去往外部的地址,是ISP分配的合法IP地址)
Outside local  外部本地地址(外部主機由NAT設備轉換後的地址,通常爲私有地址,內部主機訪問該外部主機時,
                            認爲它是一個內部的主機而非外部主機)
Outside global 外部全局地址(外部主機的真實地址,互聯網上的合法IP地址)
 
 數據包只有在 outside 接口和 inside 接口之間路由時,而且符合
必定規則的,纔會進行NAT轉換。
因此實現NAT的路由器必須配置至少一個 outside 接口和一個 inside 接口,也可配置多個
內部端口鏈接的網絡用戶使用的是內部IP地址。  內部端口能夠爲任意一個路由器端口。
外部端口鏈接的是外部的網絡,如Internet 。外部端口能夠爲路由器上的任意端口
 
 
ip nat inside source
ip nat inside destination (不少路由設備沒有此選項)
都是內部地址轉換
ip nat inside source          便是IL->IG  (由內部發起的流量)
ip nat inside destination     便是IG->IL  (由外部發起的流量)
撇開流量的發起方不說,達到的效果是同樣的(都是IL與IG之間轉換),即NAT Translation表的IL和IG項都同樣。可是對於ip nat inside destination   須要注意
①只有TCP流量纔會轉換,ping 流量是不會觸發NAT的Destination轉換的!
②nat pool 必定要設置type爲 rotary!!
 
cisco的NAT 命令彙總
 
ip nat   inside   source             list  訪問控制列表 (pool  池名 |  interface  接口名) overload
ip nat   inside   source             static    本地(ip | 端口) 外部(ip|端口)
ip nat   outside  source           
               pool
 
 
 
一.靜態轉換
    1.靜態IP轉換
        是指將內部網絡的私有IP地址轉換爲公有IP地址,IP地址對是一對一的,是一成不變的,某個私有IP地址只轉換爲某個公有IP地址。藉助於靜態轉換,能夠實現外部網絡對內部網絡中某些特定設備(如服務器)的訪問。
.       將網絡的一個內部地址L映射到一個外部地址G上。從內部網絡發送以L爲源的數據包的源地址會被替換成地址G。同時,從外部發往內部網絡的目的地址爲G的數據包的目的地址會被替換成L。這樣內部主機就能夠假裝成G與外部網絡通訊
語法:程序員

ip nat inside source static 內部本地地址 內部全局地址 安全

 

ip nat inside source static 10.0.0.1  222.2.2.1    // 配置靜態NAT
ip nat inside source static 10.0.0.2  222.2.2.2   
ip nat inside source static 10.0.0.3  222.2.2.3服務器

  

interface f0/0 
ip nat inside        // 設置該端口爲內部端口網絡


interface f0/1
ip nat outside    // 設置該端口爲外部端口負載均衡

實例:先設置好ACL語言,再設置NAT轉換(使用上述代碼)
 
 
NAT 地址轉換 - 朝鮮程序員 - 朝鮮程序員的博客
 
 2.靜態端口轉換     
ip nat inside source static tcp/udp 內部本地地址 端口 內部全局地址 端口

ip nat inside source static tcp 10.0.0.1 80 222.2.2.1 80tcp

ip nat inside source static tcp 10.0.0.2 24 222.2.2.1 24ide


interface f0/0
ip nat inside // 設置該端口爲內部端口spa

 


interface f0/1
ip nat outside // 設置該端口爲外部端口
 
 

 
 

二.動態(源地址)轉換
將內部網絡訪問外部網絡數據包的源地址L替換成設定好的全局地址G。使內部網絡主機能夠用這個全局地址G訪問外部網絡 ,但外部主機沒法用G地址訪問內部主機L
   
1.定義要轉換的內部設備
這裏使用 acl 訪問控制列表

access-list 1 permit host 10.0.0.1翻譯

access-list 1 permit host 10.0.0.2debug

 
2.定義內部全局IP地址池
ip nat pool 池名 開始地址 結束地址 netmask 子網掩碼

ip nat pool nat-pool 222.2.2.1 222.2.2.1 netmask 255.255.255.0


3.爲內部本地調用轉換地址池
ip nat inside source list acl語句 pool 池名
這裏也能夠將池名換爲路由器接口,全部動態轉換使用此接口ip

ip nat inside source list 1 pool nat-pool //使用地址池
ip nat inside source list <number> interface <interface> //使用路由器接口

 
4.定義內部外部端口

interface f0/0
ip nat inside // 設置該端口爲內部端口

 


interface f0/1
ip nat outside // 設置該端口爲外部端口
 
 
 
 
三.端口映射(pat)
1.定義要轉換的內部設備
這裏使用 acl 訪問控制列表

access-list 1 permit host 10.0.0.1

access-list 1 permit host 10.0.0.2

 
2.定義內部全局IP地址池
ip nat pool 池名 開始地址 結束地址 netmask 子網掩碼

ip nat pool nat-pool 222.2.2.1 222.2.2.1 netmask 255.255.255.0


3.爲內部本地調用轉換地址池
ip nat inside source list acl語句 pool 池名 
overload
 
 

ip nat inside source list 1 pool nat-pool overload

 


四,動態(目的地址)轉換

        前面的幾種狀況都是對數據包的源地址進行 轉換,下面來講下 對目的地址 轉換
        將外部主機訪問設定好的全局地址G的數據包的目的地址替換成內部主機的地址L,也就是常見的虛擬服務器,
可對轉換業務進行端口映射。這樣外部主機能夠訪問內部的主機,但內部主機沒法主動訪問外部主機。
當配置的地址池中包含一個以上的地址時,外部主機對內部的訪問會在這幾個地址中作負載均衡

語法:
 ip nat  inside  destination  list   訪問控制列表編號 pool 池名

NAT內部目標地址轉換可用於實現TCP負載均衡,你能夠用一臺虛擬主機代替
多臺實際主機接收用戶的TCP請求,由NAT把這些請求輪流映射到各個實際主機上,
達到負載分流的目的。 
配置TCP負載均衡時,訪問控制列表定義的是虛擬主機的地址,IP地址池中定義的是各臺實際主機的地址
範例: 

ip nat pool np 192.168.1.1  192.168.1.3 netmask 255.255.255.0 // 內網地址
access-list 1 permit 60.8.1.1 0.0.0.0  //外網地址

 

ip nat inside destination list 1 pool np //內外網地址進行映射

 
 
 
查詢:
show ip nat statistics 
查看NAT統計數據和規則,包括inside和outside接口
show ip nat translations 
查看生效的NAT設置
清除全部動態NAT配置 clear ip nat translation * 
清除單個動態NAT配置: clear ip nat translation <global-ip> 
清除特定NAT配置: 
clear ip nat translation <global-ip> <local-ip> <protocol> <global-port> <local-port>
 

debug:  debug ip nat [<list>] [detailed] 
 
一些高級配置: 
1.更靈活的地址池的配置: 
ip nat pool <name> { netmask <mask> | prefix-length <length> } [ type { rotary } ] 
這樣能夠容許定義不連續地址池,接下來定義地址空間: address <start> <end> 
例子: 
Router(config)#ip nat pool fred prefix-length 24 
Router(config-ipnat-pool)#address 171.69.233.225 171.69.233.226 
Router(config-ipnat-pool)#address 171.69.233.228 171.69.233.238 
這樣就定義了一個171.69.233.225-226和and 171.69.233.228-238的地址池 
2.翻譯爲接口地址: 
ip nat inside source list <number> interface <interface> overload 
若是接口shut或者接口沒有設置IP地址的話,NAT不會生效 
3.映射某個服務到某個主機上(好比郵件服務): 
ip nat inside source static { tcp | udp } <localaddr> <localport> <globaladdr> <globalport> 
 
更高級擴展:
4.對route map的支持: 
(route map和ACL很相似,它能夠用於路由的再發布和策略路由,還常常使用在BGP中)
ip nat inside source route-map <name> pool <name> 
例子: 


ip nat pool provider1-space 171.69.232.1 171.69.232.254 prefix-length 24 
ip nat pool provider2-space 131.108.43.1 131.108.43.254 prefix-length 24 
 
ip nat inside source route-map provider1-map pool provider1-space 
ip nat inside source route-map provider2-map pool provider2-space







interface Serial0/0 
ip nat outside  




interface Serial0/1 
ip nat outside 

interface Fddi1/0 
ip nat inside 

route-map provider1-map permit 10 
match ip address 1 

match interface Serial0/0 
route-map provider2-map permit 10 
match ip address 1 match interface Serial0/1
相關文章
相關標籤/搜索