網絡基礎知識筆記08 NAT網絡地址轉換
隨着Internet的發展和網絡應用的增多,IPv4地址枯竭已經成為制約網絡發展的瓶頸。盡管IPv6可以從根本上解決IPv4地址空間不足的問題,但目前眾多的網絡設備和網絡應用仍是基於IPv4的,因此在IPv6廣泛應用之前,一些過渡技術的使用是解決這個問題的主要技術手段。
網絡地址轉換技術NAT(Network Address Translation)主要用於實現位於內部網絡的主機訪問外部網絡的功能。當局域網內的主機需要訪問外部網絡時,通過NAT技術可以將其私網地址轉換為公網地址,並且多個私網用戶可以共用一個公網地址,這樣既可保證網絡互通,又節省了公網地址。
本筆記主要介紹網絡地址轉換技術的工作原理和基本配置。
靜態NAT的配置方法
拓撲圖如下所示。有兩台私網主機PCA和PCB,他們想通過NAT的方式訪問位於公網的主機PCC。其中PCA通過靜態NAT的方式從私網地址192.168.1.1映射成100.1.1.100來訪問PCC,PCB通過靜態NAT的方式從私網地址映射成100.1.1.200來訪問PCC。
Step 1:基本配置。為各個設備以及端口配置IP,以及配置靜態路由保證網絡調通。
網關設備RA的基本配置:
運營商ISP路由設備RB的基本配置:
RB作為公網的路由設備,在這個場景中只需配置端口IP即可,因為公網的路由器不可能學習到內網的路由,所以不必添加靜態路由指向192.168.1.0網段。
為主機設備添加IP配置在此省略。
Step 2:在網關設備RA配置靜態NAT
在RA連接外網的端口GE0/0/1上配置靜態NAT:
命令:nat static global { 公網地址 } inside { 私網地址 }
用於創建靜態NAT。
global參數用於配置外部公網地址。
inside參數用於配置內部私有地址。
Step 3:通過抓包進行配置驗證
通過PCA發送ping包到外網設備200.1.1.1,可以發現數據包正確到達目的地。
首先通過抓包軟件抓取RA的入接口上的數據包:
可以看到此時數據包的源IP地址是填寫了PCA的私網地址192.168.1.1,那么當數據包經過了RA后會發生什么變化呢?
接着通過抓包軟件抓取RA出接口上的數據包:
此時RA將私網地址192.168.1.1通過靜態NAT的方式映射為一個公網的地址100.1.1.100,再轉發給公網的設備。對於公網的設備來說,與其通信的IP地址不是192.168.1.1,而是映射的公網地址100.1.1.100。
對配置進行驗證:
動態NAT的配置方法
配置動態NAT需要與ACL(訪問控制列表)搭配使用。
拓撲圖和靜態NAT的一致。網絡的基本配置已省略。
Step 1:配置NAT地址池
命令:nat address-group { 組號 } { IP起始地址 } { IP終止地址 }
該命令用於配置NAT地址池。
以上命令配置了一個地址范圍為100.1.1.50到100.1.1.250的地址池,地址池的組號為1(范圍從0到7)。
Step 2:配置ACL匹配需要進行NAT的流量
配置需要進行NAT的流量為192.168.1.0網段
Step 3:應用動態NAT
命令:nat outbound { ACL號 } address-group { 地址池號 } no-pat
用來將一個訪問控制列表ACL和一個地址池關聯起來,表示ACL中規定的地址可以使用地址池進行地址轉換。
使用地址池1(address-group 1)中的地址進行地址轉換。
Tips:no-pat是一個可選的參數,表示只轉換數據報文的地址而不轉換端口信息。
Step 4:配置驗證
抓包查看轉換情況
對配置進行驗證:
命令:display nat address-group { 組號 } 用來查看NAT地址池配置信息。
命令:display nat outbound 查看動態NAT配置信息。
可以用這兩條命令驗證動態NAT的詳細配置。在本示例中,指定接口GE0/0/1與ACL關聯在一起,並定義了用於地址轉換的地址池1。參數no-pat說明沒有進行端口地址轉換。
Easy IP的配置方法
Easy IP配置方法相對更簡單。因為其不需配置一個地址池,而是直接通過將私網地址映射為網關RA的出接口GE0/0/1的IP地址。當多個私網地址需要地址轉換時,則利用端口號來加以區分。拓撲圖同上。
Step 1:配置Easy IP
命令:nat outbound { ACL號 }
用來配置Easy-IP地址轉換。
在本示例中,命令nat outbound 2000表示對ACL 2000定義的地址段進行地址轉換,並且直接使用GE0/0/1接口的IP地址作為NAT轉換后的地址。
Step 2:配置驗證
命令:display nat outbound
查看命令nat outbound的配置結果。
Address-group/IP/Interface表項表明接口和ACL已經關聯成功,type表項表明Easy IP已經配置成功。
再通過抓包軟件查看地址轉換的情況:
NAT服務器的配置方法
拓撲圖與上面示例基本一致,私網中換成一台運行http服務的服務器,IP地址為192.168.1.1/24,公網中換成一台可以訪問http服務的客戶端,IP地址為200.1.1.1/24。其他的網絡基本配置基本不變。
現有一台公網的客戶端想要訪問私網的服務器。按照實際情況,公網的設備Client不可能擁有訪問私網的路由,那么就需要為私網服務器Server提供一個公網的IP地址,讓公網的設備Client可以通過這個IP地址訪問到私網的服務器。
Step 1:配置NAT服務器
網關路由器RA的出接口GE0/0/1配置如下:
命令:nat server protocol { 網絡協議號|icmp|tcp|udp } global { 公網地址 端口號 } inside { 私網地址 端口號 } vpn-instance VPN實例名稱 acl ACL號 description 描述內容
用來定義一個內部服務器的映射表,外部用戶可以通過公網地址和端口來訪問內部服務器。
參數protocol指定需要地址轉換的協議;
參數global-address指定需要轉換的公網地址;
參數inside指定內網服務器的地址。
通過對RA的接口GE0/0/1可知,為私網服務器Server配置了一個公網的IP地址100.1.1.200。則當公網的設備Client想要訪問Server時,只需要在數據包的目的IP處填寫公網IP地址100.1.1.200,通過路由將數據包發送到RA。RA通過NAT服務器的功能,將目的IP改成192.168.1.1並轉發給自己所連接的私網服務器Server。
私網服務器配置如下:
Step 2:配置驗證
在公網客戶端Client上輸入http://100.1.1.200(最好帶上端口號80。因為http默認使用80端口所以這里沒有寫),可以看到訪問成功。
對網關RA的出接口進行抓包:
源IP地址為200.1.1.1,訪問私網服務器Server的公網IP地址100.1.1.200,端口號為80
對網關RA的入接口進行抓包:
可以看到通過RA的地址轉換,目的IP地址已經換成了私網服務器Server的IP地址192.168.1.1,實驗成功。
小結
1、哪種NAT轉換允許服務器既能被內部訪問又能被外部訪問?
通過NAT內部服務器配置,將公網地址與一個私網服務器地址綁定,在地址轉換后,外網主機便可以通過公有地址訪問內網服務器。同時,私網地址用戶可以通過服務器的私網地址訪問內網服務器。
2、NAPT(網絡地址端口轉換)有什么功能和特點?
NAPT是基於端口的轉換,而不是基於IP地址的轉換。NAPT允許多個內部地址映射到同一個公有地址的不同端口。