1.在中型企業分支機構網絡中實現和驗證NAT和AC以及排除故障php
2.闡述NAT的基本工做原理html
3.根據網絡需求配置NAT(包括CLI/sdm)服務器
4.排除NAT故障
網絡
要真正瞭解NAT就必須先了解如今IP地址的適用狀況,私有 IP 地址是指內部網絡或主機的IP 地址,公有IP 地址是指在因特網上全球惟一的IP 地址。RFC 1918 爲私有網絡預留出了三個IP 地址塊,以下:dom
A 類:10.0.0.0~10.255.255.255ide
B 類:172.16.0.0~172.31.255.255性能
C 類:192.168.0.0~192.168.255.255測試
上述三個範圍內的地址不會在因特網上被分配,所以能夠沒必要向ISP 或註冊中心申請而在公司或企業內部自由使用spa
隨着接入Internet的計算機數量的不斷猛增,IP地址資源也就越發顯得捉襟見肘。事實上,除了中國教育和科研計算機(CERNET)外,通常用戶幾乎申請不到整段的C類IP地址。在其餘ISP那裏,即便是擁有幾百臺計算機的大型局域網用戶,當他們申請IP地址時,所分配的地址也不過只有幾個或十幾個IP地址。顯然,這樣少的IP地址根本沒法知足網絡用戶的需求,因而也就產生了NAT技術。debug
雖然NAT能夠藉助於某些代理服務器來實現,但考慮到運算成本和網絡性能,不少時候都是在路由器上來實現的。
須要鏈接到互聯網
更換的ISP要求對網絡進行從新編址
須要合併兩個使用相同編址方案的內聯網
優勢 |
缺點 |
節省合法的註冊地址 | 地址轉換將增長交換延時 |
在地址重疊時提供解決方案 | 致使沒法端到端的IP跟蹤 |
提供鏈接到因特網的靈活性 |
致使有些應用程序沒法運行 |
在網絡發生變化時從新編址 |
靜態NAT: 在本地地址和全局地址進行一對一的映射.即每臺須要上網的主機都須要一個公網IP
動態NAT: 將未註冊的IP地址映射到註冊IP地址池中的一個地址,即須要足夠的地址池
NAT重載: 也是動態NAT,它利用源端口將多個非註冊IP地址映射到一個IP地址(多對一),也稱爲PAT(端口地址轉換),經過這個只須要一個IP地址便可讓局域網的幾千臺主機上網
藉助於NAT,私有(保留)地址的"內部"網絡經過路由器發送數據包時,私有地址被轉換成合法的IP地址,一個局域網只需使用少許IP地址(甚至是1個)便可實現私有地址網絡內全部計算機與Internet的通訊需求。
NAT將自動修改IP報文的源IP地址和目的IP地址,Ip地址校驗則在NAT處理過程當中自動完成。有些應用程序將源IP地址嵌入到IP報文的數據部分中,因此還須要同時對報文的數據部分進行修改,以匹配IP頭中已經修改過的源IP地址。不然,在報文
數據部分嵌入IP地址的應用程序就不能正常工做。
①client(終端) 的 gateway (網關)設定爲 NAT 主機,因此當要連上 Internet 的時候,該封包就會被送到 NAT 主機,這個時候的封包 Header 之 source IP(源IP) 爲 192.168.1.100 ;
②而透過這個 NAT 主機,它會將 client 的對外聯機封包的 source IP ( 192.168.1.100 ) 假裝成 ppp0 ( 假設爲撥接狀況 )這個接口所具備的公共 IP ,由於是公共 IP 了,因此這個封包就能夠連上 Internet 了,同時 NAT 主機而且會記憶這個聯機的封包是由哪個 ( 192.168.1.100 ) client 端傳送來的;
③由 Internet 傳送回來的封包,固然由 NAT主機來接收了,這個時候, NAT 主機會去查詢本來記錄的路由信息,並將目標 IP 由 ppp0 上面的公共 IP 改回原來的 192.168.1.100 ;
④最後則由 NAT 主機將該封包傳送給原先發送封包的 Client。
interface Ethernet0/1 ip address 192.168.1.1 255.255.255.0 ip nat inside #指定NAT入口 half-duplex ! interface Ethernet0/2 ip address 192.168.2.1 255.255.255.0 ip nat outside #指定NAT出口 half-duplex ! ip nat inside source static 192.168.1.1 192.168.2.1 #把192.168.1.1轉換爲192.168.2.1
配置動態NAT須要一個地址池,用於內部用戶提供公有IP地址.動態NAT不使用端口號,所以對於同時訪問外網的內部主機,都須要一個公有IP地址.
interface Ethernet0/1 ip address 192.168.1.1 255.255.255.0 ip nat inside #指定NAT入口 half-duplex ! interface Ethernet0/2 ip address 192.168.2.1 255.255.255.0 ip nat outside #指定NAT出口 half-duplex ! ip nat pool lan 192.168.2.1 192.168.2.254 prefix-length 24 #建立一個NAT地址池 ip nat inside source list 10 pool lan #使用NAT地址池 access-list 10 permit 192.168.1.1 #利用ACL進行主機過濾
interface Ethernet0/1 ip address 192.168.1.1 255.255.255.0 ip nat inside #指定NAT入口 half-duplex ! interface Ethernet0/2 ip address 192.168.2.1 255.255.255.0 ip nat outside #指定NAT出口 half-duplex ! ip nat pool lan 192.168.2.1 192.168.2.1 prefix-length 24 #建立一個PNAT地址,即公網地址(NAT後的地址) ip nat inside source list 10 pool lan overload #建立PNATaccess-list 10 permit 192.168.1.1 #利用ACL進行主機過濾
相比於前面的動態NAT不一樣的是PAT的地址池中只有一個IP地址,且命令ip nat inside source末尾包含關鍵字overload
R1#show ip nat statistics #查看nat狀態 R1#show ip nat translations #查看nat地址轉換 R1#debug ip nat
在下圖中,配置的IP地址如圖所示,且支配指了一臺主機,然而須要在LAN中再添加25臺主機,26臺主機都要鏈接到互聯網.
在路由器R1中配置DHCP服務器讓LAN中的主機自動獲取IP地址
ip dhcp pool lan network 192.168.76.0 255.255.255.0 default-router 192.168.76.94 domain-name lan
在R1路由器配置ACL
access-list 10 permit 192.168.76.0 0.0.0.255
R1路由器配置NAT
ip nat pool lan 192.0.2.29 192.0.2.29 prefix-length 30ip nat inside source list 10 pool lan overload interface e0/0 ip nat inside interface s1/0 ip nat outside
在路由器R1和R2上配置靜態路由
R1#ip route 192.0.2.28 255.255.255.252 192.0.2.30 R2#ip route 192.168.76.0 255.255.255.0 192.0.2.29
測試NAT是否成功
用LAN中的主機ping因特網中的192.0.2.30
在路由器R1上查看NAT映射:
R1# show ip nat translations Pro Inside global Inside local Outside local Outside globalicmp 192.0.2.29:30318 192.168.76.2:30318 192.0.2.30:30318 192.0.2.30:30318icmp 192.0.2.29:29294 192.168.76.1:29294 192.0.2.30:29294 192.0.2.30:29294icmp 192.0.2.29:32366 192.168.76.3:32366 192.0.2.30:32366 192.0.2.30:32366icmp 192.0.2.29:30574 192.168.76.2:30574 192.0.2.30:30574 192.0.2.30:30574icmp 192.0.2.29:29550 192.168.76.1:29550 192.0.2.30:29550 192.0.2.30:29550icmp 192.0.2.29:28526 192.168.76.1:28526 192.0.2.30:28526 192.0.2.30:28526icmp 192.0.2.29:32622 192.168.76.3:32622 192.0.2.30:32622 192.0.2.30:32622icmp 192.0.2.29:31854 192.168.76.3:31854 192.0.2.30:31854 192.0.2.30:31854icmp 192.0.2.29:30830 192.168.76.2:30830 192.0.2.30:30830 192.0.2.30:30830icmp 192.0.2.29:28782 192.168.76.1:28782 192.0.2.30:28782 192.0.2.30:28782icmp 192.0.2.29:32878 192.168.76.3:32878 192.0.2.30:32878 192.0.2.30:32878icmp 192.0.2.29:32110 192.168.76.3:32110 192.0.2.30:32110 192.0.2.30:32110icmp 192.0.2.29:31086 192.168.76.2:31086 192.0.2.30:31086 192.0.2.30:31086icmp 192.0.2.29:30062 192.168.76.2:30062 192.0.2.30:30062 192.0.2.30:30062icmp 192.0.2.29:29038 192.168.76.1:29038 192.0.2.30:29038 192.0.2.30:29038
能夠看到NAT配置成功,也能夠用wireshark捕獲數據包查看
wireshark捕獲數據包:
能夠看到只有192.0.2.29與192.0.2.30的icmp數據包交換而沒有LAN內的主機與192.0.2.30的icmp數據包