軟體定義網路與 NFV

控制平面(control plane)

想像一條鐵路。控制平面就是號誌室與時刻表規劃者——決定哪班列車走哪條軌道、什麼時候走的人。他們從不親手推動列車;他們只設定規則與軌道上的轉轍器。在網路裡,控制平面就是決定流量該如何處理的大腦:某條流的封包該走哪條路、該擋什麼、連結斷掉時路由該如何改變。它產生規則;它不搬運封包。

具體而言,控制平面是建立設備轉送指令的軟體與協定。在傳統路由器裡,這指的是跑在設備內的路由協定(OSPF、BGP 之類):它們與鄰居交換資訊、算出最佳路徑,並填好快速硬體接著要用的轉送表。在 SDN 中,控制平面被從個別設備裡抬出來,集中到一個具備全網視角的控制器,由一處算出每台交換器的規則。無論哪種方式,定義性的特徵都一樣:這是「做決定」的那一層,工作在較慢的邏輯時間尺度上(拓樸改變時才重算),而不是逐封包的時間尺度。

為什麼這個區分重要:把控制平面與資料平面分開,是 SDN 的核心想法,也解釋了許多網路行為。控制平面當機(例如路由協定崩潰)可能讓資料平面繼續照過時規則轉送——有時沒事,有時釀災。淹沒控制平面的攻擊(用大量路由更新壓垮路由器 CPU)與淹沒資料平面的攻擊(塞爆連結)是不同的。而 SDN 之所以能集中控制,正是因為控制平面運作的頻率遠低於封包轉送,所以一個大腦跟得上。

兩座城市之間的連結斷了。控制平面察覺到(某個鄰居不再回應),重算路徑,並裝上繞過斷點的新轉送條目。這個重算只發生一次,耗時數十毫秒到數秒;同一時間,資料平面仍照它當下持有的條目,繼續每秒轉送數百萬個封包。

控制平面偶爾決定規則;資料平面則不停地套用它們。

控制平面與資料平面是角色,不一定是分開的機器。在傳統路由器裡它們住在同一台設備(甚至共用一顆 CPU);SDN 的貢獻是把它們分開,而不是發明它們。

又稱
控制平面控制層