軟體定義網路與 NFV

南向介面(southbound API)

想像把 SDN 架構畫成白板上的一疊:控制應用在最上面、控制器在中間、實體交換器在最下面。南向(southbound)一詞只是指「往下」的方向——從控制器朝向交換器。南向介面就是控制器用來和它下方那些真正的轉送硬體對話的介面與協定:用來裝設規則、讀取計數器、得知事件。

具體來說,南向介面是控制器的決定如何變成交換器裡真實行為的途徑。透過它,控制器新增、變更、刪除比對動作表項;它讀取統計(某條規則匹配了幾個封包);它收到通知,例如某埠掉線,或某個什麼都沒匹配到的封包(packet-in)。OpenFlow 是最知名的南向協定,但不是唯一——其他還有用於設定的 NETCONF/YANG、以 gRPC 為基礎的介面如 gNMI,以及各廠商專屬的通道。關鍵性質在於:南向介面是面向硬體且細節導向的,它處理的是流規則、埠與計數器這些轉送的具體機構。

為什麼重要:南向介面是讓資料平面能被軟體控制的關鍵,而把它標準化,才讓你能在同一個控制器之下混用不同廠商的交換器。它與北向介面(控制器朝上、面向應用的介面)成對,兩者刻意處在不同的高度:南向偏低階、貼著交換器,北向偏高階、對應用友善。一個誠實的提醒:南與北只是從圖的畫法來的方位詞——它們和地理毫無關係,而控制器通常會同時講好幾種南向協定,以連到一支混合的設備艦隊。

某負載平衡應用透過北向介面告訴控制器:把網頁流量分散到三台伺服器。控制器把這個願望化為具體的流規則,再透過南向介面(走 OpenFlow)下推到每台交換器。交換器於是據此改寫並轉送封包——南向這一步,正是意圖終於變成硬體行為的地方。

南向是往下的路:從控制器的決定,到交換器的動作。

南向與北向只是圖上的方向(往下朝交換器、往上朝應用),本身不是標準。OpenFlow 是一個南向協定,但南向介面是一個角色,許多協定都能擔任。

又称
southbound interface南向 API南向介面