OpenFlow ver1.1およびver1.2の追加機能と活用例
前回までは、OpenFlow ver1.0をベースにして、プロトコルで規定されている仕様、およびその仕様に沿った使い方、活用事例を紹介しました。最終回である今回は、OpenFlow ver1.1およびver1.2の仕様の内容に言及するとともに、それによって新たに実現できる活用例を紹介します。
4.1 OpenFlow ver 1.1の追加機能
OpenFlow ver 1.1 では表のような機能が追加されています。その内容について、特に大きなものを中心に見ていきます。
図1:OpenFlow ver1.1で追加された機能 |
4.1.1 複数テーブル
OpenFlow ver1.1では、OpenFlowスイッチが単一のテーブルではなく複数のテーブルを持つ場合を想定しており、複数テーブル間の処理(パイプライン処理と呼ばれます)も規定されています。また、グループテーブルと呼ばれる特殊なテーブルも定義されています(グループについては後述)。複数のテーブルを持つ場合に、OpenFlowスイッチがパケット受信した時の処理は以下のようになります。
- OpenFlowスイッチがパケットを受信する。
- テーブル0に遷移する。
- そのテーブルに記述されているマッチングルール(OpenFlow ver1.0の用語ではヘッダフィールドと定義されていましたがOpenFlow ver1.1の正式な用語としてはマッチフィールドとして定義されます)を検索する。
- 一致するものがあれば、記述されているインストラクション(「アクションの追加」、「アクションの削除」、「別のテーブルへ遷移」など)に沿った処理を行う
- 次のテーブル(テーブル1)に遷移する
- 上記の3~5をテーブル2、3、・・・という風に、OpenFlowスイッチで保持されているテーブルの上限まで繰り返す
- 各テーブルでの処理によって完成したアクションを実行する
アクションとしては、OpenFlow ver1.0と同様にパケットを転送する、パケットを破棄する、フィールドの値を書き換えるなどの記述が可能です。加えて、ver 1.1 ではTTLの値を変える、VLANやMPLSのTagを追加・削除するなどの記述もできるようになっています。また、アクションとして「グループ処理を行う」と記述することで、グループテーブルで定義されたグループ処理を行うことができるようになります。
複数テーブルに対応することで、マッチングルールの記述に意味を持たせやすくなります。例えば、テーブル0ではVLAN IDを見て処理を決定し、テーブル1では宛先MACアドレスを見て処理を決定するといったことができます。
スイッチの実装の面から言えば、OpenFlowスイッチで管理するフロー数が少なくなる、スイッチのTCAMを有効活用できるなどのメリットがあります。また、コントローラを開発する立場から見ると、QoSのみを考慮した処理・ルーティングのみを考慮した処理を個別に実装し、それをあとから組み合わせるなどが行いやすくなります。
4.1.2 グループ
OpenFlow ver1.1においては、グループという概念を用いて複数のポートをグループ化して処理を定義することが可能です。これにより、OpenFlowコントローラからに毎回問い合わせを行わなくても、OpenFlowスイッチが能動的に動作することで、複数経路を実現したり、マルチキャストを実現したりすることができるようになります。このためのグループのタイプとして、以下の4つが定義されています。
- ・all
- グループとして定義されているポートの、すべてのポートからパケットを送出します。マルチキャストやブロードキャストを実現するために用いられます。
- ・select
- グループとして定義されているポートのうち、一つのポートを選択してパケットを送出します。同じマッチングルールを持つパケットの場合でも、その都度ポートを選択することになりますので経路の負荷分散が可能になります。
- ・indirect
- グループとして定義されている、特定の一つのポートからパケットを送出します。これによりわざわざポートを直接指定するのではなく、グループという枠組みの中でポートを扱うことが可能になります。特定のポートを利用する場合でもそれを一つのグループとみなすことで、一つのポートに対する処理も複数のポートに対する処理もグループによる処理として同じように実装できるようになります。
- ・fast failover
- グループとして定義されているポートのうち、特定のポートを選択してパケットを送出します。そのポートが利用不可能な時(リンクダウン時等)は、グループ内の別のポートからパケットを送出します。これにより、コントローラに逐一問い合わせを行うことなくフェールオーバー(経路の迂回)が実現できます。
どんなグループがあり、そのタイプは上記のどれか、といった情報は、OpenFlowスイッチのグループテーブルで管理されます。
4.1.3 MPLS
OpenFlow ver1.1では、MPLSプロトコルに新たに対応しています。パケットのマッチングにMPLSのラベルを利用できるほか、MPLSタグの追加、修正、削除も行うことが可能です。これにより、データセンター内やキャンパスネットワークといったLANを中心とした活用だけでなく、広域網など、WAN分野での活用も今後広がっていくと考えられます。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- OpenFlowのアーキテクチャと仕様・機能
- SDNの実装方式
- OpenFlowの使い方(例)と活用事例
- SDNへの潮流とOpenFlowの歴史
- NEC、OpenFlow Ver1.3に対応した「UNIVERGE PFシリーズ」のコントローラおよびスイッチの新製品2機種を発売
- ハイブリッド・クラウドに向けたネットワーク技術の将来
- ハードウェアありきのSDNから、仮想ネットワークを切り離して考えてみよう
- 平成30年度の午後Ⅱ問題対策②-問2【後半】
- NEC、OpenFlow対応「UNIVERGE PFシリーズ」のコントローラ機能を強化、スイッチの新製品を発売
- NTTコムウェア、ネットワーク構築や運用業務を柔軟に支援するソフトウェアを販売開始