我這裡所提到的”Network”,所指的是一個完整的網路系統,包含所有的軟體、硬體、和線路。
聖胡安的海灘 |
原本網路系統的行為,全部都是靠網路管理人員純手工,來安裝、連接、做完設定、測試。之後,網路系統就開始做交換和處理所有穿越的封包。
傳統的網路設定,我們只能做以下的安排:當線路故障被協定偵測到,網路系統自動切換到備援路徑;當軟硬體故障,被協定偵測到,網路系統自動切換到備援軟硬體。故障的偵測,和自動修復的機制,都是透過一些自動的動態協定,例如,OSPF,或是Spanning Tree Protocol。
如果網路上面的網段地址都是固定的,VLAN總數和號碼都是固定的,網路使用者的流量型態是固定的,那麼以上這些協定,其實已經非常足夠解決所有網路的問題了。
需要SDN可能的動機
隨著應用系統的改良、改變,數據中心 (Data Center),也跟著開始有了完全不同的使用情境。例如,以下這三種可能的新場景。
- 伺服器經常被格式化以後重新安裝。例如原本扮演Solaris資料庫的伺服器,稍後可能變成Windows檔案伺服器,數天後,又變成Linux Apache伺服器。
- 伺服器肚子裡面,有很多很多的虛擬機器,運行在裡面,而且,虛擬機器經常地被產生、複製、搬遷、刪除。
- 您的網路系統,裡面有非常多的租用房客,每一個房客控制著超過一套的虛擬機器、或實體機器。每一個房客的流量必須被隔離,都有不同的安全存取政策,而且,很多房客的IP地址都是重複的。
如果是以上這三種情況的任何一種,網路管理人員將必須不斷地修改網路系統的VLAN、IP網段地址、存取控制、品質服務 (Quality of Service, QoS) 等等設定,來配合快速變動的需求。
如果一切都還是全部依賴網路管理人員的手工設定,當需求改變,網路管理人員必須跟著做設定調整。結果是,網路管理人員,將不停地重複幾乎相同的設定工作,每做一次改變,就需要花上好幾天的檢查、設定,還要花上好幾天重新做測試,還有,我也幾乎可以預測,手工的設定,一定也是錯誤百出。整個工作的流程,不只是辛苦,而且一定是充滿挫折感。
因此,如果您的工作環境,剛好是以上三種的任何一種,您將會需要更好的工具,來協助您做好日常的管理。也就是說,透過軟體來幫您「自動地」做網路行為的設定,而不是,只靠純手工的設定。
Software Defined = Programmable
如果全部都是一些重複的設定,例如,整段的設定只修改了VLAN號碼、IP網段地址,其他不改變,那麼,最省力的方式,就是我們編排一個測試過的劇本(Script),每一次套用設定,我們只需要指明VLAN號碼、或是IP網段地址就可以了。
當然,我們的劇本,不能只是一昧地覆寫設定。劇本最好包含現有設定的檢查,確認哪些設定需要修改,可以修改,物件的名稱等等,然後,再決定接下來要套用哪一種設定塊。
如果網路系統,可以提供劇本的介面(Interface),可以透過任何一種程式語言,從外部做複雜的檢查、邏輯判斷、代換欄位、設定寫入,那麼,這樣的網路,就可以被稱為SDN。
其實所謂的Software Defined,從另外一個角度來看,就是 Programmable,可程式化。或者更精準地說,Programmable by network users,可以被網路系統的使用者,編寫出各種的邏輯判斷,決定網路設定的內容,就稱為Software Defined.
One more thing…
是否有時間上的壓力,我認為其實是決定您是否需要SDN的關鍵因素。
以上的場景,假設我們沒有時間上面的壓力,例如,網路設定通常都超過半年以上才變動一次,我們即使全部都辛苦地用手工的方式管理,一樣可以完成全部的工作。這個時候,SDN部署的效益,感覺就不會太明顯。
反過來看,如果網路設定的改變,經常都是數天內必須完成,SDN的效益,就會非常地明顯。
我發現大部分的產業,其實都屬於前者,都沒有太大的時間壓力。所以,是否需要真的要跟大家一樣去趕流行,我覺得可以先確認您的網路設定變動的週期。
0 意見:
張貼留言
小技巧:也可以 匿名 留言!