2011年9月号(8月18日発売)今回は、簡単なNOXモジュールの作成方法を説明し、NOXモジュールに記述されたロジックどおりにOpenFlowスイッチが動作することを示します。開発するNOXモジュールの仕様OpenFlowプロトコルとイベントの関係OpenFlowコネクションの確立図2は、OpenFlowコントローラが起動し、NOXがOpenFlowスイッチから接続要求を受け、OpenFlowのコネクションが確立するまでの関係を示したシーケンス図です。OpenFlowコネクションが確立すると、OpenFlowスイッチとOpenFlowコントローラが能力情報を交換し、本格的にメッセージをやりとりする前準備が完了します。処理の詳細を以下に示します。1~8の番号は図2の番号と対応しています。NOXからOpenFlowSwitchに対してHelloメッセージを送信する。3から6までが完了すると、OpenFlowコネクションが確立し、新規にOpenFlowスイッチが検出されたと判断される。OpenFlowスイッチを初めて検出した場合、NOXモジュールはOpenFlowスイッチの識別に必要なDatapathIdを保存する。保存された値と異なるDatapathIdを検出した場合は、スイッチを複数検出したと判断し、仕様に従ってエラーをコンソールに表示する[1]TCPコネクションの確立に失敗すると、OpenFlowSwitchは一定時間後にNOXに対して再度接続を試みます。ユーザは、8の処理を自身で実装する必要があります。DatapathIdは各OpenFlowスイッチが生成するユニークな値で、OpenFlowスイッチからOpenFlowコントローラに送信されるメッセージには一部の例外を除いてDatapathIdが付加されます。OpenFlowコントローラはDatapathIdを見ることで、パケットを送信したOpenFlowスイッチを識別できます。DatapathIdはOpenFlowスイッチが有するMACアドレスを基に生成されるため、重複する心配はありません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。