作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、分散式安全防護技術與SD-WAN方案的介紹與推廣。
NAT喔…就是NAT啊…好像沒什麼特別好說的(無精打采貌)
嗯沒有啦NAT (Network Address Translation) 功能很重要啦,還是要和大家說明一下。NSX-T內完整支援各種在資料中心內需要使用到的NAT功能,我們把幾個重點條列如下:
NAT可以啟用於Tier-0或是Tier-1 Logical Router上
NAT服務在Tier-0或是Tier-1路由器上面都可以運作。當然如同我們前面的討論,在這兩種路由器上面運作的意義並不一樣:
- 於Tier-0路由器上面配置的NAT服務代表由NSX管理者配置,於T0 Router之後的資料中心邏輯網路都會藉由此NAT服務進行網路地址置換及隱藏。
- Tier-1路由器上配置的NAT服務由單一租戶 / 應用或自動化系統配置,僅就此Tier-1路由器後的邏輯網段提供位置轉換功能
Tier-0路由器的NAT配置:僅能夠可以啟用於Tier-0 LR的Uplink Port上
也就是說,在Tier-0對實體網路的Uplink介面上可以啟用NAT,但是在往Tier-1路由器的Linked Port或是這個Tier-0路由器本身接取邏輯交換器的Downlink or Centralized Port,是不能跑NAT的。
下圖內可以看到,於Tier-0路由器上我們可以配置NAT的地方是在往實體路由器的Uplink介面。往T1路由器的Linked-Port是不能配置的。

在上圖內的環境,舉例來說我們可以做SNAT的配置如下:把內部172.16.114.0/24網段的所有IP要連往外部實體網路時,轉換為一個外部IP為10.114.215.106,如下圖:

這個配置本身沒有任何問題,但如果只做這個設定,可能會發現在172.16.114.0/24網段的應用系統往外連接時會無法連通。大家可能注意到,這邊SNAT轉換出的IP並非T0路由器與外部實體環境接取的直連網段,因此外部路由器需要知道轉換後的IP: 10.114.215.106是在哪邊(當它看到這個IP時,要知道得往Tier-0路由器丟)。兩個方法:一個是在外部路由器上面對應這個NAT IP寫一筆靜態路由。但更好的方式是如果在T0 Router與外部路由器間有跑BGP,此時T0 Router可以自動地把這個NAT IP透過BGP轉送出去讓外部知道,像下面的配置:

到目前應該很直接吧。但有可能,NAT的配置希望是由自動化系統在Tier-1路由器上面做,或是我們要做的NAT是在兩組不同的Tier-1環境之間。此時要如何運作呢?
Tier-1路由器的NAT配置:必定啟用於Tier-1 LR往T0的LinkedPort上
當管理者或自動化系統在Tier-1路由器上面啟用NAT服務時,不用指定NAT是運作在哪個介面上,因為只能在一個地方:與上層Tier-0路由器相連的LinkedPort。如下圖:




那NSX-T內的NAT服務與NSX for vSphere內的NAT服務有什麼差別呢?
有的,其實有以下三點重要的更新,我個人認為在加上這幾個優化的功能後,目前NSX-T的NAT服務完全可說是已經達到了Enterprise等級:
- 如前面網誌所述,目前Tier-0 / Tier-1路由器的HA切換速度達到秒級,因此即使NSX-T內的Edge構件出現硬體失效等狀況,用戶應用需求的NAT服務不會受到影響
- NSX-T內的NAT服務有支援No_NAT功能,也就是說,管理者可以更細部地配置比如說用戶預設環境對外要做NAT,但如果要連往某些特殊目的地時,則不要跑NAT
- NSX-T內的NAT服務有支援Reflexive NAT,進行一個內部網段與外部網段的IP 1:1對應。這邊使用的情境在Tier-0路由器進行Active-Active ECMP的對外模式,因為是Active / Active網路流可能會左去右回,無法提供Stateful的服務。但Reflexive NAT是Stateless的一對一IP轉換,允許在這樣的環境運作。通常在Openstack / 大型Private Cloud配置的環境內,我們可以採用這樣的機制來提供內部虛機同時一個內部Private IP與對應的外部Public IP。
大致上是這樣子。下一篇我們來看NSX-T內的負載平衡服務。
Comments
0 Comments have been added so far