wiki:linux/OpenWrt2

WZR-G54のOpenWrtの書き込みと無線LANコンバータ化

WZR-G54をOpenWrt化する方法と無線LANコンバータ化する方法を紹介します。無線LAN化は他のOpenWrt化した機器でも応用できると思います。

準備

ファーム書き込み

WZR-G54の電源を入れ、すぐさま192.168.11.1へpingを実行すると次のようになる。

C:\Windows\system32>ping -t 192.168.11.1
192.168.11.1 に ping を送信しています 32 バイトのデータ:
192.168.11.10 からの応答: 宛先ホストに到達できません。
192.168.11.10 からの応答: 宛先ホストに到達できません。
192.168.11.10 からの応答: 宛先ホストに到達できません。
要求がタイムアウトしました。
192.168.11.1 からの応答: バイト数 =32 時間 =500ms TTL=128
192.168.11.1 からの応答: バイト数 =32 時間 <1ms TTL=128
192.168.11.1 からの応答: バイト数 =32 時間 <1ms TTL=128
要求がタイムアウトしました。
要求がタイムアウトしました。

上記の一瞬192.168.11.1へpingが通る瞬間にtftpでイメージを送信すると、ファームウェアを書き換えることができる。 イメージの送信は次のコマンド。

>tftp -i 192.168.11.1 PUT openwrt-brcm47xx-squashfs.trx
転送を正常に完了しました: 5 秒間に 3018752 バイト、603750 バイト/秒

成功すれば、完了したメッセージが表示。出なければ、もう一度WZR-G54の電源を切ってやり直す。 2つのコンソールを使って、pingで接続を確認しながら、pingが反応した瞬間にtftpを実行するようにしてやればよい。

書き込み終了後の対応

書き込み終了後、WZR-G54のLANのIPは192.168.1.1に変更となっている。

マシンのIPを192.168.1.10へ変更し、telnetで192.168.1.1へログインしてパスワードを設定する。 以降、telnetではログインできなくなりsshのみでログイン可能となる。なお、デフォルトの設定では、 ログインはLAN接続からのみであり、無線LANからは接続できない。

OpenWrtの設定

OpenWrtはGUIで設定することができる。

 http://192.168.1.1/

に接続すると、WebUIが表示されるので、ここから設定する.

OpenWrtでイーサネットコンバータの作り方

TVやHDDレコーダが家内の別の島にある場合、次のように子機に無線LANのネットワークをブリッジさせたい場合がある。

無線LAN親機----無線LAN子機(WZR-G54)----+----TV               (192.168.1.xを親機のDHCPで割り当て)
192.168.1.1       192.168.1.2          +----HDDレコーダ      (192.168.1.xを親機のDHCPで割り当て)
                                       +----ネットオーディオ (192.168.1.xを親機のDHCPで割り当て)

メタルケーブルによるLANの場合、ブリッジを作成し、2つのインタフェースをブリッジに追加するだけで、上記のような構成を取ることは可能である。しかし、無線LAN IFはチップセットにおっては通常のブリッジに入れると、利用できなくなるので(パケット転送を無駄にしないような仕様になっている)、relayedを使ってソフトウェアでパケットを転送(ブリッジ)する必要がある。

無線LAN子機から延びるLANを別セグメントにし、ルーティングさせてもいいが、クライアントもしくは無線LAN親機のルーティングの設定が必要になり面倒(親機によっては対応していない場合がある)。なので、親機のネットワークを延ばすようにした。

基本的には、ここ参考

以下手順

  • 子機の無線LAN側のアドレスを192.168.1.2などに設定
  • LAN側のアドレスを192.168.2.1など適当に設定(上記のセグメントとは異なるセグメントにする)しDHCPサーバを無効にする

sshでログインして、必要なパッケージを入れる

# opkg update 
# opkg install relayd
# opkg install luci-proto-relay
  • インタフェースをrelayで作成(ProtocolにRelay bridgeを指定)。relayにlanとwwlan(無線LANのネットワーク)を含める(luci-proto-relayを入れればGUIでできる)
  • firewallの設定(/etc/config/firewall)を書き換える
config 'zone'
	option 'name' 'lan'
	option 'input' 'ACCEPT'
	option 'output' 'ACCEPT'
	option 'forward' 'ACCEPT'
	option 'network' 'lan wwan'

ネットワークを再起動すればok。

# /etc/init.d/network restart

あとはLANポートに機器を繋げばDHCPでIPが割り振られるはず。