OpenFlowのアーキテクチャと仕様・機能
2012年2月9日(木)
2.2 OpenFlowプロトコル詳細
OpenFlowプロトコルに従ってやり取りされるメッセージを列挙すると以下の表のようになります。
図4:OpenFlowプロトコルに従ってやり取りされるメッセージ(クリックで拡大) |
ここではそのうち利用頻度の高いもの、OpenFlowスイッチのふるまいに大きな影響を与えるものについて詳しく説明していきます。
2.2.1 コントローラからスイッチへのメッセージ
- ・Flow- Mod
- OpenFlowスイッチで記述されているフローを書き換えたい場合にコントローラからスイッチに対して送信するメッセージです。新しくOpenFlowスイッチにフローを追加する場合もこのFlow Modメッセージが用いられます。
OpenFlowスイッチのフローテーブルのフローを修正、追加する際にはフローのデータのうちヘッダフィールドおよびアクションを指定します。つまり、マッチングに用いるためのヘッダフィールドおよび、ヘッダフィールドが一致した際にどのように処理するかを記述したアクションをセットにして、コントローラからスイッチに送信します。 - ・Packet-Out
- OpenFlowスイッチからパケットを送出させるために、コントローラからスイッチに対して送信するメッセージです。この際、スイッチのどのポートからどのようなパケットを送出させるかについてはOpenFlowコントローラにて自由に指定することができます。例えば、コントローラにてLLDPパケットを生成しOpenFlowスイッチの全ポートからパケットを送出するといったことが可能になります。
- ・Statics-Request
- OpenFlowスイッチに置いて管理されている統計情報の取得をするためのメッセージです。統計情報としては、フロー単位・ポート単位などの単位でパケット数・バイト数などの情報を取得することができます。また、OpenFlowスイッチのフローテーブルで管理されているフロー数などもこのメッセージを送ることで取得することが可能です。これらの情報は後述するStatics-Replyメッセージでコントローラに通知されます。
2.2.2 スイッチからコントローラへのメッセージ
- ・Packet-In
- OpenFlowスイッチからコントローラに対して、パケットを受信したことを通知するメッセージです。例えば、スイッチは、未知のパケット(どのフローのヘッダフィールドにも一致しなかった場合)を受け取った時に、このメッセージを用いてコントローラに対してそのパケットを通知します。コントローラは通知の内容を解析し、ふるまいを決定します(一般的には、コントローラ側ではそのパケットの内容を判断したうえで、スイッチに対してFlow-ModやPacket-Outといったメッセージを送信します)。
- ・Statics-Reply
- OpenFlowコントローラからのStatics-Request要求(前述の通り)に対して、その統計情報を応答するメッセージです。
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。
全文検索エンジンによるおすすめ記事
- OpenFlowの使い方(例)と活用事例
- OpenFlow ver1.1およびver1.2の追加機能と活用例
- SDNの実装方式
- 平成30年度の午後Ⅱ問題対策②-問2【後半】
- 試験直前対策:令和3年度の午後試験で出題された技術と仕組みの解説
- ハイブリッド・クラウドに向けたネットワーク技術の将来
- NEC、OpenFlow Ver1.3に対応した「UNIVERGE PFシリーズ」のコントローラおよびスイッチの新製品2機種を発売
- NEC、OpenFlow対応「UNIVERGE PFシリーズ」のコントローラ機能を強化、スイッチの新製品を発売
- ハードウェアありきのSDNから、仮想ネットワークを切り離して考えてみよう
- MidoNetのパケット処理をDVRと比較してみる