Tomato ファームウェアで FreeDNS (afraid.org) を使う

ダイナミック DNS サービスの FreeDNS (afraid.org) を Shibby 版 Tomato ファームウェアをインストールした Linksys WRT54GS で使用してみました。

FreeDNS – Free DNS – Dynamic DNS – Static DNS subdomain and domain hosting
http://freedns.afraid.org/

FreeDNS のダイナミック DNS サービスを登録した WRT54GS です。

今まで DynDns や No-IP を使用してきましたが、これらとは違った設定方法が必要で、初めて設定を行いましたが、ちょっと難しかったことから備忘録として記事としました。

アカウント登録

FreeDNS の公式ウェブサイトから登録を行いました。トップページの一番下のところにある “Sign UP!” (サインアップ)から登録をしました。ちなみに、サインアップ(Sign up)はユーザ登録をする用語で、サインイン(Sign in)はユーザ登録を済ませた後、ログインで使用する用語です。

FreeDNS のウェブサイト

これが実際のユーザ登録画面です。ユーザ登録を行うと登録したメールアドレスへ登録メールが届き、その中にあるアクティベーション(activation)をクリックして登録を完了させます。

ユーザ登録画面

サブドメインの登録

ここでは無料のサブドメインを使用しました。FreeDNS が提供するドメインの中から好きなものを選択して、自由に設定できるサブドメインを作ります。ただ提供されているドメイン名がとても微妙なものばかりで???な感じでした(笑)。この部分の手続きの詳細は問題なくできますので割愛します。

Tomato ファームウェアへ登録

FreeDNS の IP アドレスの更新方法は少し変わっているようで、単純にユーザ名やパスワードの設定では出来ないようになっています。Tomato ファームウェアの [DDNS] の中で FreeDNS を選択すると見慣れない “Token/URL” (トークン)しか設定項目が表示されないことに気づきます。

さてこの “Token/URL” を入手しなければならないのですが、これがいまいちよく解らない部分でした。いろいろとネット上を調べてみると、“Direct URL”(ダイレクト URL)の項目で IP アドレスの更新を行ったときに使用される URL の “?” マークの以降の文字列がトークン(Token/URL)なのだそうです。

以下のようにして “Direct URL” でウェブサイト上から一度 IP アドレスの更新を行なって、URL を取得します。

メインメニューを選択
ダイナミック DNS を選択
ダイレクト URL をクリックすると新しいページへジャンプしてアップデートが行われます。
そのジャンプしたページの URL をコピー&ペーストで取得します。

そして得られたトークン(Token/URL)をTomato ファームウェアへ設定します。これで “save”  ボタンを押して保存すると、自動的に更新が行われて、その更新の成否が “Last Result” に表示されます。問題がなければこれで設定終了です。

Tomato ファームウェアの DDNS の設定画面

注意事項

IP アドレスのアップデートのページにおいて “Rotate Authentication Token” の部分をクリックするとトークン(Token/URL)が変化してしまいます。不用意にクリックしないように注意しましょう。クリックしてしまった場合、再度 “Direct URL” のところからトークンを取得し直して Tomato ファームウェアの再設定をすることとなります。

Linksys WRT54GS で DLNA サーバがハングアップ

Shibby 版の Tomato k26 ファームウェアに入れ換えたリンクシス WRT54GS の DLNA サーバを試してみたところ、フリーズしてしまいました。

経緯

Tomato k24 版のファームウェアのときには、[USB and NAS] の項目に存在していなかった [Media Server] を試してみたくなり、挑戦してみました。

DLNA サーバの設定

FAT フォーマットした 8GB の USB メモリへ音楽ファイルをコピーして、WRT54GS の USB ソケットへ装着しました。これで二個の USB メモリが装着されている形となっています。

引きひもが付いている USB メモリが追加したものです。
認識された2つ目の USB メモリです。
これが [Media Server] の設定項目です。

マシンがフリーズ

ここで [Media Server] の項目で DLNA サーバの設定をしてしばらく放置していたところ、WRT54GS がフリーズしていました。無線 LAN の電波は発射されていましたが、有線 LAN も 無線 LAN も反応がなくなってしまいました。USB メモリを抜いて再起動させたところ、元通りに動作をするようになりました。

このフリーズした原因は不明ですが、おそらく DLNA サーバ動作のためにメモリ不足が発生したのではないかと想像しています。

元々メモリの少ない無線LANルータへいろいろな仕事をさせてしまうのが間違えなのかもしれません。もっとメモリに余裕のある無線 LAN ルータを入手した時点で再度確認をしてみたいと思います。

Linksys SPA942 の電源ソケットのセンターピンの接触不良

先日 ekiga.net へ接続を行った IP 電話機のリンクシス SPA942 の電源ソケットのセンターピンの接触不良を対策しました。

電源ソケットの調子が悪い SPA942 です。

症状

普通によくある電源プラグを触ると瞬間的に電源が切れて、再び接触するようで電話機が再起動してしまいます。他の電源ソケットと同様にセンターピンの根元のカシメてある部分の緩みは原因のようです。

接触不良の電源ソケットです。

分解

そこで SPA942 を分解して、電源ソケットのセンターピンへ対策を行うこととしました。

筐体裏側のネジを外してボードが見えるようにしました。

筐体裏蓋を外したところです。
シールドケースの中にも固定ネジがありました。

ボードを固定しているネジを外してボードを取り外しました。なおネジはシールドケースの中にもあります。

筐体前面からボードを取り外したところです。

電源ソケットは簡単に取り外すことが出来ない状態でした。段違いの二枚のプリント印刷基盤を固定しているピンヘッダのすぐ脇にあって、プリント印刷基盤の影に隠れて電源ソケットの端子が見えない状態でした。

電源ソケットの端子は二枚のプリント印刷基盤に挟まれた間にあります。
写真がピンぼけです。

二枚のプリント印刷基盤の分離を行いました。ピンヘッダに盛りハンダを行なって蓄熱効果でピンヘッダを抜き去りました。

二枚のプリント印刷基盤を固定しているピンヘッダです。

周囲に電極が多数存在していますので、マスキングテープで覆っておきました。

ピンヘッダを取り外したところです。

そしてようやく電源ソケットの端子が見えるようになりました。ここでさらに電源ソケットをプリント印刷基盤から取り外してセンターピンのカシメの様子を見ることができるようになりました。

プリント印刷基盤から電源ソケットを取り外したところです。

センターピンのカシメ部分をハンダで固定した後、センターピンからリード線の芯線一本をラグ板にハンダ付けしておきました。もっと太いものをハンダ付けしたかったのですが、ここの部分に高さが発生すると、元通りに電源ソケットをハンダ付けできなくなるため、最低限度の処置だけを行いました。

センターピンへ撚り線の中の一本をハンダ付けしました。

この後、電源ソケットをハンダ付けした後、ピンヘッダをハンダ付けして、全体を組み立てなおしました。

センターピン対策を行った電源ソケットをハンダ付けしたところです。

動作確認

電源プラグを揺すっても電源が切れることはなくなりました。やはりあのセンターピンが問題でした。

我が家には SPA941 と SPA942 が合計5台あります。残り4台も同じ症状を抱えているのです(涙)。今日の修理でかなり苦労したこともあり、残りも修理するか悩ましいところです。SPA942 については、イーサネット・ケーブルから電源を供給する PoE 機能があるので、この機能を使えば問題ないのは確認済みです。PoE に対応していない SPA941 だけでも電源ソケットのセンターピン対策を今後行なっておきたいと思っています。

Linksys WRT54GS へ Tomato k26 をインストール

10 月 15 日に壁へ設置した リンクシス WRT54GS は、その後、順調に動作していましたが、ちょっと困った問題が発生しました。それは USB メモリの内容を FTP でデータのダウンロードをしていたところ、WRT54GS が再起動してしまいました。原因は不明です。

Linksys WRT54GS を壁に設置
http://near-unix.blogspot.jp/2015/10/linksys-wrt54gs_15.html

壁に取り付けていたリンクシス WRT54GS です。

問題の症状

実のところ、この現象は何度か経験をしています。WRT54GS へ USB ポートを設置した後、散々通信テストを行なって、問題がないことを確かめていたつもりでした。どうも起動してしばらくの間は問題なく USB メモリの内容をアップロード/ダウンロードすることができるのです。しかし一週間ぐらい連続して稼動している状態で FTP 転送を行うと、アップロード/ダウンロードの転送が終わった直後に何故か WRT54GS が再起動してしまうのです。

フリーズするのではなく再起動となってしまうのは、システムの状態を監視しているワッチドック(番犬)タイマーの働きによるものだと思います。このワッチドック・タイマーがなぜ起動してしまうのかが問題なところで、おそらくシステムメモリが逼迫しているのだろうと思われます。起動してから短時間のうちには、問題となるメモリの逼迫現象が発生しないのだと想像しているところです。

解決策

解決策としては、現在 Shibby 版の Tomato ファームウェアの linux 2.4 系のものを使用しているものを linux 2.6 系のものにアップグレードして動作状況を確認してみることとしました。

linux 2.4 系カーネルはとても優秀なものですが、USB などのホットプラグな機器の動作においては、linux 2.6 系カーネルの方が優れているとされています。そこで、通信転送速度などの面では見劣りのする linux 2.6 系カーネルを使用したファームウェア(※1)ですが、やはりルータというネットワークの要の部分を担うところですので安定性を第一に考えて linux 2.6 系カーネルを使用したファームウェアを導入することとしました。

今までの k24 ファームウェア
tomato-NDUSB-1.28.5x-124-VPN.trx

新規インストールの k26 ファームウェア
tomato-K26USB-1.28.RT-MIPSR1-132-VPN.zip

※1 参考記事
Tomato by Shibby の k24 と k26 ファームウェアの比較

http://near-unix.blogspot.jp/2014/07/tomato-by-shibby-k24-k26.html

インストール

ブラウザからの設定画面からアップグレード・インストールしました。念の為にインストール時に設定値を初期化する設定でインストールを行いました。

WRT54GS へインストールしていた k24 系 Tomato ファームウェア
WRT54GS へインストールした k26 系 Tomato ファームウェア

設定と動作確認

新しいファームウェアのインストールが終了したところで、必要な設定を行なって稼動を開始させました。

FTP 転送でファイルのアップロード/ダウンロードをしばらく繰り返しましたが問題はなさそうでした。ここで少し気づいたことがありました。k24 系のファームウェアのときには、600KB/s 程度までしか通信転送速度がありませんでしたが、新しい k26 系のファームウェアでは 700KB/s 〜 800KB/s 程度の速度が出ていました。無線 LAN 部分などは、k26 系の方が速度が遅い状態だったので、意外な発見でした。

今後の予定

今後しばらく稼動をさせて USB メモリへのアクセスで再起動する現象が発生するか確認したいと思います。

NETGEAR USB 無線 LAN アダプタ WG111T を入手

ネットギアの USB 型無線 LAN アダプタ(2.4GHz 802.11b/g)の WG111T をインターネット・オークションにて入手しました。

今回入手したネットギア WG111T の表面です。
ネットギア WG111T の裏面です。

ar5523ドライバを使用する無線LANアダプタのようで、すでに Debian では ar5523 ドライバにデバイス ID (1385:4250 と 1385:4251)が登録されている製品でした。そのため、今まで私が入手していた ar5523 の無線LANアダプタのように新規にデバイス ID の登録は必要ありませんでした。

WG111T のキャップを取り外したところです。
この角度からだと筐体表面の溝の部分に放熱用の通気口が存在しているのが見えます。

Debian Jessie の場合、ar5523 のチップで使用するファームウェアを事前にインストールしておく必要があります。

# aptitude install firmware-atheros

なお今回たまたま発見したのですが、以前から ar5523 ドライバには同じ製品に二つのデバイス ID が存在していましたが、その理由が少し判明しました。firmware-atheros がインストールされた状態とされていない状態で lsusb コマンドでデバイス情報を収集したところ次のようになりました。パソコン側にファームウェアの準備が出来ているか出来ていないのかを知らせる役目があった模様です。

●firmware-atheros をインストール前
Bus 001 Device 004: ID 1385:4251 Netgear, Inc WG111T (no firmware)

●firmware-atheros をインストール後
Bus 001 Device 006: ID 1385:4250 Netgear, Inc WG111T

firmware-atheros をインストール後にパソコンの USB ポートへ装着すると青色の LED ランプが点灯して使用可能を知らせてくれます。Debian 上では、通信中に点滅するようなことはなく、常時点灯したままの状態でした。

WG111T の動作中を知らせる LED ランプが点灯しているところです。

今回は通信転送速度などを計測しませんでしたが、ちょっと大きめのファイルなどをダウンロードしても安定して動作していました。ただ比較的発熱量が多いようで、一時間も使用していると本体がそこそこ熱くなります。風通しのよい場所での使用を心がける必要がありそうです。

FreeBSD 9.3 p29 (NTP) アップデートで ntpq エラー

FreeBSD 9.3 p29 (NTP) のアップデートを行うと ntpq コマンドでエラーが発生します。

# ntpq
/usr/src/usr.sbin/ntp/libntp/../../../contrib/ntp/lib/isc/unix/net.c:221: fatal error: RUNTIME_CHECK(((pthread_once((&once), (initialize_action)) == 0) ? 0 : 34) == 0) failed
Abort (core dumped)

我が家では自宅サーバに FreeBSD 9.3 をインストールして運用しています。NTP サーバもこのマシンに設定していますが、ntpd の動作としては正常に動作している模様です。他のマシンから ntpdate コマンドで自宅サーバから時刻の同期を行うと正常に行われました。また異常値に設定されたわけではありませんでした。ntpq コマンドなどが使用できないため、確認ができていません。

ネット上を検索してみると既に FreeBSD の掲示板で問題が提起されていました。ntpd の make の問題だったようです。もうすぐ FreeBSD 側からバグフィックスが行われる模様です。

FreeBSD Bugzilla – Bug 204046  ntpq aborts with trap 6  Last modified: 2015-10-27 19:08:50 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204046

FreeBSD 9.3 の p29 (NTP) アップデート

FreeBSD 9.3 へ p29 アップデート(1個)が到着しました。NTP に存在していた脆弱性を修正したそうです。ニセの時刻を設定したり、時刻の更新を妨げたりすることができるそうです。このアップデートで NTP が 4.2.8p4 になるそうです。

FreeBSD-SA-15:25.ntp
https://www.freebsd.org/security/advisories/FreeBSD-SA-15:25.ntp.asc

/usr/src/UPDATING の内容

20151026:       p29     FreeBSD-SA-15:25.ntp

Fix multiple NTP vulnerabilities. New NTP version is 4.2.8p4.

The configuration file syntax has been changed, thus mergemaster run is recommended.  Now the “kod” parameter requires “limited” parameter.  If the ntp.conf is not updated, the ntpd will run successfully, but with KoD disabled.

ソースツリーの更新

subversion でソースツリーを更新しました。

# svn update /usr/src
Updating ‘/usr/src’:

/usr/src/contrib/ntp/ 以下を中心に大量の更新

U /usr/src/usr.sbin/ntp/Makefile.inc
A /usr/src/usr.sbin/ntp/doc/drivers/scripts/Makefile
U /usr/src/usr.sbin/ntp/doc/ntp.keys.5
U /usr/src/usr.sbin/ntp/doc/ntptime.8
U /usr/src/usr.sbin/ntp/libntp/Makefile
U /usr/src/usr.sbin/ntp/libparse/Makefile
U /usr/src/usr.sbin/ntp/ntpdc/Makefile
U /usr/src/usr.sbin/ntp/scripts/mkver
U /usr/src
Updated to revision 290048.

ユーザランドの再ビルド

今回のアップデートでは、ユーザランドの再ビルドが必要です。

# cd /usr/src
# make buildworld

ユーザランドのインストール

# make installworld

マシンの再起動

# reboot

/etc/ntp.conf の修正

mergemaster を使って /etc/ntp.conf の修正することを求められていますが、一方的に NTP サーバの時刻へ同期させる(server で NTP サーバを指定している)ときには、特に修正は必要なさそうです。

[追記] /etc/ntp.conf の mergemaster

念の為 mergemaster を行なってみたところ、以下のセキュリティの項目が追加されたようです。restrict の定義が追加されていました。

+# Security:
+#
+# By default, only allow time queries and block all other requests
+# from unauthenticated clients.
+#
+# See http://support.ntp.org/bin/view/Support/AccessRestrictions
+# for more information.
+#
+restrict default limited kod nomodify notrap nopeer noquery
+restrict -6 default limited kod nomodify notrap nopeer noquery
+#
+# Alternatively, the following rules would block all unauthorized access.
+#
+#restrict default ignore
+#restrict -6 default ignore
+#
+# In this case, all remote NTP time servers also need to be explicitly
+# allowed or they would not be able to exchange time information with
+# this server.