<p><style_prompt>IPA_Expert_01</style_prompt>本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">令和5年度 ネットワークスペシャリスト試験 午前Ⅱ 問1 OpenFlowの基本動作</h1>
<p>SDNの基幹技術であるOpenFlowにおいて、スイッチが未知のパケットを受信した際のフロー制御とコントローラの役割を問う問題です。</p>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>【問題】
OpenFlowにおいて、スイッチに受信したパケットの処理ルールが設定されていない場合の動作として、適切なものはどれか。</p>
<p>ア コントローラにパケット情報を送信し、処理の指示を仰ぐ。
イ 近隣のスイッチにパケットを転送し、処理ルールを探索する。
ウ パケットを破棄し、送信元に対してICMP Destination Unreachableを返信する。
エ 自身のMACアドレス学習テーブルを参照し、通常のL2スイッチとして動作する。</p>
</blockquote>
<p>【解説】
OpenFlowスイッチは「フローテーブル」に従ってパケットを処理します。フローテーブルは「マッチ条件」「アクション」「カウンタ」などのエントリで構成されます。</p>
<p>受信したパケットがフローテーブルのどのエントリにも一致しない状態を「Table-miss(テーブルミス)」と呼びます。この時の動作はスイッチのデフォルト設定(Table-missエントリ)に依存しますが、OpenFlowの基本的なアーキテクチャでは、スイッチは制御を司る「OpenFlowコントローラ」へ問い合わせを行います。</p>
<p>この問い合わせには <strong>Packet-In</strong> メッセージが使用されます。コントローラはパケットを解析し、適切な処理(転送、破棄、エントリの追加など)を <strong>Flow-Mod</strong> や <strong>Packet-Out</strong> メッセージを通じてスイッチへ指示します。</p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
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
</pre></div>
<p>【選択肢の吟味】</p>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">選択肢</th>
<th style="text-align:center;">判定</th>
<th style="text-align:left;">解説</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">ア</td>
<td style="text-align:center;"><strong>正解</strong></td>
<td style="text-align:left;">Packet-Inメッセージを用いてコントローラに問い合わせるのがOpenFlowの基本動作です。</td>
</tr>
<tr>
<td style="text-align:left;">イ</td>
<td style="text-align:center;">誤り</td>
<td style="text-align:left;">スイッチ間で直接処理ルールを探索する機能はOpenFlowの標準仕様にはありません。</td>
</tr>
<tr>
<td style="text-align:left;">ウ</td>
<td style="text-align:center;">誤り</td>
<td style="text-align:left;">デフォルトで即座に破棄・ICMP送信を行うのではなく、まずはコントローラの指示を待ちます。</td>
</tr>
<tr>
<td style="text-align:left;">エ</td>
<td style="text-align:center;">誤り</td>
<td style="text-align:left;">OpenFlowモードで動作している場合、自律的なMAC学習(L2学習)ではなくコントローラによる制御が優先されます。</td>
</tr>
</tbody>
</table></figure>
<p>【ポイント】</p>
<ul class="wp-block-list">
<li><p><strong>Table-miss</strong>: 既存のエントリにマッチしない場合の例外処理。</p></li>
<li><p><strong>Packet-In</strong>: 未知のパケットをコントローラへ通知するメッセージ名。</p></li>
<li><p><strong>中央集権管理</strong>: 転送面(スイッチ)と制御面(コントローラ)を分離するSDNの核心。</p></li>
</ul>
IPA_Expert_01本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
令和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の核心。
ライセンス:本記事のテキスト/コードは特記なき限り
CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。
コメント