OpenFlowのコントローラとスイッチの動作【ネットワークスペシャリスト試験 平成29年度 秋期 午後2 問1 No.2】

ネットワークスペシャリスト試験 平成29年度 秋期 午後2 問1 No.2

【出典:ネットワークスペシャリスト試験 平成29年度 秋期 午後2 問1(一部、加工あり)】

【新工場LANに適用するSDN技術の調査】
 ベンダから提案があったSDN技術について、D君は次のように整理した。

  • 従来のスイッチ機能を、経路制御などの管理機能を実行するフローコントローラ(以下、OFCという)と、データ転送を行うスイッチ(以下、OFSという)に分け、OFSに入るパケットの経路制御をOFCが集中制御する方式を採用する。
  • OFSとOFCは、管理のための専用NW(以下、管理NWという)を介して、通信メッセージを交換する。OFCとOFS間の通信メッセージを表1に示す。
  • OFSは、IPアドレス、MACアドレスなどのパケット識別子(Match Field、以下、MFという)を使ったパケット識別条件と、識別されたパケットの処理(以下、Actionという)の組合せ(以下、エントリという)を、OFS内の管理テーブルで管理する。
  • OFSは、入力パケットに対して、管理テーブル内のパケット識別条件が一致するエントリを探し、そのエントリのActionを実行する。一致するエントリがない場合は、事前の設定に従い、入力パケットを破棄するか、Packet-Inメッセージを使ってOFCに入力パケットを転送する。今回の提案では、OFCへの通信集中を避けるために、入力パケットを破棄させる設定を全OFSに対して行う。
  • MFとActionの例を表2に示す。

 
 ベンダの提案では、8台のOFSを導入する。ベンダから提案があった新工場LANの物理構成案を、図2に示す。


 OFS同士の接続情報をOFCが収集する通信シーケンスについて、D君はベンダから説明を受けた。例えば、図2中のOFCが、OFS1とOFS2の接続情報を得る場合のOFS接続情報収集の通信シーケンス例は、図3のようになる。


 OFS接続情報の収集では、IEEE 802.1ABで規定されているLLDP(Link Layer Discovery Protocol)の仕組みを流用する。図3中のOFCは、固有のイーサネットタイプ88CCをもつLLDPフレームを使って、次のように、LLDPフレームXとLLDPフレームYの内容からOFS1のp8とOFS2のp9の接続情報を得ている。

  1. OFCは、表1中の(え:Flow-Mod)メッセージを使って、ETH_TYPEが88CCに等しいときのActionとして、Output(お:controller)を、OFS内の管理テーブルに登録させる。
  2. OFCは、表1中の(か:Packet-Out)メッセージを使って、OFS1の全ポートについて、OFS1の装置名とそれぞれのポートIDを格納したLLDPフレームを出力させ、装置名OFS1とポートID p8が格納されたLLDPフレームXをOFS2から受け取る。
  3. OFCは、OFS2に対して②と同様の操作を行い、装置名(き:OFS2)とポートID(く:p9)が格納されたLLDPフレームYをOFS1から受け取る。

え:Flow-Mod、お:controller

 ①は、OFCからOFSへの通信で、OFS内の管理テーブルに登録させるものであるので、表1のFlow-Modメッセージが該当します。
 Actionの設定については、表2からOutputとして「ポートID」(指定ポートに出力する)か、「controller」(Packet-Inメッセージを使いOFCに転送する)が入ることが分かります。
 そして②の処理で、Packet-InメッセージでOFCに送信していることから、ここではOutput(controller)が該当します。

か:Packet-Out

 表1で、OFCがOFSに送信するPacket-Outメッセージ(出力パケットと出力ポートIDを送り、OFSに出力させる)が該当します。
 ②の処理は、OFCがOFS1にLLDPフレームを出力させ、それを受信したOFS2がLLDPフレームXをOFCに送信することで、OFCがOFS接続情報を収集することになります。

き:OFS2、く:p9

 ③は②と同様に、OFCがOFS2にLLDPフレームを出力させ、それを受信したOFS1がLLDPフレームYをOFCに送信します。
 OFSのLLDPフレームですので、装置名「OFS2」、ポートID「p9」が該当します。