SDNの構成
SDNの構成
各レイヤ(層)の役割
SDNアーキテクチャは、アプリケーション層(レイヤ)、コントロール層(レイヤ)、インフラストラクチャ層(レイヤ)の3つの層から構成されています。
また各層の間を接続するインタフェースとしてSouthbound APIとNorthbound APIがあります。
アプリケーション層(レイヤ)
SDNコントローラの操作に使用する各アプリケーションのための層です。
コントロール層(レイヤ)
コントロールプレーンとしての(ネットワーク機器を制御する)役割を果たします。SDNコントローラのための層です。
インフラストラクチャ層(レイヤ)
データプレーンとしての役割を果たします。そのためデータ転送を行うルータやスイッチなどの各機器のための層です。
各層を結ぶインタフェースについて
インタフェースとは、ハードウェアまたはソフトウェア間の接合部分です。双方の橋渡しをするような役割があり、API(Application Programming Interface)は、アプリケーション間のデータの橋渡しするための役割を果たします。
Northbound API(NBI)の役割
ユーザは専用のアプリケーション(アプリケーション層)を介してSDNコントローラ(コントロール層)を間接的に操作します。
ユーザが直接的に専用のアプリケーション(アプリケーション層)に与えた指示内容を、コントローラ(コントロール層)へ渡す必要があり、この指示内容をコントローラ側で処理できるように、橋渡しするのが、Northbound API(NBI)の役割です。
つまりはアプリケーションを介してコントローラを使用するためのAPIです。
代表的なNBI①:REST API
アプリケーション(アプリケーション層)とSDNコントローラ(コントロール層)が異なるコンピュータ(または仮想サーバ)に配置されているような、二つの層がHTTP(HTTPS)を介して通信する必要性がある場合、REST API(RESTful API)というAPIが使われます。
代表的なNBI②:Java API
一方、アプリケーション(アプリケーション層)とSDNコントローラ(コントロール層)が同じコンピュータ(または仮想サーバ)に配置されている場合、Java APIを介して互いに通信します。
Northbound API(NBI)の役割
Southbound API(SBI)の役割
コントローラ(コントロール層)は、各ネットワーク機器(インフラストラクチャ層)に対して、ルーティングテーブルやルーティングプロトコルの設定などの制御を行います。
各ネットワーク機器(インフラストラクチャ層)がコントローラ(コントロール層)から与えられた指示を処理できるよう、双方の間の橋渡しするのが、Southbound API(SBI)の役割です。
つまりはコントローラが各ネットワーク機器(インフラストラクチャ層)を使用(制御)するためのAPIです。
代表的なSBI
OpenFlow、OpFlex、NETCONF、RESTCONF、TELNET、SSH、SNMPなど
OpenFlowについて
概要:OpenFlowはONF開発のSB
OpenFlowは、SDNを実現するためのプロトコルです。
ONF(※)によってSBIの部分だけが標準化されたので、SBI(Southbound API)に分類されます。
※ONFとは:Open Networking Foundationの略称。OpenFlowの開発を行った団体/組織であり、SDNの推進を行っている。
OpenFlowを使ったネットワーク構成
コントロールプレーンを担う(経路制御機能をまとめた)OpenFlowコントローラ(OFC)と、データプレーンを担う(データ転送機能をまとめた)OpenFlowスイッチ(OFS)で構成されており、両者のやり取りを仲介するのが、SBIであるOpenFlowプロトコルです。
またOFCやOFSなどOpenFlowのネットワーク構成で使用するネットワーク機器は全てOpenFlowに対応した機器になります。