令和5年度 ネットワークスペシャリスト試験 午前Ⅱ 問1 OpenFlowの基本動作
SDNの基幹技術であるOpenFlowにおいて、スイッチが未知のパケットを受信した際のフロー制御とコントローラの役割を問う問題です。
【問題】 OpenFlowにおいて、スイッチに受信したパケットの処理ルールが設定されていない場合の動作として、適切なものはどれか。
ア コントローラにパケット情報を送信し、処理の指示を仰ぐ。 イ 近隣のスイッチにパケットを転送し、処理ルールを探索する。 ウ パケットを破棄し、送信元に対してICMP Destination Unreachableを返信する。 エ 自身のMACアドレス学習テーブルを参照し、通常のL2スイッチとして動作する。
【解説】 OpenFlowスイッチは「フローテーブル」に従ってパケットを処理します。フローテーブルは「マッチ条件」「アクション」「カウンタ」などのエントリで構成されます。
受信したパケットがフローテーブルのどのエントリにも一致しない状態を「Table-miss(テーブルミス)」と呼びます。この時の動作はスイッチのデフォルト設定(Table-missエントリ)に依存しますが、OpenFlowの基本的なアーキテクチャでは、スイッチは制御を司る「OpenFlowコントローラ」へ問い合わせを行います。
この問い合わせには Packet-In メッセージが使用されます。コントローラはパケットを解析し、適切な処理(転送、破棄、エントリの追加など)を Flow-Mod や Packet-Out メッセージを通じてスイッチへ指示します。
sequenceDiagram
participant "SW as OpenFlow Switch"
participant "CTL as OpenFlow Controller"
Note over SW: Packet Received
SW ->> SW: Flow Table Lookup
Note over SW: No Matching Entry (Table-miss)
SW ->> CTL: Packet-In Message
CTL ->> CTL: Determine Route/Policy
CTL ->> SW: Flow-Mod (Add Entry) / Packet-Out
SW ->> SW: Apply Action to Packet
【選択肢の吟味】
| 選択肢 | 判定 | 解説 |
|---|---|---|
| ア | 正解 | Packet-Inメッセージを用いてコントローラに問い合わせるのがOpenFlowの基本動作です。 |
| イ | 誤り | スイッチ間で直接処理ルールを探索する機能はOpenFlowの標準仕様にはありません。 |
| ウ | 誤り | デフォルトで即座に破棄・ICMP送信を行うのではなく、まずはコントローラの指示を待ちます。 |
| エ | 誤り | OpenFlowモードで動作している場合、自律的なMAC学習(L2学習)ではなくコントローラによる制御が優先されます。 |
【ポイント】
Table-miss: 既存のエントリにマッチしない場合の例外処理。
Packet-In: 未知のパケットをコントローラへ通知するメッセージ名。
中央集権管理: 転送面(スイッチ)と制御面(コントローラ)を分離するSDNの核心。

