follow me

tcpdump (OpenFlowをしゃべるWHR-G301N用)

自宅ラック勉強会 #2.5 秋葉原出張編で作成したOpenFlowをしゃべるWHR-G301N用にtcpdumpコマンドのパッケージを用意しました。
作業端末側でWiresharkを仕掛ける方が綺麗かと思いますが、手軽に確認できる様にしてみました。

パッケージ追加については、以下2ファイルをWHR-G301Nに転送し、opkgコマンドで導入。
libpcap_1.1.1-1_ar71xx.ipk
tcpdump_4.1.1-2_ar71xx.ipk
# opkg install libpcap_1.1.1-1_ar71xx.ipk
Installing libpcap (1.1.1-1) to root...
Configuring libpcap.
# opkg install tcpdump_4.1.1-2_ar71xx.ipk
Installing tcpdump (4.1.1-2) to root...
Configuring tcpdump.
#
follow me

自宅ラック勉強会 #2.5 秋葉原出張編

2012/03/10(土)に「自宅ラック勉強会 #2.5 秋葉原出張編」が開催されました。
ネタは、「OpenFlowスイッチでドミノをしよう。」だった訳ですが、30人を超える参加者が集まるとは思ってなく。。。

僕の用意した手順書にミスが在る等、勉強会を主催してくださったseafayさんや参加者の方々にはご迷惑おかけしました。
今回、OpenFlowスイッチが完成した方、完成できなかった方、文鎮となってしまった方、いろいろだと思いますが、うまくいかなかった方々には、出来る限りのサポートは実施したいと思っておりますので不明点などありましたら、Blogのコメント、Twitterなりで質問戴ければ可能な限り対応いたします。

OpenFlowコントローラが無いとの言葉もありましたので、NOXを導入済みのVMwareイメージ(VMware Workstation v6.0以上)を用意致しました。
OSはUbuntuを利用し、IPアドレスはDHCP設定となっていますので、環境に合わせIPアドレスを設定の上ご利用ください。
ユーザ/パスワードは、openflow/openflowになっています。
NOX.zip
※本サイトの回線帯域は細いため、以下URLもご利用ください。(seafayさん、ありがとうございます)
 https://www.asuswebstorage.com/navigate/s?u=GYY55PQY7Y

NOXは~/nox/build以下に導入されており、OpenFlow動作確認に使えそうなサンプル(L2スイッチとして動作させる pyswitch)がありますので、その起動方法を以下に記載しておきます。
$ cd ~nox/build/src/
$ ./nox_core -v -i ptcp:6633 pyswitch
勉強会で作成したスイッチのWAN側のインタフェイスからNOXにFlowの問い合わせが行われ、LANポート側が馬鹿ハブ状態で動作しますので、2台機器を繋いでみてpingなどで確認してみてください。


今回配布された「手順書&ファームウェア」の修正版は、ATNDのページにリンクがありますのでこれから作成される方は、修正版の手順をご利用ください。
follow me

OpenFlowを試したいからNOXを使ってみた

OpenFlow 1.0 for OpenWRT を試す際に利用した OpenFlowコントローラ NOX をとりあえず動かせる状態にするまでの記録。
利用するコントローラは、Termaでもヨカッタのですが、個人的に C言語が一番慣れているという理由から NOX を試しました。
スクリプト言語の方がコンパイル不要なので適しているのかも知れませんが、僕はC言語以外は脳みそがついていきませんw

ベースに利用したのは、Ubuntu 10.04.2(i386)です。(手元にisoがあったので利用しただけです、バージョンにこだわりはアリマセン)
依存関係をUbuntuのリポジトリで解決した方が良いのですが、手っ取り早く使いたいので手抜き手順になります。
基本すべて一般ユーザで実施します。

1.NOX導入に必要になるコンポーネントの追加 手抜きして、apt-getで一気に追加してしまいます。
$ cd /etc/apt/sources.list.d
$ sudo wget http://openflowswitch.org/downloads/debian/nox.list
$ sudo apt-get update
$ sudo apt-get install git-core
$ sudo apt-get install nox-dependencies
follow me

OpenFlow 1.0 for OpenWRT 動作確認機種報告(2012/03/03)

・Buffalo WHR-G301N
OpenWrtは、trunk版のみ存在。
trunk版に含まれる AR7240/AR9330 built-in switchドライバでは一部機能が足りない為、ドライバに手を加えなければ動作しない。
OpenFlow 1.0 for OpenWRT 動作には、Ethernet switchドライバには、「enable_learning (Enable learning)」な機能が必要。
機能追加のパッチを作成しましたので、試したい方はご利用ください。
※ハードウェアに悪影響が無いか等は考慮していないので、パッチ内容を理解した上でご利用ください。
OpenWrt-trunk-Learning-Ports-in-AR7240.patch

WHR-G301N のハードウェアは、Flash容量が4Mしかなく不要なパッケージは削除した方が良い状況であり、パッケージ追加はほぼ出来ないと割り切りが必要。
・CPU Speed (MHz):400
・Flash (MB):4
・RAM (MB):32


以下機種については、OpenFlow 1.0 for OpenWRT 動作確認機種報告(2012/02/19) 参照。
・Buffalo WZR-HP-G301NH
・Buffalo WZR-HP-G300NH
・Buffalo WZR-HP-AG300H
follow me

XenDesktop でESX 4.0をvCenter無しで利用する

訳あって XenDesktop やら XenApp やらを弄っていたりしています。
ハイパーバイザーに、XenServerを使っても良いのですが、すべてを自宅検証マシン(ESXi 5.0)上に用意したかったのでESX 4.0(ESX on ESXi)を利用してみました。
XenDesktop自体は、XenServer、VMware ESX、MS Hyper-V をサポートしているのですが、VMwareを利用する場合は、vCenterが必要なのだろうと思い込んでいました。
が、VMware ESX 4.0 では、必要になる機能は搭載されており、vCenter無しでも利用できる模様。

で試してみた。
が、設定を弄らないと繋がらない事が判明。
繋がらない原因は、ESXでデフォルトで導入されるSSL証明書がサーバ名と一致していない状態になる為との事で、証明書を作り直すかHTTPでのアクセスにしてしまうかが必要。
SSL証明書を作り直すのは面倒なので、とりあえずはHTTPで繋げられる様に修正。
follow me

ヤフオクで落札した AX2430S-48T が回収?

ヤフオクで落札した AX2430S-48T が回収になるかもしれない?
メールでは何があったのか詳細が分からないので休み明けに出品者に連絡取ってみようかと考え中。

この娘達、どうなるんだろう。

follow me

OpenWrt Buildsystem 構築

Buffaloルータで OpenFlow 1.0 for OpenWRT を動作させる為に、OpenWrtのビルド環境を構築してみました。
クロスビルド環境を準備する事になるので、面倒な作業になると思っていたのだが、自動でクロス環境を用意してくれる仕組みになっている為、予想以上に呆気なく構築できる事が判明。
僕は Debian 5.0 環境を利用しましたが、openSuSE、Ubuntu、Fedoraでも可能な様子。MacOS Xは面倒そうなのでお勧めしない。

1.開発環境の導入
# apt-get install build-essential gawk ncurses-dev unzip binutils flex bison autoconf gettext texinfo sharutils subversion libncurses5-dev ncurses-term zlib1g-dev git-core
2.trunk版のコード一式をダウンロード
# mkdir ~/openwrt
# cd openwrt
# svn co svn://svn.openwrt.org/openwrt/trunk/
# cd trunk
3.install feeds?
必要無いと思うけど本家ドキュメントに書いてあるので念のため実行。
# ./scripts/feeds update -a
# ./scripts/feeds install -a
4.OpenWrtコンフィグ
ここで Targetデバイスを選択し、必要なパッケージを選択します。
# make defconfig
# make prereq
# make menuconfig
kernelのコンフィグをする場合は、以下コマンド。
# make kernel_menuconfig
5.OpenWrtビルド
必要なクロスビルド環境をネットからダウンロードしたりする為、ネットにつながった環境で実行する必要があります。
一度、ダウンロードされると次回からはネット接続は不要。
# make
follow me

WHR-G301N をDD-Wrt化してみた

現時点で入手しやすい安ルータ Buffalo WHR-G301N をDD-Wrt化してみた。
FreeT だと2,450円。

個人的にはOpenWrt派なのですが、OpenWrt化する際に DD-Wrtを経由した方がラクだったりするので、数分しか起動しない DD-Wrt化をした訳です。
本当は、TFTPでputしてファームを書き換える方法が存在するらしいのですが、僕は成功した試しが無いので DD-Wrtを経由する方法を愛用しています。
DD-Wrtを利用する利点は、Buffalo純正ファームの管理画面から DD-Wrt化するイメージが提供されている事です。
で、管理画面でポチポチ操作するだけでDD-Wrt化できる筈でした。。。
が、何故かファームを受け付けてくれませんでした。(日本のモデルは失敗するなんて情報もあったりなかったり)

で仕方なくイロイロ試した結果、Hard Reset すれば DD-Wrtファームウェアを受け付けてくれる事が判明。
本体裏側にあるResetスイッチを30秒以上押しするとルータが再起動し、その後に DD-Wrtファームウェアを管理画面からアップデートします。
他の機種でも同様の現象が確認できたので、おそらく日本で入手できる機種はほぼ Hard Reset が必要と予想しています。

ちなみに利用するファームイメージは、WHR-G301Nで探すのではなく、WHR-G300N Rev.2になります。
WHR-G301Nは日本でのモデルであり、海外では同等品としてQHR-G300N Rev.2が存在し、ハード構成が似ている為動作する模様。
follow me

AX2430S-48T(パスワードリセット)

ヤフオクで安く出ていたので入手しておきました。
L2だけど、NetBSDベースだし遊べるかなぁとか。。。AX2430S-48Tです。
設定どころかパスワードもリセットされていなかったので、大丈夫かなぁと心配していたのですが、operatorアカウントは生きていたので何も問題ありませんでした。
アカウント名がわからないとゴミと化す様なので注意を。


follow me

OpenFlow 1.0 for OpenWRT 動作確認機種報告(2012/02/19)

OpenFlow 1.0 for OpenWRTの動作が確認できた機種は以下になります。
(あくまで僕個人が検証した結果であり、動作を保障するモノではありません)

・Buffalo WZR-HP-G301NH
OpenWrtで用意されているtrunk版からのビルドで対応可能。(OpenWrtではG300NHとして判別)
設定例は、以前紹介させて頂いた際に記載。
※WZR-HP-G300NHと同様、すべてのリビジョンで同じハード構成となっているかは不明の為、動かない可能性もあり。

・Buffalo WZR-HP-G300NH
所有しているハードが、WZR-HP-G301NHと同等チップ構成のリビジョンであった為、動作したと思われる。
発売初期頃のG300NHでは Ethernet Switch のチップがG301NHとは異なる為、挙動は異なると思われる。
(チップのドライバ自体はPortVLANにも対応済みであり、動作する確立は高いと思われる)
※ハードが入手できれば確認したいと思っているが、中古でもG301NHとの価格差が無い為、手を出すのを躊躇っている。。。

・Buffalo WZR-HP-AG300H
OpenWrtは、trunk版のみ存在。
trunk版に含まれるAR8316のEthernet Switchドライバでは一部機能が足りない為、ドライバに手を加えなければ動作しない。
修正内容は、纏めしだい情報アップする予定です。
※CPU周波数が高速かつ、メモリ128MB搭載と、ハードスペック自体はOpenWrt動作機種としては最高レベルの為、玩具化には適していると思われる。
(個人的には、この筐体でVXLANも対応させれないかと画策中。)