[MOXA] EDR Series NAT應用與設定說明
Introduction to NAT
NAT(Network Address Translation)可以覆寫封包中來源或目的端的IP位址,通常出現在Layer 3的網路設備上,如路由器、防火牆、或者獨立的NAT伺服器;NAT初期是作為解決IPv4位址不足的問題而發展起來,在網際網路協定中,所有的設備必須要有自己的IP位址,通常也被稱做Public IP,但是整個IPv4的協定中只能提供約43億個Public IP,對於全世界的使用需求是遠遠不足的;所以IETF(Internet Engineering Task Force)組織推出了許多技術試圖盡量推遲這個狀況的發生,其中就包括了NAT技術,讓多個Private IP可以透過一個Public IP連接網際網路;雖然IPv4的耗盡對一般人來說似乎影響不大,但NAT技術發展至今已經成為一個廣泛使用的技術,不在只限於當初的目的,透過封包偽裝、封包過濾提高資訊安全,或者透過負載平衡提高系統效能等。基本的NAT分類可以分為1 to 1 NAT與N to 1 NAT,1 to 1 NAT是將一個Private IP轉換為一個Public IP,N to 1 NAT則是將多個Private IP轉換為一個Public IP;依據轉換的方式又可以分為Full-cone NAT、(Address)-restricted cone NAT、Port-restricted cone NAT、與Symmetric NAT,或者分為Static Translation、Dynamic Translation、與PAT (Port Address Translation);總之在不同的設備或者服務中,NAT可能會有許多的分類方式,這就必須依靠使用者閱讀手冊去理解這些名稱了。
而我在工業領域的經驗中,對於將工廠設備連接網際網路,台灣大部份的工廠依舊是比較保守的,中小企業對於這樣的需求沒有太大的需要、大型企業則有資安上與架構變更上的疑慮在,所以目前會使用到NAT的情況,大多是用於工廠的第一層區域網路與第二層子區域網路之間的轉換,以解決第一層區域網路IP位址不足的問題。
在開始說明MOXA EDR Series NAT的應用與設定之前,有幾個重要的名詞與概念必須要先建立。
Inside與Outside
在一般的使用情況下,NAT通常會使用在企業單位的邊際路由器上,一邊是連接著網際網路,一邊是連接的企業內部網路,所以在設定上,必須先指定出連接內部網路的Inside介面,與連接網際網路的Outside介面。
以上圖為例,Host A與Host B各處於各自的區域網路中,分別透過路由器RA與RB進行NAT連上網際網路,若Host A要對Host B發送封包(假設先不考慮NAT穿透(NAT Traversal)的問題),則必須透過RA進行NAT,那麼RA連接Host A的區域網路的介面eht0稱為Inside,相對的連接網際網路的介面eth1稱為Outside。
Local與Global Address
如文章開始所述,NAT的功能在於覆寫封包中來源與目的的IP位址,所以對於覆寫這個轉換動作前後的改變必須加以定義,幫助使用者在設定、設計、討論的時候,能夠正確的區別;轉換前的IP位址被定義為Local Address,轉換後的IP位址被定義為Global Address;在設定時,就必須指定出哪些(可能有一個或多個)Local Address要轉換為哪些(可能有一個或多個)Global Address。同樣以上圖為例,Host A透過RA連接到Host B時,Inside Local Address會是Host A eth0的IP位址,進到RA之後,NAT會將Inside Local Address轉換為Inside Global Address,也就是RA eth1的IP位址,然後透過RA的Outside介面進入網際網路;另外以整個架構來看,RB的eth1稱為Outside Global Address,而Host B的eth0稱為Outside Local Address,但這兩個Address與RA的NAT設定無關。
NAT of MOXA EDR Series
EDR系列是MOXA推出的安全路由器設備,結合了防火牆、NAT、VPN、路由器、交換機的功能,提供了工業等級的硬體規格,以及簡單的設定介面,讓使用者可以快速的進行設備設定。EDR提供了三種NAT的方式,分別為1 to 1、N to 1、Port Forwarding,每台EDR可設定128組NAT規則(Rule);啟用NAT功能後,當封包進入EDR時會由第一條規則(index為1)開始檢查,若符合該規則就進行轉換,若不符合就以下一條檢查,直到最後一條,若直到最後一條皆不符合,該封包會被丟棄。
1 to 1 NAT
1 to 1 NAT是最基本也最簡單的NAT方式,當有內部設備需要連接到外部網路時,可以使用1 to 1 NAT讓內部設備的Private IP轉換為一個Public IP,便可連接外部網路;除了最基本的應用之外,1 to 1 NAT也可以讓使用者在擴建設備的時候節省設定的時間。在擴建產線時,如果有不同產線但相似的設備時,對於內部的設備可以直接複製原本產線的設定,透過NAT的功能給予不同的Global IP;如下圖所示,當擴建產線2時,設備的Local IP與產線1皆相同,只需要透過EDR(EDR-810/902只提供一個WAN介面,EDR-903才有提供兩個WAN介面)修改NAT中Global IP的對應,便可讓遠端使用者與設備互相發起通訊。
MOXA EDR Series NAT的設定內容包含以下選項。
Name
該NAT規則的命名。
Enable
啟用或停用該NAT規則。
NAT Mode
選擇NAT類型,包括1-1(1 to 1 NAT)、N-1(N to 1 NAT)、Port Forward(Port Forwarding NAT)。
VRRP Binding
該NAT規則是否綁定某條VRRP(Virtual Router Redundancy Protocol)規則。
Outside Interface
選擇該規則的Outside介面,EDR-810可選擇WAN、LAN、BRG_LAN,EDR-902可選擇Auto、WAN、LAN,EDR-903可選擇WAN、WAN2、LAN。
Global IP
設定該規則中要轉換的Global IP。
Local IP
設定該規則中要轉換的Local IP。
Bidirectional 1-to-1 NAT
如果內部設備與外部設備或使用者需要互相發起通訊,可以利用1 to 1 NAT建立起雙向的通訊(N to 1與Port Forward只能LAN向WAN單向發起通訊);以下圖為例,10.10.10.100的PC需要與192.168.100.1的PLC進行雙向通訊,而10.10.10.1是EDR的WAN介面,192.168.100.100是EDR的LAN介面。此時建立兩條1-to-1 NAT的規則,第一條的Outside Interface是WAN,Global IP是10.10.10.1、Local IP是192.168.100.1,第二條的Outside Interface是LAN,Global IP是192.168.100.100、Local IP是10.10.10.100,如此便可以簡單的在兩個不同的網路之間建立雙向的1-to-1 NAT,而無須透過路由來提供Gateway。
N to 1 NAT
如果在內部網路有多台設備想要連接外部網路,但是Public IP又不足以用1 to 1的方式分給所有內部設備,此時可以使用N to 1 NAT;當內部設備發送出請求(Request),內部設備的Private IP與Port會被轉換為Public IP與隨機的Port,NAT會記錄下這個轉換的對應關係,當外部設備回傳回應(Response)後,NAT會依照對應表將回應的封包傳送到正確的內部設備中。N to 1 NAT也被稱作NAPT (Network Address Port Translation)或者IP Masquerading,透過這樣的NAT方式,不僅可以讓內部設備連上外部網路,同時也兼具隱藏內部設備IP位址的保護功能;同時N to 1 NAT僅能建立單向轉換,無法讓外部網路對內部設備傳送請求,避免外部網路對內部設備的存取。
N to 1 NAT在設定上與1 to 1 NAT重複的部分便不再贅述,欲啟用N to 1 NAT需在NAT Mode的部分選擇為N -1,Local IP的部分會變為設定一個IP區間,使用者可以自行將要轉換的Private IP區間在此輸入。
Port Forwarding
如果想讓外部網路可以連入內部設備,但又可以隱藏內部設備的IP位址,可以使用Port Forwarding的功能;該功能可以建立一個外部介面與內部設備的Port對應,例如在內部網路中架設了一個HTTP伺服器,並開啟80 Port讓使用者連入,使用Port Forwarding的功能可將Public IP的8080 Port與Private IP的80 Port對應,使用者可以於外部網路連接Public IP的8080 Port,透過NAT請求會被轉向至Private IP的80 Port,如此HTTP伺服器便可回應外部使用者的請求。啟用Port Forwarding NAT只需NAT Mode選擇為Port Forward便可進行設定;與1 to 1 NAT相同的部分也不再贅述,僅說明不同的部分。
Global Port
設定該規則中要轉換的Global IP的Port。
Local Port
設定該規則中要轉換的Local IP的Port。
Local IP
設定該規則中要轉換的Local IP。
Protocol
選擇該Port所使用的通訊協定,包括TCP、UDP、TCP & UDP。
留言
張貼留言