OpenFlowコントローラを開発するエンジニア向けに,OpenFlowプラットフォームのTrema Edgeを利用したRubyによるネットワークの開発手法や,プログラミング手法を解説した。
目 次
まえがき
第1章 OpenFlowによるネットワークの制御
§1.1 SDNとOpenFlow
[1]SDNとは
[2]OpenFlowとは
§1.2 OpenFlowの構成
[1]コントローラとスイッチ
[2]フロー
[3]パケットの転送
§1.3 基本動作
[1]OpenFlowスイッチ
[2]フローによる制御例
[3]ネットワーク情報の活用例
第2章 Trema-Edgeによるコントローラの開発
§2.1 Trema-Edge
[1]概 要
[2]構 成
[3]開発手順
§2.2 設定ファイル
[1]概 要
[2]仮想スイッチの定義
[3]仮想ホストの定義
[4]仮想リンクの定義
§2.3 Tremaの使用方法
[1]Tremaの実行
[2]Tremaプログラムの実行
[3]パケットの送信
[4]パケット情報の表示
§2.4 ネットワークネームスペース
[1]概 要
[2]ネームスペースの定義
[3]任意のアプリケーションの実行
第3章 コントローラのプログラミング
§3.1 Rubyによるプログラミング手順
[1]新規Tremaプログラムの作成
[2]Tremaプログラムの編集
[3]作成したTremaプログラムの実行と終了
§3.2 Tremaプログラムの構造
[1]基本構造
[2]イベントとハンドラメソッド
[3]タイマー処理
§3.3 フローによるパケット制御
[1]コントローラの動作
[2]フローの作成と追加
[3]パケットの入力
[4]パケットの出力
§3.4 フローの設定
[1]パラメータ
[2]Matchオブジェクト
[3]インストラクション
[4]アクション
第4章 ネットワーク情報の取得と活用
§4.1 通知されるネットワーク情報の取得
[1]概 要
[2]スイッチの起動通知
[3]スイッチの切断通知
[4]フロー削除通知
[5]ポート設定変更通知
[6]エラー通知
§4.2 問合せによるネットワーク情報の取得
[1]概 要
[2]スイッチの詳細
[3]スイッチの設定値
[4]バリア
§4.3 マルチパートメッセージ
[1]概 要
[2]個々のフローの統計情報
[3]集約したフローの統計情報
[4]ポートの統計情報
第5章 Tremaプログラムの例
§5.1 リピータハブ
[1]設 計
[2]フォローの作成と追加
[3]ソースコードと実行
§5.2 スイッチングハブ
[1]設 計
[2]データベースの活用
[3]ソースコードと実行
§5.3 通信量の監視
[1]設 計
[2]統計情報の取得と通信量の表示
[3]ソースコードと実行
第6章 CGIによるTremaプログラムの活用
§6.1 スイッチ情報のモニタ
[1]設 計
[2]スイッチ情報の保存と読込み
[3]ソースコードと実行
§6.2 転送停止ツール
[1]設 計
[2]ホストの指定と転送停止
[3]ソースコードと実行
付録A OpenFlow開発環境の構築
§A.1 ソフトウェアのダウンロード
[1]必要なソフトウェア
[2]ソフトウェアの入手
§A.2 ソフトウェアのインストール
[1]VMware Player
[2]ubuntu
[3]PuTTY
§A.3 開発環境の設定
[1]ubuntuのネットワーク設定
[2]PuTTYの利用
[3]Webサーバの準備
§A.4 Tremaの準備
[1]必要なパッケージ
[2]RVMのインストール
[3]Tremaのインストール
目 次
まえがき
第1章 OpenFlowによるネットワークの制御
§1.1 SDNとOpenFlow
[1]SDNとは
[2]OpenFlowとは
§1.2 OpenFlowの構成
[1]コントローラとスイッチ
[2]フロー
[3]パケットの転送
§1.3 基本動作
[1]OpenFlowスイッチ
[2]フローによる制御例
[3]ネットワーク情報の活用例
第2章 Trema-Edgeによるコントローラの開発
§2.1 Trema-Edge
[1]概 要
[2]構 成
[3]開発手順
§2.2 設定ファイル
[1]概 要
[2]仮想スイッチの定義
[3]仮想ホストの定義
[4]仮想リンクの定義
§2.3 Tremaの使用方法
[1]Tremaの実行
[2]Tremaプログラムの実行
[3]パケットの送信
[4]パケット情報の表示
§2.4 ネットワークネームスペース
[1]概 要
[2]ネームスペースの定義
[3]任意のアプリケーションの実行
第3章 コントローラのプログラミング
§3.1 Rubyによるプログラミング手順
[1]新規Tremaプログラムの作成
[2]Tremaプログラムの編集
[3]作成したTremaプログラムの実行と終了
§3.2 Tremaプログラムの構造
[1]基本構造
[2]イベントとハンドラメソッド
[3]タイマー処理
§3.3 フローによるパケット制御
[1]コントローラの動作
[2]フローの作成と追加
[3]パケットの入力
[4]パケットの出力
§3.4 フローの設定
[1]パラメータ
[2]Matchオブジェクト
[3]インストラクション
[4]アクション
第4章 ネットワーク情報の取得と活用
§4.1 通知されるネットワーク情報の取得
[1]概 要
[2]スイッチの起動通知
[3]スイッチの切断通知
[4]フロー削除通知
[5]ポート設定変更通知
[6]エラー通知
§4.2 問合せによるネットワーク情報の取得
[1]概 要
[2]スイッチの詳細
[3]スイッチの設定値
[4]バリア
§4.3 マルチパートメッセージ
[1]概 要
[2]個々のフローの統計情報
[3]集約したフローの統計情報
[4]ポートの統計情報
第5章 Tremaプログラムの例
§5.1 リピータハブ
[1]設 計
[2]フォローの作成と追加
[3]ソースコードと実行
§5.2 スイッチングハブ
[1]設 計
[2]データベースの活用
[3]ソースコードと実行
§5.3 通信量の監視
[1]設 計
[2]統計情報の取得と通信量の表示
[3]ソースコードと実行
第6章 CGIによるTremaプログラムの活用
§6.1 スイッチ情報のモニタ
[1]設 計
[2]スイッチ情報の保存と読込み
[3]ソースコードと実行
§6.2 転送停止ツール
[1]設 計
[2]ホストの指定と転送停止
[3]ソースコードと実行
付録A OpenFlow開発環境の構築
§A.1 ソフトウェアのダウンロード
[1]必要なソフトウェア
[2]ソフトウェアの入手
§A.2 ソフトウェアのインストール
[1]VMware Player
[2]ubuntu
[3]PuTTY
§A.3 開発環境の設定
[1]ubuntuのネットワーク設定
[2]PuTTYの利用
[3]Webサーバの準備
§A.4 Tremaの準備
[1]必要なパッケージ
[2]RVMのインストール
[3]Tremaのインストール