NAT(網路地址轉換)(四)

lnboxue發表於2017-05-31

(二)動態NAT 

      動態NAT是我們要討論的第二種NAT模式。動態NAT和靜態NAT一樣都不太適合應用在小網路中,而是更多地應用在具有複雜網路的較大規模的公司中。動態NAT和靜態NAT的區別是靜態NAT提供了一對一的內部私有地址和公網地址的靜態對映,而動態NAT也會將私有地址和公網地址進行對映但並不是一對一的對映,即內部私有地址也許會對映到一組公網地址上,具體使用(對映到)哪個公網地址是不確定的。這些公網地址都來源於NAT路由器上配置的地址池。

      對於動態NAT,只有NAT路由器收到地址轉換請求的時候才生成地址轉換表並使用它進行地址轉換。這點與靜態是不同的,靜態NAT的地址轉換表的特點是管理員一旦配置了靜態NAT的一對一的IP地址對應關係後,靜態地址轉換表就已經生成了,而且靜態地址轉換表中的對映關係會一直保留在記憶體中,是不存在超時的。動態NAT地址轉換表是有超時時間的,超時時間可由管理員手工配置,超時(過期)了的轉換條目會被定期地從地址轉換表中清除掉,這種機制可讓路由器的記憶體為其他的內部主機騰出更多的記憶體空間。圖9描述了動態NAT的工作方式:


圖9

       圖9中我們從運營商租用了4個公網地址,NAT路由器將這4個公網地址放在了一個IP地址池中。地址池中的這4個公網地址將會按順序地被動態地對映到內部上網主機。比如,工作站192.168.1.100首先發起了上網請求,這個工作站對映的公網地址就是100.100.100.3,可以看出這個公網地址是NAT路由器從4個公網地址所在的IP地址池中順序選取的。工作站的私有地址和公網地址的對映關係會一直持續到工作站上網會話的結束。在NAT地址轉換表超時前,如果NAT路由器沒有收到任何該工作站傳送的流量,則這臺NAT路由器將終止這條對映記錄並將釋放掉的公網IP地址重新分配給其他的內網工作站使用。圖9中的工作站192.168.1.101上網使用的公網地址為100.100.100.4,工作站192.168.1.102上網使用的公網地址為100.100.100.5。設想一個場景,午休時間到了,三臺工作站的使用者都出去吃午飯了。過了一段時間,NAT路由器的超時時間到了,三臺工作站的對映記錄相繼被路由器刪除。接著IP地址為192.168.1.102的使用者首先返回並開啟IE瀏覽器開始上網。NAT路由器將重新為這個使用者建立一條對映關係,這時這個使用者上網使用的公網地址就變為了100.100.100.3,如圖10所示,動態NAT中內網使用者上網時使用的公網地址不是固定的,而是隨機的。


圖10

1、部署動態NAT
      想到動態NAT時,我真的無法回想起在為公司/企業或我自己的網路部署NAT時用到過它,但那並不意味著動態NAT沒有用。每個人對網路的需求都是不同的,儘管我必須承認動態NAT同其他形式的NAT相比部署起來有更大的難度,但在某些網路的搭建過程中選擇動態NAT時它卻工作得非常好。
      下面的這個企業案例為我們展示了在什麼情況下我們應該考慮部署動態NAT。出於隱私方面的考慮,本案例中的公司的真實名稱均已隱去。”netscene”公司是一家軟體開發公司,該公司致力於應用軟體的研發。作為一家大型軟體公司,它有多個能夠幫助它完成軟體開發的承包商。出於研發的需要,”netscene”公司需要它的軟體承包商(partner)與”netscene”公司的內部私有網路存在一條永久連線。這樣,這些承包商就能夠通過網路得到所需的專案原始碼。現在“netscene”公司為了讓連線它的網路更安全,它購買了防火牆。通過對防火牆進行配置來對訪問研發網路的每個承包商進行規範。如圖11所示:


圖11

 ”netscene”公司的防火牆只允許”partner”的內部網路訪問研發伺服器,”partner”所在的網段是192.168.10.0/24,這個網段也是”partner”的主要研發網路。如果僅僅是這樣的需求,這種網路拓撲也能工作的很好。但是”partner”正在擴充套件它的研發網路,“partner”將新擴充套件的這個研發網路稱為“partner-new”,”partner-new”所在的網段是192.168.20.0/24,所以192.168.20.0/24也需要訪問netscene的研發網路。如圖12所示:

圖12

      在“partner-new”這個網段上的所有主機都通過從DHCP伺服器那裡獲取(租用)的IP地址訪問netscene網路。為了讓新網路能夠訪問netscene的網路,我們需要“欺騙”一下防火牆,讓防火牆認為來自新網路的工作站實際上是192.168.10.0/24這個網路的一部分,那樣的話,防火牆就不拒絕這些流量了。其實這個時候你也可以使用前面介紹的靜態NAT來解決這個問題,但靜態NAT用在這個場合是有一些問題的:
(1)所有的新網路的主機都使用DHCP服務,這些主機的地址都不是固定的,而靜態NAT是需要一對一的對映關係。
(2)partner的管理員想最大程度地做到新網路(partner-new)的訪問是安全的,這就需要跟蹤每一個連線進來的IP,由於新網路中的使用者的IP地址都是動態的,所以實現起來比較複雜。
      在這個場景中如果部署動態NAT將工作得很好。我們可以在新舊網路之間部署一臺路由器。如圖13所示:


圖13

       根據動態NAT的工作方式,我們需要將192.168.10.0/24這個網段的若干IP地址保留起來,比如可以保留192.168.10.225-192.168.10.254這30個地址。這些保留起來的IP地址都是NAT-B路由器用來對映新網路中的主機的。這樣,新網路中的主機無論被對映到保留地址中的任何一個IP地址,netscene防火牆都會認為它是來自192.168.10.0/24這個網路的一部分。至於192.168.10.0/24這個網段到底需保留多少個用於轉換的IP地址就要取決於新網路中發起同步連線的PC數量了。例如,新網路中如果有25臺主機同時向netscene網路發起連線,那麼在192.168.10.0這個網路中就至少需要25個被轉換的IP地址。這些被轉換的IP地址必須保留起來不能被192.168.10.0這個網路中的其他主機使用,否則就會發生IP地址衝突。所以推薦將這個網路的最後30個地址預留出來作為轉換地址。

2、配置動態NAT

如圖14所示:


圖14

      “Partner-new”網路中的主機192.168.20.100和192.168.20.200需要訪問netscene網路,當第一臺主機192.168.20.100的資料包到達NAT-B時,NAT-B將192.168.20.100替換為192.168.10.225;當第二臺主機192.168.20.200的資料包到達NAT-B時,NAT-B將192.168.20.200替換為192.168.10.226。如果partner-new網路中有更多臺主機需要訪問netscene網路,那麼當這些資料包到達NAT-B時,NAT-B都會將這些資料包中的源IP地址替換為partner網路預留的30個IP地址中的任何一個IP地址,然後再將其轉發到netscene研發網路。
 
路由器NAT-B的動態NAT配置如下:

NAT-B>en
NAT-B#conf t
NAT-B(config)#access-list 100 permit ip 192.168.20.0 0.0.0.255 192.168.0.0 0.0.0.255
#建立訪問控制列表允許來自192.168.20.0/24的主機訪問192.168.0.0/24網路內的主機
NAT-B(config)#ip nat pool partner-new-pool 192.168.10.225 192.168.10.254 netmask 255.255.255.0
#建立名稱為partner-new-pool的地址池,並將192.168.10.225到192.168.10.254這30個IP地址放到地址池中
NAT-B(config)#ip nat inside source list 100 pool partner-new-pool
#將訪問控制列表和建立的地址池相關聯
NAT-B(config)#interface f0/0
NAT-B(config-if)#ip nat inside      #在內部介面f0/0啟用NAT
NAT-B(config-if)#exit
NAT-B(config)#interface f0/1
NAT-B(config-if)#ip nat outside    #在外部介面f0/1啟用NAT
NAT-B(config-if)#end
NAT-B#








相關文章