1. 程式人生 > >NAT網絡地址轉換(一)

NAT網絡地址轉換(一)

NAT網絡地址轉換

NAT網絡地址轉換(一)
  1. 簡介

    NAT英文全稱是“Network Address Translation”,中文意思是“網絡地址轉換”,它是一個IETF(Internet Engineering Task Force, Internet工程任務組)標準,允許一個整體機構以一個公用IP(Internet Protocol)地址出現在Internet上。顧名思義,它是一種把內部私有網絡地址(IP地址)翻譯成合法網絡IP地址的技術。因此我們可以認為,NAT在一定程度上,能夠有效的解決公網地址不足的問題。

  2. 分類

NAT有三種類型:靜態NAT(Static NAT)、動態地址NAT(Pooled NAT)、網絡地址端口轉換NAPT(Port-Level NAT)。

靜態轉換是指將內部網絡的私有IP地址轉換為公有IP地址,IP地址對是一對一的,是一成不變的,某個私有IP地址只轉換為某個公有IP地址。借助於靜態轉換,可以實現外部網絡對內部網絡中某些特定設備(如服務器)的訪問。

動態轉換是指將內部網絡的私有IP地址轉換為公用IP地址時,IP地址是不確定的,是隨機的,所有被授權訪問上Internet的私有IP地址可隨機轉換為任何指定的合法IP地址。也就是說,只要指定哪些內部地址可以進行轉換,以及用哪些合法地址作為外部地址時,就可以進行動態轉換。動態轉換可以使用多個合法外部地址集。當ISP提供的合法IP地址略少於網絡內部的計算機數量時。可以采用動態轉換的方式。

端口多路復用(Port address Translation,PAT)是指改變外出數據包的源端口並進行端口轉換,即端口地址轉換(PAT,Port Address Translation).采用端口多路復用方式。內部網絡的所有主機均可共享一個合法外部IP地址實現對Internet的訪問,從而可以最大限度地節約IP地址資源。同時,又可隱藏網絡內部的所有主機,有效避免來自internet的攻擊。因此,目前網絡中應用最多的就是端口多路復用方式。

相關實驗

  • 靜態地址轉換

實驗拓撲圖

技術分享圖片

其中c3是公網的一臺pc機,實驗的要求:實現c3能夠和c1、c2互連互通

sw#conf t        //進入全局模式
sw(config)#no ip routing   //關閉路由功能
sw(config)#int f1/0   //進入f1/0的接口模式
sw(config-if)#speed 100
sw(config-if)#duplex full   //設置雙工匹配
R1#conf t    //進入全局模式 
R1(config)#int f0/1     //進入f0/1的接口模式 
R1(config-if)#speed 100
R1(config-if)#duplex full    //配置雙工匹配
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#no shut       //配置IP地址並且開啟接口
R1(config-if)#exit
R1(config)#int f0/0         //進入f0/0的接口模式
R1(config-if)#ip add 12.0.0.1 255.255.255.0    
R1(config-if)#no shut      //配置IP地址並且開啟接口
R1(config)#exit    
R1(config)#ip nat inside source static 192.168.1.2 12.0.0.3    //將內部局部地址192.168.1.2轉換為內部全局地址12.0.0.3
R1(config)#ip nat inside source static 192.168.1.3 12.0.0.4   //將內部局部地址192.168.1.3轉換為內部全局地址12.0.0.4
R1(config)#int f0/1
R1(config-if)#ip nat inside    //設置應用入口為f0/1
R1(config)#int f0/0
R1(config-if)#ip nat outside   //設置應用出口為f0/0
R1(config-if)#end             //退回特權模式
R1#debug ip nat                //啟用抓包

此時用GNS3上的vpcs為三臺pc機配置IP地址,然後用pc1 ping 接pc3

技術分享圖片

這裏顯示的s=192.168.1.2->12.0.0.3.d=12.0.0.2,就是NAT轉換地址的過程,把局域網的私網地址192.168.1.2轉換為內部全局地址12.0.0.3,然後進行與12.0.0.2(公網地址)的互通

pc2 ping 接pc3

技術分享圖片

這裏通過nat的地址轉換就實現了互連互通了

  • 動態地址轉換

實驗拓撲圖

技術分享圖片

這裏和靜態地址轉換不同的是可以設置一個地址池,然後轉換時在地址池裏選取相應的地址進行轉換

sw#conf t          //進入全局配置模式
sw(config)#no ip routing     //關閉路由功能
sw(config)#int f1/0          //進入f1/0的接口模式
sw(config-if)#speed 100
sw(config-if)#duplex full      //設置雙工匹配

下面配置路由器R1

R1#conf t          //進入全局配置模式
R1(config)#int f0/0     //進入f0/0的接口配置模式
R1(config-if)#speed 100
R1(config-if)#duplex full     //設置雙工匹配
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#no shut        //配置IP地址(局域網的網關)並開啟接口
R1(config-if)#exit
R1(config)#int f0/1            //進入f0/1的接口配置模式
R1(config-if)#ip add 12.0.0.1 255.255.255.0
R1(config-if)#no shut           //配置IP地址(外網網關)開啟接口
R1(config-if)#exit
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255        //設置局域網中允許訪問公網的acl(訪問控制列表)
R1(config)#ip nat pool abc 12.0.0.3 12.0.0.6 netmask 255.255.255.0    //定義合法的公網IP地址池
R1(config)#ip nat inside source list 1 pool abc    //實現網絡地址的轉換
R1(config)#int f0/0 
R1(config-if)#ip nat inside       //設置應用入口為f0/0
R1(config)#int f0/1
R1(config-if)#ip nat outside      //設置應用出口為f0/1
R1(config-if)#end           //退回特權模式
R1#debug ip nat             //啟用抓包

此時同樣的使用vpcs配置pc機的IP地址

用pc1 ping 接 pc3

技術分享圖片

這裏的轉換過程可以看到192.168.1.2先轉換為內部全局地址12.0.0.3(地址池開始的第一個地址)

用pc2 ping 接 pc3

技術分享圖片

下面這裏可以看到轉換為12.0.0.4(合法的IP地址池的第二個IP地址)

這裏就是NAT地址轉換的前兩個實驗

NAT網絡地址轉換(一)