【便乗】 BUFFALO WHR-G301NでOpenFlowをやってみる 【Trema,OpenWrt】 その2


■1.コントローラの準備
■2.スイッチの準備(BUFFALO WHR-G301N)
■3.動作確認
■4.BUFFALO WHR-G301Nのファームを戻す
■2.スイッチの準備(BUFFALO WHR-G301N)
1.1.0対応のファームをダウンロードする。Tremaは現状1.0の対応になり、
 1.1のファームを入れるとバージョンが違うとエラーがでて動かないので注意。
OpenFlow in theBox
手順書もアップされているのでそれに従いファームを入れ替える。
2.ファームの入れ替えが終わったら、BUFFALOのWANポートが管理ポートになるため
結線をしなおす。192.168.1.1にtelnetでアクセスする。完全にLinux化してるので、
パスワード等設定したい人はご自由に。
3.network config の’interface’ ‘wan’の箇所を、お好みの管理IPに変更

# vi /etc/config/network

4.option ‘ofctl’ ‘tcp:~の行はコントローラIPに変更、またポート番号は6653に変更

# vi /etc/config/openflow

5.設定変更後はサービスを再起動

# /etc/init.d/network restart
# /etc/init.d/openflow restart

6.コンソールログでconnectedと表示されればOK。接続に失敗した旨のエラーが出続ける場合は
先に設定したIP,ポート番号を、見なおそう。

# Jan 01 16:33:25|00012|rconn|INFO|tcp:192.168.11.22:6653: connecting...
# Jan 01 16:33:25|00013|rconn|INFO|tcp:192.168.11.22:6653: connected

■3.動作確認
1.WHR-G301Nにこのように接続。

2.最初はあえて疎通不可を確認するためサービスを止める。

# cd /var/lib/gems/1.9.1/gems/trema-0.4.6
# trema killall

3.この時点でPCでWiresharkを起動しパケットキャプチャ。データを通さないことを確認。
 またCiscoのCDPパケットも遮断されているため、show cdp neighborコマンドでお互いのルータは見えない。
4.openflowサービスを再起動する。
コントローラ側

# cd /var/lib/gems/1.9.1/gems/trema-0.4.6
# ./trema run ./src/examples/learning_switch/learning-switch.rb  -d

スイッチ側

# /etc/init.d/openflow restart

# Jan 01 16:33:25|00012|rconn|INFO|tcp:192.168.11.22:6653: connecting…
# Jan 01 16:33:25|00013|rconn|INFO|tcp:192.168.11.22:6653: connected
こんな感じでconnectedが表示されればOK。
5.疎通を確認する。

CDPで隣接ルータが見えるようになりました。

Wiresharkでパケットがいっぱい流れてきました。
しかし、ここで躓く・・
PC1-PC2間、ルータ間、というかこのセグメント内でPingが届かない・・!
arp要求の戻りパケットがBUFFALOから出てこないので、arp解決ができておらず、
ARPテーブルにMACが載ってこないのです。手書きしてみるもダメでした。
一体何が起こっているのはさっぱりです。丸一日考えて分からなかったので、
この件はまたおいおい。
■4.BUFFALO WHR-G301Nのファームを戻す
そして何気に厄介だったのがBUFFALOのファーム戻し。
今回OpenFlow対応のOpenFlow 1.0 for OpenWRTにファームを差し替えているわけですが、
Ver1.1を使いたいって時や、そもそも元に戻したいといった場合の対処を書いておきます。
先に純正ファームをダウンロードしておきます。

1.図のようにLinux PC(仮想でも可)をBUFFALOの1~4番ポートに接続する。
 ※WAN側じゃないですよ。
 ※Windowsだとタイミングがシビアだそうで、コントローラで使っているLinuxが良い。
2.PCに192.168.11.2~254/24で適当にIPを振る。
 ※家庭内LANでBAFFALO製品を使っていると、192.168.11.1が
  重複する可能性があるので、2台だけのローカル環境にしよう。
3.Linux PCでBUFFALOのMACを書いてやる。
 (起動途中なのでうまくARP解決できないようです)

# arp -s 192.168.11.1 MACアドレス

4.TFTPでBUFFALOにファームを転送する準備をしておく

# tftp 192.168.11.1
# tftp> binary
# tftp> trace
# tftp> rexmt 1
# tftp> put whrg301n-186 #Enterを押さす画面に出しておく

5.【重要】BUFFALOの電源を抜き差しし、電源投入の2秒後ぐらいにputを実行。
6.転送された結果が表示されたらあとはほっとけば再起動し元のファームで起動する。

コメントを残す

One thought on “【便乗】 BUFFALO WHR-G301NでOpenFlowをやってみる 【Trema,OpenWrt】 その2”