NAT技術在網絡設備中的應用
在我之前的分享中提到,我們在家里或者公司內部使用的IP地址是私有地址。這些地址在internet網中也就是公網中是不合法的地址,也就是說你如果使用一個私網地址是不可能登錄到internet中瀏覽信息的。那么為什么我們的終端(電腦、手機)在家里或者公司中卻可以登錄到internet中瀏覽網頁,觀看視頻呢?其實,這里面我們用到了NAT技術(Network Address Translation)網絡地址轉換技術。把我們的終端獲取的私有地址,轉換成公司的合法外網共有地址,從而進行網絡數據交換。
NAT的實現方式有三種,即靜態轉換Static Nat、動態轉換Dynamic Nat和端口多路復用OverLoad。
1、靜態轉換:是指將內部網絡的私有IP地址轉換為公有IP地址,IP地址對是一對一的,是一成不變的,某個私有IP地址只轉換為某個公有IP地址。借助于靜態轉換,可以實現外部網絡對內部網絡中某些特定設備(如服務器)的訪問。
2、動態轉換:是指將內部網絡的私有IP地址轉換為公用IP地址時,IP地址是不確定的,是隨機的,所有被授權訪問上Internet的私有IP地址可隨機轉換為任何指定的合法IP地址。也就是說,只要指定哪些內部地址可以進行轉換,以及用哪些合法地址作為外部地址時,就可以進行動態轉換。動態轉換可以使用多個合法外部地址集。當ISP提供的合法IP地址略少于網絡內部的計算機數量時。可以采用動態轉換的方式。
3、端口多路復用(Port address Translation,PAT):是指改變外出數據包的源端口并進行端口轉換,即端口地址轉換(PAT,Port Address Translation).采用端口多路復用方式。內部網絡的所有主機均可共享一個合法外部IP地址實現對Internet的訪問,從而可以最大限度地節約IP地址資源。同時,又可隱藏網絡內部的所有主機,有效避免來自internet的攻擊。因此,目前網絡中應用最多的就是端口多路復用方式。
在我們的日常工作中,通常一個公有的IP地址是很珍貴的,ISP也不會隨意地發放。因此如果沒有特殊業務需求,通常公司或者組織只會申請一個公網IP地址。因此在實際的應用環境中使用最多的是第3種,端口多路復用PAT,也就是一種多對一的轉換。
我們這里就看一下,這種多對一的PAT轉換是怎樣在網絡設備中進行設置的。
本例使用的Cisco的網絡設備,模擬平臺為GNS3.
通常進行NAT轉換的設備是網絡的邊界設備,如路由器或防火墻,本例進行NAT轉換的設備是路由器R1.
邏輯拓撲:
PC1:192.168.10.2
PC2:192.168.20.2
R1和CoreSwitch之間運行OSPF路由協議
R1(公司或組織的外網路由器):
F1/0 口為內網接口ip 10.10.10.2/30
S0/0 口為外網internet接口 ip 202.10.10.2/30 這個是公網IP,也就是你們公司或組織向ISP申請的外網地址。
ISPRouter:S0/0 接口地址202.10.10.1/30
配置內容:
1. R1 的端口IP配置:
interface Serial0/0
description to internet
ip address 202.10.10.2 255.255.255.252
interface FastEthernet1/0
no switchport
ip address 10.10.10.1 255.255.255.252
2. ISPRouter的端口IP配置:
interface Serial0/0
ip address 202.10.10.1 255.255.255.252
3. CoreSwitch的端口IP配置
interface FastEthernet1/0
ip address 10.10.10.2 255.255.255.252
這樣基礎的端口都已經配置完成,下面我們配置CoreSwitch和R1之間的路由打通。
1. CoreSwitch的OSPF配置如下:
router ospf 10
router-id 1.1.1.1
log-adjacency-changes
network 10.10.10.0 0.0.0.3 area 0
network 192.168.10.0 0.0.0.255 area 0
network 192.168.20.0 0.0.0.255 area 0
2. R1 的OSPF配置如下:
router ospf 10
router-id 2.2.2.2
log-adjacency-changes
redistribute connected subnets --- 此命令是把R1直連的網段重發布到OSPF中即202.10.10.0/30
network 10.10.10.0 0.0.0.3 area 0
CoreSwitch 的路由表:
CoreSwitch#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.77.0/24 is directly connected, Vlan77
C 192.168.10.0/24 is directly connected, Vlan10
C 192.168.20.0/24 is directly connected, Vlan20
10.0.0.0/30 is subnetted, 1 subnets
C 10.10.10.0 is directly connected, FastEthernet1/0
202.10.10.0/30 is subnetted, 1 subnets
O E2 202.10.10.0 [110/20] via 10.10.10.1, 00:00:03, FastEthernet1/0 -- 這條就是R1重發布到OSPF的路由信息
至此CoreSwitch和R1之間的路由已經連通。
CoreSwitch#ping 202.10.10.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.10.10.2, timeout is 2 seconds:
!!!!!
注意:在R1中,作為公司或組織的邊界路由器,這里定要有一條默認路由指向網關(ISP路由器),否則上internet的流量是無法轉發去internet中的。
R1(config)#ip route 0.0.0.0 0.0.0.0 202.10.10.1
好了,下面我們進行NAT的配置。
1. 在R1中配置ACL ,匹配可以進行NAT轉換的內網地址列表。
2. 在R1中配置NAT的出口端口
3. 在R1中的S0/0和F1/0 分別配置NAT的outside和inside
那么我們來看一下具體的配置:
① 配置ACL -- 這里只允許192.168.10.0/24的網段IP地址可以轉換成公網IP
ip access-list standard permitinternet
permit 192.168.10.0 0.0.0.255
② 開啟在R1 的S0/0端口的NAT的PAT設置
全局模式下:ip nat inside source list permitinternet interface Serial0/0 overload
切記一定要跟上關鍵字overload,這樣才能開啟多對一的PAT轉換。
③ 分別在S0/0和F1/0端口開始NAT
R1(config)#int s0/0
R1(config-if)#ip nat outside
R1(config-if)#int fa1/0
R1(config-if)#ip nat inside
這樣所有的配置都已經完成,我們來看一下效果,
1. PC1 是在Vlan10 中也就是192.168.10.0/24的網絡中,我們來ping一下internet 202.10.10.1
可以看到是可以訪問internet的,那么它到底有沒有進行地址轉換呢?我們來在R1上通過show ip nat translation
命令查看一下。
我們可以看到192.168.10.2 被轉化成了公網地址202.10.10.2 與202.10.10.1進行數據交換,說明我們NAT 已經轉化成功,PC可以訪問internet了。
那么我么在來看一下PC2 在Vlan20 192.168.20.0/24的網絡中主機可否訪問internet呢?
很明顯,PC2所在網段192.168.20.0/24并不能訪問internet。
因此我們看到我們可以通過NAT,來控制那些網段或者主機可以訪問internet,從而進行流量和帶寬的限制。把那些需要訪問internet的流量或主機放過。
怎么樣理解了么?這里再復習一下幾個NAT的關鍵點。(僅針對Cisco網絡設備)
1. NAT應用的地點是網絡的邊界設備(路由器或防火墻)
2. 配置ACL,來控制需要轉換的地址列表。
3. 將NAT應用到外網出口,并在最后添加關鍵字overload。
4. 將NAT功能應用到端口中,對內和對外。