diff --git a/learning_switch.adoc b/learning_switch.adoc index c745afc7..ec07adb6 100644 --- a/learning_switch.adoc +++ b/learning_switch.adoc @@ -11,14 +11,14 @@ OpenFlowの世界では、コントローラとしてソフトウェア実装し - 学習:ホストから出たパケットに含まれる、ネットワーク上でのホストの位置情報を学習する - 転送:今まで学習してきた位置情報を使って、パケットを宛先のホストまで転送する -この「学習し、転送する」というラーニングスイッチの仕組みは応用が広く効きます。たとえば第??章で紹介するいくつかのデータセンターネットワークも、基本はラーニングスイッチと同じく「学習し、転送する」という動作をします。このように、自宅ネットワークであろうが最新鋭のデータセンターであろうが、その基本的な考え方は同じなのです。 +この「学習し、転送する」というラーニングスイッチの仕組みは応用が広く効きます。たとえば本書の後半で紹介するいくつかのデータセンターネットワークも、基本はラーニングスイッチと同じく「学習し、転送する」という動作をします。このように、自宅ネットワークであろうが最新鋭のデータセンターであろうが、その基本的な考え方は同じなのです。 このおかげで、ラーニングスイッチを作れるようになれば、それをベースに改造することでいろいろなアプリケーションを作れるようになります。 -- トラフィックモニタ(<>で紹介) -- ルータ (<>, <>で紹介) -- ルーティングスイッチ(<>で紹介) -- スライス機能つきルーティングスイッチ(<>で紹介) +- トラフィックモニタ(<>) +- ルータ (<>, <>) +- ルーティングスイッチ(<>) +- スライス機能つきルーティングスイッチ(<>) ではさっそく、ネットワークの基本部品であるラーニングスイッチをTremaで実装してみましょう。まずは一般的なハードウェアスイッチの動作原理を理解し、次にOpenFlowでの実現方法を見ていきます。 @@ -236,7 +236,7 @@ send_packet_out( ) ---- -この場合コントローラからスイッチへのパケットデータのコピーが起こらないため、若干のスピードアップが期待できます。ただし、○○のコラムで説明したとおり、バッファの中身は予測不能でデータがいつ消えるかわからないため、この方法は推奨しません。 +この場合コントローラからスイッチへのパケットデータのコピーが起こらないため、若干のスピードアップが期待できます。ただし、<>のコラムで説明したとおり、バッファの中身は予測不能でデータがいつ消えるかわからないため、この方法は推奨しません。 ==== スイッチのバッファを使わずにPacketOutする場合 @@ -282,4 +282,4 @@ optionsに指定できる主なオプションは次のとおりです。 - コントローラは、Packet Inメッセージから送信元ホストのMACアドレスとホストのつながるスイッチポート番号をFDBに学習する - Packet Inの転送先がFDBからわかる場合、Flow Modで以降の転送情報をスイッチに書き込みPacketOutする。FDBで決定できない場合は、入力ポート以外のすべてのポートにPacket Outでフラッディングする -続く章ではさっそくこのラーニングスイッチを少し改造してトラフィック集計機能を加えます。第○章で紹介した「フローでできる4つのこと」のうち、"流量を調べる"の実装例です。 +続く章ではこのラーニングスイッチを OpenFlow 1.3 のマルチプルテーブル機能を使って実装します。処理ごとにフローテーブルを分けることで、コントローラをすっきりと設計できます。