9-3
網路位址轉譯
內容:
9-3-1 NAT
運作型態 VIDEO
『網路位址轉譯』( Network
Address Translator, NAT ) 的功能是做內部網路位址和外部網路位址之間的轉譯,一般企業將它作為合法
IP
位址和私有位址之間的轉譯功能。目前 IP
位址漸漸不足,因此對外網路位址不可能分配太多,便利用
NAT
來建構私有網路空間。一般 ISP
公司為了克服
IP
位址不足的問題,都給予客戶動態 IP
位址,我們也可以透過
NAT 將動態
IP
轉譯成私有網路空間。
一般吾人將
NAT
網路劃分為兩個區塊:內部 (Inside )
與外部 (Outside) , Inside
表示網路內使用私有 IP
位址; Outside
網路使用合法
IP 位址。 NAT
目的是將
Inside
的私有位址轉譯到 Outside
的公有位址。 Cisco
路由器提供有三種 NAT
運作型態,可分別選擇使用,如下:
(A) 『靜態
NAT 』 (Static
NAT)
內部與外部位址是一對一的轉換,因此稱為靜態。這種架構型態完全沒有減少使用合法
IP ,完全著重於隱藏內部
IP
的功能,大多應用隱藏內部 IP
位址,但又需要提供資源給外部主機使用的情況。
圖 9-7
Static NAT
(B) 『動態
NAT 』 (Dynamic
NAT)
內部與外部位址是多對多的關係。此架構在運作當中也是一對一的關係,內部位址對應到外部
IP
隨時改變當中,如此可以減低外部攻擊者探測內部位址的機率。它是將若干個外部
IP
做成一個『群組』 (Pool) ,並宣告某一網路區段內的主機可由此『群組』索取
IP ,使用後立即釋放,又稱『群組
NAT 』 (Pooled
NAT) 。 如圖
9-8 中
10 個合法
IP 被
250
個內部主機輪流使用。
圖
9-8 Dynamic NAT
(C)
『埠口位址轉換
NAT 』 (Port
Address Translation NAT, PAT NAT)
PAT
是利用埠口位址轉換型的
NAT ,也是一般坊間常用的
NAT
設定,它內部與外部位址之間是多對一的關係。即是一個合法
IP
位址可以讓多個內部私有位址共用,之間就是利用埠口對應關係建立,即是『 IP
位址 + TCP
埠口』 ,如圖
9-9 所示。
圖
9-9 PAT NAT
當內部網路位址透過
NAT
轉換之後,內部網路位址有可能流露於外,一般為了分辨是合法位址或內部虛擬位址,都將私有位址的範圍設定在:( RFC
1918 )
²
Class A : 10.0.0.0
~ 10.255.255.255 , IP
Mask : 255.0.0.0 。
²
Class B : 172.16.0.0
~ 172.31.255.255 , IP
Mask : 255.240.0.0 。
²
Class C : 192.168.0.0
~ 192.168.255.255 , IP
Mask : 255.255.255.0 。
一般 ISP
網路收到上述 IP
位址的封包 ( 無論來源位址或目的位址 )
時,便將它拋棄不予轉送。
9-3-2 NAT 防火牆規劃 VIDEO
( 請匯入
NAT
防火牆 _ 空白 .pk t)
(A) NAT
網路架構
圖
9-10 NAT
防火牆架構
吾人規劃一套
NAT
防火牆架構如圖 9-10
所示,採用設備如下:
l
Cisco
路由器
1901 :預設只有兩片
Gigabit Ethernet
介面卡,再增加
WAN Serial
介面卡一只 (s0/0/0,
s0/01) 。取兩台當
NAT 防火牆
(R1)
與外部路由器 (R2) 。
l
Cisco
交換器
1960
一部 、主機 PC
四部。
(B)
網路環境規劃
l
圖
9-10 網路環境的規劃如下:
網路區段
gateway
主機
IP
位址
連結介面
192.168.1.0/24
192.168.1.254
PC1
192.168.1.1
SW1(fa0/1)
PC2
192.168.1.2
SW1(fa0/2)
PC3
192.168.1.3
SW1(fa0/3)
120.118.166.0/24
120.118.166.254
R_PC4
120.118.166.1
SW2(fa0/1)
l
路由器規劃
本網路使用了 2
只路由器,其網路介面卡規劃如下:
Router
Router port
IP
位址
Switch port
NAT_R1
Gi0/0
192.168.1.254
SW1(Gi0/1)
Se0/0/0
202.1.2.1
R2(S0/0/0)
R_R2
Se0/0/0(DCE)
202.1.2.2
R1(Gi0/0)
Gi0/0
120.118.166.254
R_PC4
l
RIPv2
規劃
Router
Network_1
Network_2
Network_3
NAT_R1
192.168.1.0
202.1.2.0
R_R2
202.1.2.0
120.118.166
(C)
路由器介面與
RIPv2
設定
l
NAT_R1
設定 :
NAT_R1>en
NAT_R1#config ter
NAT_R1(config)#int
Gi0/0
NAT_R1(config-if)#ip
address 192.168.1.254 255.255.255.0
NAT_R1(config-if)#no
shutdown
NAT_R1(config-if)#int
s0/0/0
NAT_R1(config-if)#ip
address 202.1.2.1 255.255.255.0
NAT_R1(config-if)#bandwidth
10
NAT_R1(config-if)#no
shutdown
NAT_R1(config-if)#exit
NAT_R1(config)#ip
routing
NAT_R1(config)#router
rip
NAT_R1(config-router)#version
2
NAT_R1(config-router)#network
192.168.1.0
NAT_R1(config-router)#network
202.1.2.0
NAT_R1(config-router)#exit
l
R_R2
設定:
R_R2>en
R_R2#config ter
R_R2(config)#int
s0/0/0
R_R2(config-if)#ip
address 202.1.2.2 255.255.255.0
R_R2(config-if)#bandwidth
10
R_R2(config-if)#clock
rate 56000
R_R2(config-if)#no
shutdown
R_R2(config-if)#int
Gi0/0
R_R2(config-if)#ip
address 120.118.166.254 255.255.255.0
R_R2(config-if)#no
shutdown
R_R2(config-if)#exit
R_R2(config)#ip
routing
R_R2(config)#router
rip
R_R2(config-router)#version
2
R_R2(config-router)#network
202.1.2.0
R_R2(config-router)#network
120.118.166.0
R_R2(config-router)#exit
(C)
網路連線測試: ( 請匯入
NAT_ 防火牆 _ 介面設定 )
l
PC1 : ping
120.118.166.1 [OK]
l
R_PC4 : ping
192.168.1.2 [OK]
9-3-3
靜態
NAT 設定 VIDEO
( 請匯入
NAT
防火牆 _ 介面設定 .pk t)
圖 9-11
NAT_ 防火牆網路 _ 介面設定
『靜態 NAT 』 (Static
NAT) :內部與外部位址是一對一的轉換關係,吾人規劃
NAT 轉換如下:
內部
IP ( 私有位址 )
外部
IP ( 合法位址 )
192.168.1.1
202.1.2.10
192.168.1.2
202.1.2.11
192.168.1.250
202.1.2.12
(A) NAT
設定
l
NAR_R1
設定 :
n
設定靜態轉換表、
n
指定 Inside/Outside
介面,如下:
NAT_R1>en
NAT_R1#config ter
NAT_R1(config)#ip nat
inside source static 192.168.1.1 202.1.2.10
NAT_R1(config)#ip nat
inside source static 192.168.1.2 202.1.2.11
NAT_R1(config)#ip nat
inside source static 192.168.1.250 202.1.2.12
NAT_R1(config)#int
Gi0/0
NAT_R1(config-if)#ip
nat inside
NAT_R1(config-if)#int
Se0/0/0
NAT_R1(config-if)#ip
nat outside
NAT_R1(config-if)#exit
NAT_R1(config)#do show
ip nat translation
Pro Inside global Inside local Outside local
Outside global
--- 202.1.2.10 192.168.1.1 --- ---
--- 202.1.2.11 192.168.1.2 --- ---
--- 202.1.2.12 192.168.1.250 ---
---
(B)
網路連線測試: ( 請匯入
NAT_ 防火牆 _static
NAT.pkg )
l
PC1 : ping
120.118.166.1 [OK]
l
R_PC4 : ping
202.1.2.10 [OK]
l
R_PC4 : ping
192.168.1.250 [OK]
l
R_PC4 : http://192.168.1.250
[ NO ]
l
R_PC4 : http://202.1.2.12
[OK]
(C)
結論
( 請自行思考 )
l
由外部連線 ping
到內部主機,為何無論採用合法或私有 IP
位址皆可以成功?
l
為何外部電腦利用合法 IP
連線到內部
HTTP_Server
可以成功,但用私有
IP
則無法成功?
9-3-4
動態
NAT 設定 VIDEO
( 請匯入
NAT
防火牆 _ 介面設定 .pkt )
圖 9-11
NAT_ 防火牆網路 _ 介面設定
『動態 NAT 』 (Dynamic
NAT) 內部與外部位址是多對多的關係,但對應之後也是一對一的關係。當內部主機要求向外連線,則路由器分配一只合法
IP ,轉換後向外連線,則該
IP
就被占用,當連線終止則再釋放。吾人規劃
Static NAT
與
Dynamic NAT
同時存在,如下:
內部
IP ( 私有位址 )
外部
IP ( 合法位址 )
192.168.1.0/24
202.1.2.10 ~ 19 ( 動態
NAT)
192.168.1.250
202.1.2.20 ( 靜態
NAT)
(A) NAT
設定
l
NAR_R1
設定 :
n
設定內部網路範圍: 192.168.1.0/24
(access-list)
n
設定外部位址槽與分配 IP : pool
名稱為
nat192 , IP
位址是
202.1.2.10 ~ 202.1.2.19 。
n
指定哪一個 access-list
分配
IP Pool 。
n
指定 Inside/Outside
介面。
NAT_R1#config ter
NAT_R1(config)#ip nat
inside source static 192.168.1.250 202.1.2.20
NAT_R1(config)#access-list
1 permit 192.168.1.0 0.0.0.255
NAT_R1(config)#ip nat
pool nat192 202.1.2.10 202.1.2.19 netmask 255.255.255 .0
NAT_R1(config)#ip nat
inside source list 1 pool nat192
NAT_R1(config)#int
Gi0/0
NAT_R1(config-if)#ip
nat inside
NAT_R1(config-if)#int
Se0/0/0
NAT_R1(config-if)#ip
nat outside
NAT_R1(config-if)#exit
NAT_R1(config)#do show
ip nat translatio n
Pro Inside global Inside local Outside local
Outside global
--- 202.1.2.20 192.168.1.250 --- ---
(B)
網路連線測試: ( 請匯入
NAT_ 防火牆 _Dynamic NAT.pkg)
l
PC1 : ping
120.118.166.1 [OK]
l
R_PC4 : ping
192.168.1.1
[OK]
再觀察
NAT_R1
轉換表如下:
NAT_R1(config)#do show
ip nat translation
Pro Inside global Inside local Outside
local Outside global
Icmp 202.1.2.10:10 192.168.1.1:10
120.118.166.1:10 120.118.166.1:10
icmp 202.1.2.10:11 192.168.1.1:11
120.118.166.1:11 120.118.166.1:11
icmp 202.1.2.10:12 192.168.1.1:12
120.118.166.1:12 120.118.166.1:12
icmp 202.1.2.10:1 192.168.1.1:1
120.118.166.1:1 120.118.166.1:1
icmp 202.1.2.10:2 192.168.1.1:2
120.118.166.1:2 120.118.166.1:2
icmp 202.1.2.10:3 192.168.1.1:3
120.118.166.1:3 120.118.166.1:3
icmp 202.1.2.10:4 192.168.1.1:4
120.118.166.1:4 120.118.166.1:4
--- 202.1.2.20 192.168.1.250 ---
---
9-3-5
埠口
NAT 設定 VIDEO
( 請匯入
NAT
防火牆 _ 介面設定 .pkt)
圖 9-11
NAT_ 防火牆網路 _ 介面設定
『埠口位址轉換
NAT 』
(PAT NAT) 是利用埠口位址轉換型的
NAT ,內部與外部位址之間是多對一的關係。即是一個合法
IP
位址可以讓多個內部私有位址共用。之間就是利用埠口對應關係建立,吾人規劃
NAT 轉換如下:
內部
IP ( 私有位址 )
外部
IP ( 合法位址 )
192.168.1.0/24
202.1.2.10 (PAT NAT)
192.168.1.250
202.1.2.20 ( 靜態
NAT)
(A) NAT
設定
l
NAT_R1
設定 :
u
大多與 Dynamic NAT
相同。
u
僅在指定哪一個 access-list
分配
IP Pool
時加入
Overload ,表示一個外部
IP
可以被重複使用。
NAT_R1#config ter
NAT_R1(config)#ip nat
inside source static 192.168.1.250 202.1.2.20 [Static NAT]
NAT_R1(config)#access-list
1 permit 192.168.1.0 0.0.0.255 [ 內部
IP 範圍 ]
NAT_R1(config)#ip nat
inside source list 1 pool nat192
overload [overload]
NAT_R1(config)#ip nat
pool nat192 202.1.2.10 202.1.2.10 netmask 255.255.255.0
NAT_R1(config)#int
Gi0/0
NAT_R1(config-if)#ip
nat inside
NAT_R1(config-if)#int
se0/0/0
NAT_R1(config-if)#ip
nat outside
NAT_R1(config-if)#exit
NAT_R1(config)#do show
ip nat translation
Pro Inside global Inside local Outside local
Outside global
--- 202.1.2.20 192.168.1.250 ---
---
(B)
網路連線測試: ( 請匯入
NAT_ 防火牆 _PAT NAT.pkg)
l
PC1 : ping
120.118.166.1 [OK]
l
R_PC4 : ping
192.168.1.1
[OK]
l
再觀察 NAT_R1
轉換表如下:
NAT_R1(config)#do show
ip nat translatio n
Pro Inside global Inside local Outside
local Outside global
Icmp 202.1.2.10:10 192.168.1.1:10 120.118.166.1:10
120.118.166.1:10
icmp 202.1.2.10:11 192.168.1.1:11 120.118.166.1:11
120.118.166.1:11
icmp 202.1.2.10:12 192.168.1.1:12 120.118.166.1:12
120.118.166.1:12
icmp 202.1.2.10:9 192.168.1.1:9 120.118.166.1:9
120.118.166.1:9
--- 202.1.2.20 1 92.168.1.250 ---
---