OpenWrt で BIND を使う
http://near-unix.blogspot.jp/2015/11/openwrt-bind.html
NETGEAR WG302 にも BIND をインストール
http://near-unix.blogspot.jp/2015/11/netgear-wg302-bind.html
ファイルの移動には wget を使用する方法もありますが、データを送り出す側で httpd や ftpd を稼働させておく必要があり、ファイル転送させるまでの準備のハードルが高いように感じられました。
そこでいろいろと便利な nc を使ってファイル転送を行いました。しかし OpenWrt に用意されてる Busybox 内の nc は簡略版のためか、フル装備の nc と同じように操作することができませんでした。しかしネット上を検索していたところ、OpenWrt のアップグレードに関するノウハウのページで nc の使い方のヒントを得ました。これを使って BIND の設定ファイルを移動させました。
Generic Sysupgrade - OpenWrt Wiki
http://wiki.openwrt.org/doc/howto/generic.sysupgrade
OpenWrt で nc の使い方
ファイル転送をするときには Linux などのパソコンと OpenWrt をインストールした無線 LAN ルータの間で行うことを前提としています。そのため OpenWrt をインストールしてある二台の無線 LAN ルータ同士でファイル交換するときには、一度 Linux パソコンを経由して移動させました。無線 LAN ルータからパソコンへファイル転送
これはパソコン側の nc がリスン・モードで待受をしているところへ、無線 LAN ルータからデータを送りつけるものです。よく nc の使い方で説明されている方法です。7000 番ポートを使ってデータの受け渡しをします。パソコン側 - 受信側(IP アドレス:192.168.1.2)
# nc -l -p 7000 > file1
↓
無線LANルータ側 - 送信側(IP アドレス:192.168.1.1)
# nc 192.168.1.2 7000 < file1
パソコンから無線LANルータへファイル転送
これが問題でした。OpenWrt の nc はリスン・モード(-l)が使用出来ないのです。そのため、上記の逆の手順では nc によるファイル転送が出来ません。私も今回初めて知ったことですが、 nc コマンドには、受信だけでなく送信もリスン・モードにすることができるのです。パソコン側で送信データをリスン・モードで待受状態にしておき、そこで無線LANルータから受信のリクエストを送ってファイルを転送します。パソコン側 - 送信側(IP アドレス:192.168.1.2)
# cat file1 | nc -l -p 7000
↓
無線LANルータ側 - 受信側(IP アドレス:192.168.1.1)
# nc 192.168.1.2 7000 > file1
なおこの nc の操作をしても自動的にコマンドは終了しませんでした。Ctrl + C で適当なところで中断させました。OpenWrt のアップグレードの説明のページではパソコン側で pv コマンドを経由させて、転送の様子をモニタしながら送信のリスン・モードにするように奨めています。
パソコン側 - 送信側(IP アドレス:192.168.1.2)
# cat file1 | pv -b | nc -l -p 7000
↓
無線LANルータ側 - 受信側(IP アドレス:192.168.1.1)
# nc 192.168.1.2 7000 > file1
以上、OpenWrt のノウハウの備忘録として記事にしておきました。
[追記 scp] 2015-11-09
scp でもパソコン側から無線 LAN ルータ側へファイル転送ができました。パソコン側からアップロードするとには nc より scp の方が使いやすいようです。# scp file1 root@192.168.1.1:/tmp
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。