クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

コントロールプレーンとデータプレーン

このレッスンのあとで: コントローラが決めることと、スイッチがすることを分けて説明できる。

45分のレッスンコマンド4件SDN のラボ:Open vSwitch、Mininet、OpenFlow コントローラーを1台の VM で

決める仕事と運ぶ仕事を分ける

ソフトウェア定義ネットワーク(SDN)は、ネットワーク機器の「決める仕事」と「運ぶ仕事」を分け、決める仕事をプログラムに任せる考え方です。

規則を1か所で書けば、何百台のスイッチにも同じ規則を配れます。大学のキャンパスでも、手作業の設定ミスを減らせます。

このレッスンのゴール

メモ

コントローラが決めることと、スイッチがすることを分けて説明できる。

重要な言葉

ことばいみれい
コントロールプレーン転送の規則を決める部分
データプレーンパケットを実際に運ぶ部分
スイッチ受け取った枠を、決められたポートから出す機器
コントローラスイッチの規則を書くプログラム
OpenFlowスイッチとコントローラが話す約束事
フェイルモードコントローラと切れたときのスイッチの振る舞いsecure

学生が入力するセルは、このプレビューでは空白です。

1台のスイッチには2つの仕事がある

普通のスイッチは、2つの仕事を1台の中でこなします。1つ目は、どの宛先をどのポートへ出すかを決めることです。2つ目は、枠が届くたびに、その決まりどおりに運ぶことです。

前者をコントロールプレーン、後者をデータプレーンと呼びます。運ぶ仕事は1秒に何百万回も起きるので、速さが大事です。決める仕事は、たまにしか起きません。

仕事をどちらのプレーンが受け持つか

仕事プレーン起きる頻度
宛先と出力ポートの対応を作るコントロール機器が増えたとき
ネットワーク全体の地図を持つコントロール配線が変わったとき
枠を受け取り、規則表を引くデータ枠が届くたび
決まったポートへ枠を出すデータ枠が届くたび
規則に合わない枠を捨てるデータ枠が届くたび

学生が入力するセルは、このプレビューでは空白です。

SDN は決める仕事をコントローラに移す

SDN では、決める仕事をスイッチの外のコントローラに移します。スイッチには、規則を並べた表だけが残り、枠を表のとおりに運びます。

コントローラとスイッチは、OpenFlow という約束事で話します。コントローラが「この条件の枠は、このポートへ」と伝え、スイッチが表に書き込みます。

なぜ分けるのか

分ける理由は3つあります。コントローラはネットワーク全体を見て決められます。規則を1か所で変えれば、すべてのスイッチに行き渡ります。そして、決める仕事を普通のサーバで動かせます。

たとえばゲスト用 Wi-Fi を経理のパソコンから切り離す規則も、コントローラに1回書けば足ります。

ラボのスイッチを見てみる

ラボの VM には、Open vSwitch という本物のソフトウェアスイッチがあります。名前は br0 で、ポートが3つです。

まず、ポートの一覧を見ます。続いて、運ぶ仕事をするプログラムと、設定を持つプログラムを数えます。最後に、コントローラと切れたときの振る舞いを聞きます。

スイッチのポートを並べる

コマンド
sudo ovs-vsctl list-ports br0

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

運ぶプログラムの数

コマンド
pgrep -c ovs-vswitchd

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

設定を持つプログラムの数

コマンド
pgrep -c ovsdb-server

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

フェイルモードを聞く

コマンド
sudo ovs-vsctl get-fail-mode br0

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

フェイルモードはコントローラが消えたときの決まり

ポートの一覧は、s-h1、s-h2、s-h3 の3行です。ovs-vswitchd が枠を運び、ovsdb-server が設定を覚えます。どちらも1つずつ動いています。

フェイルモードが secure なら、スイッチは表にある規則だけで動きます。表が空なら、何も運びません。

よくある間違い

注意

SDN では、コントローラがすべてのパケットを運ぶと思いがちです。それでは遅すぎます。コントローラは規則を書くだけで、運ぶのはスイッチです。規則のない枠だけが、コントローラに相談されます。

さらに挑戦: 自分の学校の仕事を分ける

自分の学校のネットワークで、スイッチがする仕事を5つ書き出します。そして、それぞれが「枠が届くたび」の仕事か、「たまにしか起きない」仕事かを考えます。

前者がデータプレーン、後者がコントロールプレーンです。課題の JOBS に、その5つを足して試しましょう。

このラボとソースについて: SDN のラボ:Open vSwitch、Mininet、OpenFlow コントローラーを1台の VM で

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。