読者です 読者をやめる 読者になる 読者になる

Buffalo WSR-600DHPにOpenWRTを入れる

ヨドバシカメラで購入したバッファロールータをOpenWRT化してみる

 SDNコントローラからコントロール可能な無線APが作りたかったので、OpenWRTを使ってみることにする。はじめはHostapdを使ってWhitebox switch的なものを作ろうとしていたが、2.4Ghzと5Ghzの両方をしゃべれるチップセットがかなり入手しにくかったのであきらめてOpenWRTを使うことにする。

OpenWRTにはOpen vSwichを入れることができるので、OpenFlowと連携が可能になる。また、市販のルータを使って実装できるのでかなり便利。

自分のルータがOpenWRTに対応しているかどうかはここで見ることができる。

https://wiki.openwrt.org/toh/start

 ここではBuffaloのWSR-600DHPを使用する。

buffalo.jp

準備として以下のことを行う。

 OpenWRTのファームウェアのダウンロード

OpenWRTのファームウェアは以下の公式サイトからダウンロードできる。

https://openwrt.org/

先ほどの対応機器一覧の画面から自身のルータを選び、その中にリンクのあるbinファイルをダウンロード。 公式サイトを読むと、ダウンロードしたbinファイルをルータの管理画面(WebUI)の「ファームウェア更新」のところでアップロードすればOpenWRTになると書いてあるが、今回のBuffaloルータだとそれが失敗してしまった。ほかのファームウェアでもやってみてだめだったので、別の方法を探すことにする。 参考にしたのは以下のサイト

http://www.srchack.org/article.php?story=20160503003415488

このサイトではtftpサーバからルータを起動しているようだ。

 サイトにしたがってopenwrt-ramips-mt7621-wsr-600-initramfs-kernel.binを入手

以下のサイトにあった。(自力で探しても見つからなかった....)

http://www.srchack.org/pub/openwrt/wsr-600dhp/r49177/openwrt-ramips-mt7621-wsr-600-initramfs-kernel.bin

「Tftp64」というWindowsftpサーバに変えてくれるツールを使う。

その後は下記の手順に従う。

  • 上記でダウンロードしたbinファイルの名前をfirmware_WSR-600DHP.ramに変更する。
  • tftpサーバを(アドレス:192.168.11.168)で公開する(サーバ上に上記.ramファイルを置く)
  • Windows PC(tftpサーバ)とバッファロールータをLANケーブルでつなげる。
  • Buffalloルータの電源を「AOSS」ボタンを押しながら入れる

これでBuffalloルータがOpenWRTとして起動してくれる。

あとはtelnetでルータに入り(192.168.1.1)以下のコマンドを実行

# fw_setenv dual_image 0

# sysupgrade -n openwrt-ramips-mt7621-wsr-600-squashfs-sysupgrade.bin

openwrt-ramips-mt7621-wsr-600-squashfs-sysupgrade.binはアップグレード用のファイルなので

https://downloads.openwrt.org/chaos_calmer/15.05/ramips/mt7621/

このあたりから適宜ダウンロードしてルータに配置する。

 最後にsshでログインできるようにrootパスワードを設定

 # passwd root

 

 

 

iptables -t nat -D POSTROUTING 1

 

iptables -t nat -A POSTROUTING -p TCP -s 192.168.122.0/24 -d 153.153.145.156/32 -j MASQUERADE --to-ports 1024-65535

ip netns exec test ip route

ip netns exec test route add default gw 192.168.122.1