style_prompt 本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
令和5年度 秋期 ネットワークスペシャリスト 午前II 問1 OpenFlowの仕様
本問はSDNの基盤技術であるOpenFlowの基本動作を問う。複数テーブルを用いたパイプライン処理の仕組みを理解しているかが合格の分かれ目となる。
【問題】 OpenFlow 1.1以降の仕様において、フローテーブルに関する記述のうち、適切なものはどれか。
ア 1台のスイッチ内に、単一のフローテーブルのみが存在する。 イ パケットがフローテーブルのエントリにマッチしたとき、別のフローテーブルへパイプライン処理を行うことができる。 ウ フローエントリの優先度は、常に登録した順序で決定される。 エ マッチング対象は、L2とL3のヘッダ情報に限定される。
【解説】
OpenFlow 1.0では1台のスイッチに対して1つのフローテーブルしか持てませんでしたが、OpenFlow 1.1以降では複数のフローテーブルを保持し、それらを連携させる「パイプライン処理」が導入されました。
理論背景 パケットがスイッチに到達すると、まず「テーブル0」から照合が始まります。エントリにマッチした際、その指示(Instruction)として「次のテーブルへ移動(Goto-Table)」を指定することで、複雑な条件分岐やアクションの組み合わせを効率的に実行できます。
graph TD
A["パケット着信"] --> B{"Table 0"}
B -- マッチ --> C["アクション実行 / Table変更"]
B -- ミスマッチ --> D["Table-Miss処理"]
C --> E{"Table n"}
E -- マッチ --> F["最終的なアクション実行"]
E -- ミスマッチ --> D
各フローエントリには「優先度(Priority)」が設定されており、同一テーブル内で複数のエントリにマッチした場合は、優先度の高い数値を持つエントリが適用されます。
【選択肢の吟味】
| 選択肢 | 判定 | 解説 |
|---|---|---|
| ア | × | OpenFlow 1.1以降では、複数のフローテーブル(マルチテーブル)を持つことが可能である。 |
| イ | ○ | 「Goto-Table」インストラクションにより、パケットを後続のテーブルに渡すパイプライン処理が可能。 |
| ウ | × | 優先度はエントリごとに数値(Priorityフィールド)で明示的に指定され、登録順ではない。 |
| エ | × | L4(ポート番号)やメタデータ、さらには独自定義のフィールドなどもマッチング対象に含めることができる。 |
【ポイント】
パイプライン処理:複数のテーブルを順次参照し、複雑なパケット制御を実現する仕組み。
Goto-Table:パケットを番号の大きいテーブルへ転送する命令。逆方向(小さい番号)への転送は不可。
優先度(Priority):同一テーブル内でのマッチング順序を決定する数値。大きいほど優先される。

コメント