follow me

Floodlight on RasPi

FloodlightのWeb Interfaceが何気に気になってしまったので入れてみた。


Raspberry Pi (Raspbian)への導入です。
あまりにも普通に動いてくれます。今回はOpenJDKを利用していますが、Oracle JDKを利用する事も可能でしょう。
$ sudo apt-get install default-jdk ant git-core
$ git clone git://github.com/floodlight/floodlight.git
$ cd floodlight
$ ant
Buildfile: /home/pi/floodlight/build.xml

init:

compile:
    [javac] Compiling 141 source files to /home/pi/floodlight/target/bin

compile-test:
    [javac] Compiling 75 source files to /home/pi/floodlight/target/bin-test
    [javac] Note: /home/pi/floodlight/src/test/java/net/floodlightcontroller/flowcache/PortDownReconciliationTest.java uses unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.

dist:
      [jar] Building jar: /home/pi/floodlight/target/floodlight.jar
      [jar] Building jar: /home/pi/floodlight/target/floodlight-test.jar

BUILD SUCCESSFUL
Total time: 10 minutes 7 seconds

$ java -jar target/floodlight.jar
http://RasPiのIP:8080/ui/index.html
こいつにアクセスすると、Web UIにアクセス出来ます。
少しスペック不足で、はじめ遅いですがメモリに乗るとそれなりに動いてます。
グラフィカルな見た目はちょっと愉しい。

実家に帰って来てるので、手元にOpenFlowスイッチが1台しかないから線が繋がらない。
これは戻ったらいっぱい繋いで試してみなければっ!
follow me

OpenFlow for WHR-G301N (OSC2012 Tokyo/Fall)

OSC2012 Tokyo/Fallにて使用していたファームウェアを公開致します。
今回は、snmpd込みのイメージになります。
会場でご覧頂いた方はご存知だと思いますが、ZABBIXで監視を行ってみました。
SNMPのデフォルトバージョンが3になっているらしく、適宜バージョン指定を設定ファイルに入れてご利用ください。
ちなみにOSCの際は、/etc/snmp/snmp.confに対し、以下設定を追記していました。
defVersion 2c

WHR-G301N用
openwrt-ar71xx-generic-whr-g301n-squashfs-factory.bin
openwrt-ar71xx-generic-whr-g301n-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-whr-g301n-squashfs-tftp.bin

WZR-HP-AG300H用
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-factory.bin
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-tftp.bin
follow me

Planex MZK-WNHの純正ファームはLinux

アキバの路上に並んでる安ルータ MZK-WNH にシリアルをつけたので起動時を確認してみた。
やっぱりLinuxですね。Planexのサイトでソースが見つからないけど、どうみてもLinuxですね。
まぁ、使われてるチップは既にドライバがあるので自ビルドでも困りはしない。

でモノとしてどうだろうかと。
スペックは高いとは言い難い。が、安い。。。
CPU : Ralink RT3052F 320MHz
Memory : 32MBytes
Flash : 4MBytes
実売価格 : 150円(ACアダプタ無)

起動時の出力はこんな感じ。
default_MZK-WNH.log
BogoMIPS値が予想以上に低いです。Buffaloルータの積んでるチップに比べると非力です。
チップとしてはUSBも搭載していると思われるが、パターンは用意されていない為、増設は困難と思われる。
USBが使えると利用方法が一気に増えるのだがないのは仕方がない。安いから割り切るしかない。

このあと、ユーザ名/パスワードを求める画面で停止します。
サポート用のユーザが存在する模様。
rootでは入れませんでしたので、ブラウザ管理画面のパスワードとは別の模様。
アカウント探ったりするのは面倒なので放置。
follow me

MZK-WNHにシリアルで繋げよう

路上で投売りされているPlanex MZK-WNHをOpenWRT化の為にシリアル繋げてみました。
シリアルのパターンは例の如く用意されています。
しかし、Buffalo製ルータとは違い、はんだで埋められている為、まずははんだを吸い取る手間が必要です。
これがまたなかなか取れないしwwwはんだ吸取り線で頑張ってたら汚くなっちゃいました。


うーん、はんだ吸取り機をそろそろ買いましょうかね。
綺麗にとるコツを知りたいものです。。。てかもう少しW数の大きいコテ用意した方がいいのかな。。

接続ピンは、手前からVCC, Rx, GND, Txの順になります。
いつも通りレベル変換つっこめば終わりですね。
57,600kbps、ストップビット1、8ビット、パリティ無し。
U-Bootの待ち時間が短いので、ちょっと操作しにくいですが、シリアル繋いでU-Bootに入れたならこっちのモノですね。
follow me

Transparent PPM on OpenWRT

お待たせ致しました。Interop ORC 2012でチーム筑波大学様が発表されてたPPMモジュールを組み込んだOpenWRTファームウェアを公開致します。
Interop ORC 2012の技術審査会の際、PPMモジュールに興味を持ってしまい勢いでOpenWRTルータに組み込んだものになります。
せっかく作成したのに私一人だけが利用するのはもったいないので、手軽にPPMを試せる環境としてご利用頂ければと思います。

PPM自体の仕様については、チーム筑波大学様がInterop ORC 2012での発表資料が公開されていますので、そちらを参照下さい。
筑波大学暗号・情報セキュリティ研究室とOB - ORC まとめ

本ファームウェアの書き込みは、Buffalo純正の管理画面から書き込み可能なモノになります。
書き込み後、WANポートと、LAN(1~3)ポート間を経由するパケットがマーキング対象になります。(※LAN(1~3)ポート間はマーキングされない)
LAN(4)ポートについては、管理用IP(192.168.1.1)が設定され、管理用にtelnetアクセスが可能になっています。


・WHR-G301N用
(上から、純正管理画面用、OpenWRTアップグレード用、TFTP書込用)
openwrt-ar71xx-generic-whr-g301n-squashfs-factory.bin
openwrt-ar71xx-generic-whr-g301n-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-whr-g301n-squashfs-tftp.bin

・WZR-HP-AG300H用
(上から、純正管理画面用、OpenWRTアップグレード用、TFTP書込用)
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-factory.bin
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-tftp.bin


Interop ORC 2012の際、チーム筑波大学様からPPMモジュールのソースコードを提供頂けた事、感謝致します。
follow me

OpenFlow 1.1 for WZR-HP-AG300H

お待たせしました。OpenFlow 1.1のWZR-HP-AG300H版です。
1000BASE-T搭載モデルでのOpenFlow 1.1です。
まだスループットは計測していないので、どれぐらいの速度が出るかはお愉しみ。

今回公開するイメージは、Buffaloの純正Web管理画面から、直接 OpenFlow 1.1 for WZR-HP-AG300H 化が可能となっています。
手順は、WHR-G301Nとほぼ同様なので、こちらを参照してください。
OpenFlow 1.1 for WHR-G301N 作成手順v1.0
Buffaloの純正Web管理画面から書き込むイメージ
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-factory.bin
今回の手順では、お持ちの環境に合わせIP設定の変更をしていただくだけで、OpenFlowスイッチの作成が完了となっています。
自宅ラック勉強会 #2.5開催後に情報を頂けました「15秒無通信だと切断される」問題なども修正済みとなっています。


TFTPで書き込みたい方はこちらをご利用下さい。(方法は探してください。)
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-tftp.bin
既にLinux化されている方はこちらをご利用下さい。(sysupgrade -v ファイル名 な感じです)
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-sysupgrade.bin

※Tremaとの接続はできませんのでご注意下さい。(詳細は、自宅ラック勉強会 #3.0の保土ヶ谷拠点のTLをお探し下さい)


2012/05/05時点では、以前公開したパッチが適用できなくなっていた為、AR8316 Ethernet Switch Driverに対するパッチを再作成しました。
ご自分でビルドする際には、こちらをご利用下さい。
OpenWrt-trunk-Learning-Ports-in-AR8316_20120430.patch
follow me

OpenFlow 1.1 for WHR-G301N

もぅお馴染みのWHR-G301Nネタです。
こいつがOpenFlowをしゃべります。
今回は、OpenFlow 1.1をしゃべりますっ!!!

follow me

NOX 1.1 Oflib なVM用意しました

4/16(月) OpenFlow 1.1 for WHR-G301N を公開致します。
愉しみたい方は前準備としましてBuffalo WHR-G301N と OpenFlow 1.1 なコントローラをご用意下さい。

ちなみに今回も用意しましたw
NOX 1.1 Oflib を導入済みのVMwareイメージ(VMware Workstation v6.0以上)を用意致しました。
OSはUbuntuを利用し、IPアドレスはDHCP設定となっていますので、環境に合わせIPアドレスを設定の上ご利用ください。
ユーザ/パスワードは、openflow/openflowになっています。
nox11oflib.zip

OpenFlow 1.1 for WHR-G301Nも公開できる状態になりましたので勉強会やります。
GW期間中ですので、皆さん忙しいかと思いますが。。。
自宅ラック勉強会 #2.6alpha 大阪出張編
follow me

NOX 1.1 Oflib 試してみた

OpenFlow 1.1 for WHR-G301N を作成したので、OpenFlow 1.1なコントローラが必要になり、探してみました。
NOX 1.1 Oflib
OpenFlow 1.1 compatible version of the NOX controller. との事なので、こいつを利用してみました。

普通にNOXと同じ手順で導入できるだろうと試してみたら見事にビルドエラーw
環境は、本家NOXをビルドした時と同様、Ubuntu 10.04.2(i386)です。
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++
cc1plus: warning: command line option "-Wmissing-prototypes" is valid for Ada/C/ObjC but not for C++
../../../src/oflib/ofl-messages-unpack.c: In function ‘ofl_err ofl_msg_unpack_port_status(ofp_header*, size_t*, ofl_msg_header**)’:
../../../src/oflib/ofl-messages-unpack.c:305: error: invalid conversion from ‘uint8_t’ to ‘ofp_port_reason’
make[5]: *** [ofl-messages-unpack.lo] エラー 1
make[5]: ディレクトリ `/home/openflow/nox11oflib/build/src/oflib' から出ます
make[4]: *** [all] エラー 2
make[4]: ディレクトリ `/home/openflow/nox11oflib/build/src/oflib' から出ます
make[3]: *** [all-recursive] エラー 1
make[3]: ディレクトリ `/home/openflow/nox11oflib/build/src' から出ます
make[2]: *** [all] エラー 2
make[2]: ディレクトリ `/home/openflow/nox11oflib/build/src' から出ます
make[1]: *** [all-recursive] エラー 1
make[1]: ディレクトリ `/home/openflow/nox11oflib/build' から出ます
make: *** [all] エラー 2
follow me

WHR-G301N を純正ファームに戻す(文鎮化復旧手順)

OpenFlow 1.0 スイッチ化していた WHR-G301N ですが、新しく作成したファームイメージを純正状態からの書き込みできるか試したかったので純正状態に戻してみました。
別に文鎮化した訳ではありません。
これでOpenFlowに飽きてしまった場合に戻せますねw

@xmms さんが既に文鎮化WHR-G301N復旧手順を公開されていた為、僕も試してみました。
【HW】文鎮化したWHR-G301Nの対処法

僕はタイミングあわせがうまくできないので、Linux機を用意してやりました。
# ifconfig eth0:1 192.168.11.2
# arp -s 192.168.11.1 MACアドレス
# tftp
tftp> connect 192.168.11.1
tftp> binary
tftp> put <純正のファームイメージ>
WHR-G301Nを再起動させて、TFTP転送が完了して純正状態の復活。