書籍概要

Software Design plus

[増補改訂版]クラウド時代のネットワーク技術 OpenFlow実践入門

著者
発売日
更新日

概要

OpenFlowは,データセンター以外の大規模システム基盤にも採用され始めた,ネットワークをソフトウェアで制御する実装技術の1つです。本書では,実装するためのOSSフレームワーク(Trema)を使って,「スイッチ監視ツール」「インテリジェントなパッチパネル」「ラーニングスイッチ」などを,実際にプログラミングをして構築する方法を解説しています。

こんな方におすすめ

  • ネットワークエンジニア,SDNに興味のある方

サンプル

目次

1章 OpenFlowの仕組み

  • 1.1 ソフトウェアで楽をする
  • 1.2 ネットワークもソフトウェア制御
  • 1.3 OpenFlowの動作モデル
  • 1.4 OpenFlowのうれしさ
  • 1.5 OpenFlowで気をつけること
  • 1.6 まとめ

2章 OpenFlowの仕様

  • 2.1 OpenFlowの標準仕様
  • 2.2 スイッチとコントローラ間のやり取り
  • 2.3 フローエントリの中身
  • 2.4 マルチプルテーブル
  • 2.6 まとめ

3章 Hello, Trema!

  • 3.1 作ってわかるOpenFlow
  • 3.2 Tremaとは
  • 3.3 Trema実行環境のセットアップ
  • 3.4 Hello, Trema!
  • 3.5 tremaコマンド
  • 3.6 即席Ruby入門
  • 3.7 まとめ

4章 スイッチ監視ツール

  • 4.1 ネットワークを集中管理しよう
  • 4.2 インストール
  • 4.3 実行してみよう
  • 4.4 ソースコード解説
  • 4.5 まとめ

5章 マイクロベンチマークCbench

  • 5.1 Cbenchベンチマークとは
  • 5.2 インストール
  • 5.3 実行してみよう
  • 5.4 ソースコード解説
  • 5.5 マルチスレッド化する
  • 5.6 無理やり高速化する
  • 5.7 まとめ

6章 インテリジェントなパッチパネル

  • 6.1 便利なインテリジェント・パッチパネル
  • 6.2 OpenFlow版インテリジェント・パッチパネル
  • 6.3 実行してみよう
  • 6.4 ソースコード解説
  • 6.5 まとめ

7章 すべての基本,ラーニングスイッチ

  • 7.1 ラーニングスイッチとは何か
  • 7.2 イーサネットスイッチの仕組み
  • 7.3 OpenFlow版イーサネットスイッチ(ラーニングスイッチ)の仕組み
  • 7.4 実行してみよう
  • 7.5 ラーニングスイッチのソースコード
  • 7.6 まとめ

8章 OpenFlow 1.3版ラーニングスイッチ

  • 8.1 OpenFlow 1.0版ラーニングスイッチの問題点
  • 8.2 マルチプルテーブル
  • 8.3 OpenFlow 1.3でのPacket In
  • 8.4 OpenFlow 1.3版ラーニングスイッチの仕組み
  • 8.5 ソースコード解説
  • 8.6 まとめ

9章 Tremaでテスト駆動開発

  • 9.1 仕様書としてのテストコード
  • 9.2 リピータハブの動き
  • 9.3 どこまでテストするか?
  • 9.4 テストに使うツール
  • 9.5 パケット受信をテストする
  • 9.6 リファクタリング
  • 9.7 まとめ

10章 生活ネットワークのOpenFlowへの移行

  • 10.1 どんどん規模を広げていこう
  • 10.2 ケガしないためのヘルメット
  • 10.3 私たちの失敗談
  • 10.4 OpenFlowへの移行パターン
  • 10.5 逆流防止フィルタ
  • 10.6 まとめ

11章 ネットワーク機器を作ろう:ファイアウォール

  • 11.1 透過型ファイアウォール
  • 11.2 BlockRFC1918コントローラ
  • 11.3 BlockRFC1918のソースコード
  • 11.4 PassDelegatedコントローラ
  • 11.5 PassDelegatedのソースコード
  • 11.6 まとめ

12章 ネットワーク機器を作ろう:ルータ(前編)

  • 12.1 ルータとスイッチの違い
  • 12.2 イーサネットだけならルータは不要?
  • 12.3 ルータの動作
  • 12.4 ソースコード解説
  • 12.5 まとめ

13章 ネットワーク機器を作ろう:ルータ(後編)

  • 13.1 宛先ホストをまとめる
  • 13.2 ネットワーク宛てのエントリをまとめる
  • 13.3 RoutingTableのソースコード
  • 13.4 実行してみよう
  • 13.5 まとめ

14章 ネットワーク機器を作ろう:ルータ(マルチプルテーブル編)

  • 14.1 マルチプルテーブル版ルータのテーブル構成
  • 14.2 マルチプルテーブル版ルータの動作例
  • 14.3 実行してみよう
  • 14.4 まとめ

15章 ネットワークトポロジの検出

  • 15.1 美しい大規模ネットワーク
  • 15.2 トポロジ検出の仕組み
  • 15.3 実行してみよう
  • 15.4 トポロジコントローラのソースコード
  • 15.5 まとめ

16章 大量のスイッチを制御

  • 16.1 複数のスイッチを制御する
  • 16.2 最短パスを計算する
  • 16.3 実行してみよう
  • 16.4 ルーティングスイッチのソースコード
  • 16.5 OpenFlowを使う利点
  • 16.6 まとめ

17章 仮想ネットワークの実現

  • 17.1 ネットワークをスライスに分ける
  • 17.2 スライスの実現方法
  • 17.3 インストール
  • 17.4 REST APIを使う
  • 17.5 REST API一覧
  • 17.6 スライス機能付きスイッチの実装
  • 17.7 スライス機能付きスイッチのソースコード
  • 17.8 まとめ

18章 OpenVNetで本格的な仮想ネットワーク

  • 18.1 OpenVNetとは
  • 18.2 エッジ仮想化の利点
  • 18.3 OpenVNetの全体アーキテクチャ
  • 18.4 OpenVNetの主な機能
  • 18.5 使ってみる
  • 18.6 OpenVNetを応用した実用例
  • 18.7 まとめ

サポート

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2016年2月23日更新)

P.xiv 目次

18.5 使ってみる……319
18.5 使ってみる……318

商品一覧