こんな夜中にOpenFlowでネットワークをプログラミング!

第4回 いよいよOpenFlowの動作環境を構築!

この記事を読むのに必要な時間:およそ 4 分

はじめに

前回はNTTデータのR&D部門で検討している次世代クラウドの概要を説明しました。OpenFlowによりサーバとネットワークが密に融合する世界を体感していただけたのではと思います。

今後の連載では少し趣向を変えて,実際にOpenFlowでネットワークを制御する方法を説明していく予定です。今回は,まずオープンソースソフトウェア(OSS)を用いてOpenFlowが動作する環境を構築する方法を説明します。

OpenFlowの動作環境を構築する

では,OSSを用いてOpenFlowを動作させる方法について説明します。図1はOpenFlowを動作させるための基本構成です。OpenFlowの世界ではOpenFlowコントローラからOpenFlowスイッチに制御ルールを書き込むことで,OpenFlowスイッチにさまざまな動作をさせることができます。今回は,OpenFlowコントローラにレイヤ2モジュールをロードさせることで,OpenFlowスイッチにレイヤ2スイッチと同様の動きをさせます。

図1 OpenFlowの基本構成

図1 OpenFlowの基本構成

本来はOpenFlow コントローラとOpenFlowスイッチは別筺体にインストールするのが基本ですが,今回は用意するサーバ装置数を減らすため,同一筺体にインストールします。

OpenFlowコントローラは「NOX」を,OpenFlowスイッチは「openflow」というOSSを利用します(どちらも後述)⁠なお,本稿ではopenflowとOpenFlowは区別が難しいため「openflow」「OpenFlowSwitch」と呼ぶことにします。両者ともOSSで公開されており,カスタマイズなども自由です。

今回動作させるOpenFlowプロトコルのバージョンは1.0になります。ちなみにバージョン1.1が実装されたOSSは筆者が知るかぎり,本稿執筆時(2011年6月10日)では存在しません。

事前準備

今回はマシンを3台利用してOpenFlowの動作環境を構築します。サーバ3にはNICが2つ搭載されている前提で話を進めます。また,1つのNICには1つの物理ポートしか存在しないことを前提とします。

ソースコードのダウンロードにgitコマンドを用いるため,インターネットに接続できる環境が必要になります。また,⁠sudo」⁠apt-get」コマンドはOSインストール時に自動でインストールされることを想定しています。

マシンを3台用意するのが難しい方はVMwarePlayerを用いて同様の構成を1台のマシン上に構築することも可能です。VMware Playerを利用する方は,図1のサーバ1からサーバ3のeth0までの通信路とサーバ2からサーバ3のeth1までの通信路をVLAN(Virtual LAN)で分離してください。また,サーバ3にNICが1つしか搭載されていない場合もVLANを用いることで図1と同様の構成を実現できます。

OSのインストール

サーバ1,サーバ2,サーバ3にOSをインストールします。OSはUbuntu10.04 Desktop(32ビット版&日本語版)を利用します。VMwarePlayer を利用する方はDesktop 版ではなく,Alternate版を用いて軽量インストールを行う方法もあります。各サーバにOSをインストールした後は以降に示す設定を行ってください。

ユーザアカウントの設定

まずは作業用のユーザアカウントを1つ作成します。Ubuntuでは特別な設定をしないかぎりrootでログインできないため,root権限が必要なコマンドを実行する場合はsudoコマンドを用いることになります。

次のコマンドを実行して「hogehoge」というユーザを作成してください。

$ sudo adduser hogehoge
$ sudo usermod -G admin hogehoge

本稿ではとくに明記しないかぎり,ユーザ「hogehoge」で作業を行います。

IPv6の無効化

OpenFlowバージョン1.0はIPv6を処理できないため,OSの設定を変更してIPv6を無効にします。sysctl.confファイルを開き,ファイルの最後に2行追加してください。

sysctl.confファイルを開く

$ sudo nano /etc/sysctl.conf

sysctl.confに追記する2行

net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1

最後にsysctl.confファイルへの変更を有効にするため,次のコマンドを実行します。

$ sudo sysctl -p

インターネット接続の設定

ソースコードやパッケージのインストールを行うため,サーバ3をインターネットに接続できるように設定してください。

プロキシサーバが存在するような特殊な環境の場合は,apt-getコマンドに特別な設定が必要になります。

OpenFlowSwitchのインストール

サーバ3にOpenFlowSwitch をインストールします。まずは次のコマンドを実行しコンパイルに必要なパッケージをインストールしてください。

$ cd /home/hogehoge/
$ sudo apt-get install git-core automake m4 pkg-config libtool

次に,OpenFlowSwitchのソースコードを取得します。Stanford Gitリポジトリから必要なソフトウェアを取得してください。

$ git clone git://openflow.org/openflow.git

gitに失敗する場合はプロキシサーバの存在を疑うとよいでしょう。続いてコンパイルを行います。コンパイルは先ほどリポジトリからダウンロードしたファイルに含まれるboot.shを利用します。

次の手順に沿ってコンパイルとインストールを行ってください。

$ cd openflow
$ ./boot.sh
$ ./configure
$ make
$ sudo make install

以上でOpenFlowSwitchのインストールは完了です。

著者プロフィール

樋口晋也(ひぐちしんや)

(株)NTTデータ 技術開発本部

コメント

コメントの記入