posted

0 Comments

作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化暨分散式安全防護技術方案的介紹與推廣。 

 

我們要簡介一下在邏輯路由器內的路由協定設定方法。基本上大家在包括邏輯路由器,以及Edge Service Gateway上,可以設定靜態路由 (static route),當然也可以設定動態路由。動態路由有支援包括OSPF以及BGP (iBGP / eBGP)。我知道有人看到在Edge Gateway的路由設定介面內有IS-IS。請大家當做沒看到,IS-IS只是實驗性質而已。而且我相信大部分人聽到IS-IS時想到的應該是在伊拉克那一個,不是路由協定這一個…

 

圖說:邏輯路由器內可以設定Static Routes / OSPF / BGP等路由設定

 

Static Routes設定的方式極為直覺,與一般的路由器或閘道器設定並沒有什麼不同:設定目的地網段,Next Hop IP等等。設定動態路由協定時較為複雜一些,詳細步驟還是請大家看NSX的管理手冊,不過這邊我們簡要就設定的步驟進行說明。下圖是我們在設定OSPF / BGP時的主要步驟:

 

圖說:路由協定之設定步驟

 

步驟一:建立邏輯路由器控制虛機,並進行邏輯交換器接取與介面設定 

 

請參考之前網誌“怎麼建立分散式邏輯路由器?“一文,或是NSX管理手冊,針對建立邏輯路由器控制虛機 (Logical Router Control VM)的做法。就像實體環境內我們需要先找到一台實體路由器,且將接取的介面與IP設定完成後,才能設定路由協定。同樣的在邏輯路由器內,我們也需要先建立一台邏輯路由器的控制虛機,然後才能在此控制虛機內進行OSPF or BGP等的設定

 

步驟二:設定Router ID

 

當我們連入已建立的Logical Router的介面內,於Routing的設定內的Global Configuration設定類似下圖。在這裡面,

  • 如果我們設定Default Gateway,實際上就是加上一組0.0.0.0/0的static default route在Logical Router路由表內。在有啟用路由協定的狀況下,一般來說不需要進行設定

 

  • 無論是BGP或是OSPF,我們都需要指定一個Router ID作為Router的識別。一般來說我們會選定一個介面的IP作為Router ID。

 

  • 在同樣的介面內可以設定是否啟用路由器的Logging,以及Log的等級

 

步驟三:設定路由協定基礎參數 

 

與各位在設定其他路由協定一樣,各個路由協定會有一些基礎的設定要做,包括

 

  • 是否要啟用此路由協定

 

  • 是否要啟用Default Route Originate功能。邏輯路由器通常在網路架構的路由終端,不會是產出default route的上層路由器,因此在邏輯路由器上一般不會啟用此功能,而是在Edge Gateway或是外部的實體路由器上才會設定

 

  • Graceful Restart:設定如果因為任何原因路由協定的process要重啟,重啟過程中網路封包是否仍然正常轉送?一般來說我們會勾選起來

 

  • Area ID (OSPF) / Local AS (BGP):各路由協定的基礎設定,意義請參考相關網路書籍…

 

  • Protocol Address與Forwarding Address:這邊是邏輯路由器的獨特設定,我們要特別做個說明。下圖是我們在之前的網誌內有出現過的一張圖,但我們要focus在紅色框框裡面的這個部分。之前在網誌內我們有不斷說明,雖然我們有一個Logical Router的Control VM在,但實際的Data Path是送往Hypervisor內的Kernel Routing Module,封包不會經過Control VM。因此在下面的紅框框內,
  1. DLR Control VM與Edge Gateway間的網路交換是Control Path,這邊交換的就是路由協定的封包
  2. Edge Gateway與DLR (vSphere Hypervisor內的Kernel Routing Module)間的才是真正網路封包的Data Path

 

因此,在DLR Control VM上的這個IP Address,也就是下圖內的192.168.10.3,是我們需要去設定的”Protocol Address”;而Kernel Routing Module所使用的IP,也就是下圖的192.168.10.2,是要去設定的”Forwarding Address”。由於邏輯路由器會有Control Plane與Data Plane的區分,因此會有這邊的特殊設計。一般的實體路由器或是VM-based路由器control plane與data plane是在一起的,因此封包傳輸與路由協定是走同樣的IP介面。

 

步驟四:設定Neighbor相關參數 

 

通常這邊要設什麼呢?鄰居是誰(上圖的192.168.10.1 IP)、Hello / Dead Timer、中間加密的方式與密碼、Cost、Area、Remote AS、Weight…就是這些東西,我們要設的與其他種類路由器要設的並沒有什麼不同

 

步驟五:設定Route Redistribution

 

如下圖,一般來說有兩個重點:第一是記得要確認Route Redistribution Status內,目前所設定的路由協定Route Redistribution功能有打開,如下圖是OSPF有打開此功能。第二是在下面的Route Redistribution Table內,確認Learner Protocol是我們所設定的路由協定,而要送入路由協定的比如說可能包括Connected Route與/或 Static Route有設定進去。

 

步驟六:確認Routing功能啟動,並設定另一台路由器 

 

請到Global Configuration頁面確認我們要設定的路由協定後面有打勾有啟用。如果沒有的話,請到各路由設定頁面內確認有啟用此路由協定。

 

身為受過完整CCXX訓練的工程師,我知道大家只有看到圖形介面,沒有看到command line一定不是很舒服。所以我們的路由器看不看得到路由表呢?啊當然沒問題呀。登入邏輯路由器虛機的console後,用show ip route指令,可以看到

 

看不看得到OSPF的相關資訊呢?沒有問題啊

 

(show ip ospf database太長了我就不貼了)有沒有show ip bgp / show ip bgp neighbor呢當然有啊好啦反正有command line大家有沒有覺得通體舒暢呢?

 

下一篇起,我們要開始和大家討論我們的Edge Service “NFV” Gateway的概念與功能。