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の接続情報を得ている。
- OFCは、表1中の(え:Flow-Mod)メッセージを使って、ETH_TYPEが88CCに等しいときのActionとして、Output(お:controller)を、OFS内の管理テーブルに登録させる。
- OFCは、表1中の(か:Packet-Out)メッセージを使って、OFS1の全ポートについて、OFS1の装置名とそれぞれのポートIDを格納したLLDPフレームを出力させ、装置名OFS1とポートID p8が格納されたLLDPフレームXをOFS2から受け取る。
- 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」が該当します。