NAT的三種形態

這一篇講NAT,NAT其實就是IP地址轉換,轉換是不區分公有IP還是私有IP,他只是有轉換IP這個功能,靈活使用就可以了。

看一下分類

1、SAT 靜態地址轉換

一對一的地址轉換。

2、DAT動態地址轉換

將一個或者多個地址轉換成一組地址中的一個或者多個,動態的決定哪兩個IP進行轉換。

3、PAT端口地址轉換

將一個或者多個地址轉換成出接口的IP的不同端口(port)。

1和2可能比較好理解,我來舉個例子方便理解一下3。

我內網有192.168.1.0/24網段PC10臺,網絡採用固定IP網絡,即網關出接口的IP是一個公網IP 202.99.99.99,PAT就是將內網的10臺PC的IP進行轉換,192.168.1.1轉換成202.99.99.99 port:42000,192.168.1.2轉換成202.99.99.99 port:42001,接口是我舉例的不是真的,但是原理就是這樣,通過不同的接口,區分不同的ip地址轉換,當數據流結束以後,這個綁定會解除。

這裏說一下,NAT其實很多地方都會用到,所以在ccna裏我覺得他也是重點之一。

------------------------------------------------------------------------------------------------------------

廢話不多說,我用一個實驗,去說一下三種NAT怎麼配置


我模擬了一個沒有冗餘的基本公司環境

1、AccessSW連接pc,DHCP獲取1.1.1.100~150

2、WebSW連接的是一個Web服務器集羣

3、AloneServer作爲一個獨立的發佈的Server

4、CoreSW是核心三層交換機,上面會配置PC的DHCP

5、GW作爲轉發層設備,上面會有默認路由,回程路由

6、ISP作爲運營商一端的設備,是無法配置路由等等的,我就給他配上IP,其他什麼也不動。

我會把這些配置都配好,然後我們看一下,各個pc和Server能ping到哪裏?爲什麼?

----------------------------------------------------------------------------------------------------------------

配置完成!然後測試,發現最遠可以ping通GW的e0/0接口192.168.1.1,這時候你就說了,我不是給GW配了默認路由指向ISP麼?對的,但是回程路由呢?ISP收到來自1.1.1.0網段,2.2.2.0網段,3.3.3.0網段,這麼多私有地址,全世界會有無數個,他怎麼知道誰是誰?(講道理,GW和ISP之間使用的IP也必須是公有IP,大家自己腦補一下)

還有就是,ISP可是運營商的設備,他不可能讓你去配置。那怎麼辦?內部網絡不通,那我再試一下,從GW去pingISP所擁有的所有網段,發現沒有問題,這是爲什麼?因爲,GW和ISP是直連路由,ISP當然知道GW的存在,也知道怎麼去GW。說道這裏,我就簡單的解釋一下NAT到底做了些什麼。

NAT會把一個指定的IP或者網段,轉換成一個或者多個與對端設備可以通信的IP地址,也就是同網段,這個網段可以是私有,可以是公有,並且NAT會記錄下這些轉換,當接收到回程數據包的時候,就會一一的轉發。

那麼我內部有各種不同的IP環境,需要轉換的方式不一樣,這就需要NAT的三種模式解決這個問題。

接下來我會完成三種NAT

1、AloneServer做Static NAT(SAT)

2、WebServer集羣做Dynamic NAT(DAT)

3、PC做Port NAT(PAT)

-------------------------------------------------------------------------------------------------------------

不管什麼NAT都要先確定內部接口和外部接口(NAT是在GW上做的)

GW#conf t
GW(config)#int e0/1
GW(config-if)#ip nat inside                        //確定內部接口
GW(config-if)#int e0/0                           
GW(config-if)#ip nat outside                      //確定外部接口

---------------------------------------------------------------------------------------------------------------

先做SAT

GW(config)#ip nat inside source static 3.3.3.10 192.168.1.10
命令就這一句,我解釋一下

ip nat-------創建nat

inside source---------內部源

static---------靜態

3.3.3.10---------AloneServer的IP地址(內部本地IP---Inside local IP address)

192.168.1.10-----------------轉換之後的IP(內部全局IP---Inside Global IP address)

注意:這裏我再強調一下,192.168.1.0這個網段,如果是真實情況,應該是一個公有地址的網段

然後從AloneServer ping 一下 202.96.209.133就通了,我在ISP上起了debug ip icmp看一下收到的ping包是從哪裏發來的

*Mar  1 00:45:02.911: ICMP: echo reply sent, src 202.96.209.133, dst 192.168.1.10

可以看到目標地址已經變成了192.168.1.10,轉換成功

--------------------------------------------------------------------------------------------------------------------

接下來做DAT

1、做一個訪問控制列表,之後會將網段和DAT進行綁定,由於一個路由器上未必只有一個DAT。

GW(config)#access-list 1 permit 2.2.2.0 0.0.0.255      //注意反掩碼

2、設置轉換之後的地址池(公網的)。

GW(config)#ip nat pool Web 192.168.1.100 192.168.1.200 prefix-length 24

Web是這個地址池的名字可以自定義

prefix-length是子網掩碼\也可以用Netmask(可以打問號看一下,效果是一樣的)

3、綁定

GW(config)#ip nat inside source list 1 pool Web

list1和Web進行綁定,然後從Web1和Web2 PING 202.96.209.133,就可以通了

檢查debug

*Mar  1 01:02:35.783: ICMP: echo reply sent, src 202.96.209.133, dst 192.168.1.101
*Mar  1 01:02:39.847: ICMP: echo reply sent, src 202.96.209.133, dst 192.168.1.100

可以發現,他已經接收到了之前我規定的地址池網段,所發來的ICMP包

----------------------------------------------------------------------------------------------------------------

最後給PC做PAT

1、GW(config)#access-list 2 permit 1.1.1.0 0.0.0.255
1.1.1.0是pc的網段

2、GW(config)#ip nat inside source list 2 interface e0/0 overload

綁定NAT outside接口,並且設置複用(overlord)

PING測試

pc1和pc2都ping一下ISP的202.96.209.133,結果是通然後查看一下ISP的debug信息

*Mar  1 01:16:21.339: ICMP: echo reply sent, src 202.96.209.133, dst 192.168.1.1
*Mar  1 01:16:22.363: ICMP: echo reply sent, src 202.96.209.133, dst 192.168.1.1
發現都是GW的e0/0接口的IP,我在GW上使用查看NAT轉換的命令

GW#sh ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
icmp 192.168.1.1:1024  1.1.1.100:22733    202.96.209.133:22733 202.96.209.133:1024
icmp 192.168.1.1:23245 1.1.1.100:23245    202.96.209.133:23245 202.96.209.133:23245
icmp 192.168.1.1:23501 1.1.1.100:23501    202.96.209.133:23501 202.96.209.133:23501
icmp 192.168.1.1:22221 1.1.1.101:22221    202.96.209.133:22221 202.96.209.133:22221
icmp 192.168.1.1:22477 1.1.1.101:22477    202.96.209.133:22477 202.96.209.133:22477
我截取了一下,1.1.1.100是PC1           1.1.1.101是pc2

可以看到他們被轉換成了192.168.1.1的不同端口(port),他就是這麼工作的。發過去是這個端口,回覆也是這個端口,這樣NAT就能知道,到底應該轉發給誰了。

---------------------------------------------------------------------------------------------------------------




好了NAT就全部完成了,正常的CCNA其實也就到這裏。之後我還會有一片HSRP和端口聚合的實驗,基本上這個實驗我會按照最真實的環境去配置,保證物理上的冗餘,和線路上的冗餘。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章