2009年2月5日から2009年2月1日までの日記を表示中

2009年 2月 5日 (木)

二日酔い

翌日残るとか割と久しぶりかも.

キックハーネス

ネットで探してもよさそうなパーツを見つけられなかったので (34ピンのコネクタを探すと FDD 向けのばかりひっかかる) ヤフオクで入手しちゃいました.ゲーセンの筐体から外したのかな? この十分すぎる長さのケーブルの束がたまりません (*´Д`)'`ァ'`ァ

CPS2の拡張IO用のケーブル

コントロールボックス側はどうしようか.もし万が一 D&D の 4人同時プレーを実現したくなったりしてしまった場合のことも考えるとw GND + 22入力分の配線が必要になるので DSUB25ピンあたりがいいのかな?

2009年 2月 4日 (水)

飲み会

川崎で飲み会でした.帰りが遠いのがアレ.でもそれも・・・

サーバダウンの余波

Pidginじゃなくて永夜抄パッチの方で話題になるとは思いませんでした.今でも需要あるのがすごい.ご迷惑をお掛けしました.

2009年 2月 3日 (火)

サーバ修理

時間が取れたので実家までひとっ走りして行ってきました.ひとっ走りといっても片道2時間くらいですが・・・.まず HDD を交換してサーバを復旧させ,その後サーバが兼ねているルータ機能と DHCP サーバ部分を無線 LAN の AP (手持ちの NEC の WR6670S を提供) に移して,サーバがまたクラッシュした際にも最低限のネット環境は維持できるようにする計画.SSD とかファンレスマシンとかにすりゃいいじゃんという話もありますが,まあひとまずは手持ちの部材でやるということで・・・.

到着後,さっそく HDD 交換作業開始.まずは /dev/hda の特定のパーティションが壊れたのか,それとも完全にディスクごと壊れてしまったのかをチェック.電源を投入.とりあえず異音はないようです.GRUB も上がってきました.この辺は無事ということですね.カーネルが上がって /dev/hda1 の fsck 開始・・・ゴクリ.・・・/dev/hda5・・・/dev/hda8・・・/dev/hda9 ・・・あれ? /dev/hda 全部通ったよ? そして拡張ベイの方に突っ込んである /dev/hdc の方も問題なく終了.何それ.

fsckが普通に完走

そのまま普通にデーモン類が上がってプロンプトが出てきました.えー.ディスククラッシュしてたんじゃなかったのか!?

ログインして /var/log の下を見てみたところ,syslog にこんなメッセージが残ってました.

Feb  1 12:38:20 kernel: hda: dma_timer_expiry: dma status == 0x20
Feb  1 12:38:40 kernel: hda: timeout waiting for DMA
Feb  1 12:38:40 kernel: hda: timeout waiting for DMA
Feb  1 12:38:40 kernel: hda: (__ide_dma_test_irq) called while not waiting
Feb  1 12:38:40 kernel: hda: status timeout: status=0xd0 { Busy }
Feb  1 12:38:40 kernel:
Feb  1 12:38:40 kernel: hda: drive not ready for command
Feb  1 12:38:40 kernel: ide0: reset: success
Feb  1 12:39:13 kernel: hda: dma_timer_expiry: dma status == 0x21

これより後の時刻のログがほとんどないので,これが関係あるのかな? 1月にも何度か同じようなメッセージが出ているようですが・・・.なんかディスクエラーというよりマシン側のドライバか何かの問題? うーん.

何だかよくわかりませんが,とりあえずサーバの方は何事もなかったのかのように普通に上がって動いているので,ひとまずは HDD の交換は見送ることにしました.それでも交換しておいた方が安心じゃない?と思われるかもしれませんが,交換用の HDD 自体,たまたま手元にあった出所すらよく思い出せない得体の知れないものなので・・・.

ネットワークいじり

次に,ルータ機能とかをサーバから WR6670S に移す作業を開始しました.現状以下の図のようなネットワークなんで,今回のように T22 がダウンすると LAN の中のマシンは IP アドレスが取れないどころかパケットのルーティングすらしてもらえなくなるので完全に外に出られなくなっちゃいます.

元々のネットワーク構成

これを以下の図のように変更して,T22 が提供しているサービスの一部を WR6670S に移すことで,T22 が正常に動いている間は今までと同じように内外にサービスを提供しつつ,T22 が落ちてしまった場合でも LAN の中から外に出ることくらいはできるようにしておきたいという算段です.

変更後のネットワーク (予定)

とりあえず NAT などのルータとしての機能と DHCP を T22 から WR6670S に移して,Web サーバとかメールサーバとかの内外両方に向けたサービスは WR6670S から T22 にポートフォワーディングすればよさそう.問題は DNS の切り替えですが,これは WR6670S の DHCP で,各端末に対して「プライマリ DNS として T22 を直接参照し,セカンダリ DNS として ISP の DNS を参照する」ように通達すれば,各端末は以下の図のように T22 が生きている間は T22 に直接問い合わせを行い,T22 が死んだら ISP の DNS に直接問い合わせるようにできるかと.

DNSの切り替え案1

また,DNS に関しては,WR6670S の DNS フォワーディング機能を利用して,以下の図のように各端末は WR6670S を DNS として参照するようにして, WR6670S が普段は T22 に DNS のクエリを転送し,T22 が落ちたら外の ISP の DNS に転送するようにする方法も考えられます.

DNSの切り替え案2

というわけで,こんな計画で実際にやってみたんですが,色々な要因が重なってなかなか思うようには行きませんでした (´・ω・`).いかしょんぼりな話色々.

DNSまわりの設定がうまくキマらず混乱

T22 を LAN の中に押し込めて,代わりに WR6670S をルータのポジションに置いて DHCP を動かすところまではとても簡単だったわけですが,その先の DNS のところでひっかかりました.DNS フォワーディングを利用してクエリを T22 に転送させようと「接続先設定」の「ネームサーバ」の「サーバから割り当てられたアドレス」の「優先する」チェックを外して手入力で T22 の IP アドレスを設定したんですが,ルータに LAN 内のホスト名を問い合わせても全然解決できません (´・ω・`).・・・もしかして DNS フォワーディングは外側にしかできないとか? うーん.

そこで作戦を変更し,WR6670S の DHCP で,プライマリ DNS として T22 を利用するよう通達するようにしようと思ったのですが,DHCP で配る内容を細かく指定する方法がよくわからず・・・.「詳細設定」の「LAN側設定」で「ネームサーバ」の欄を埋めても端末に渡る情報は WR6670S が ISP から通知された ISP 側の DNS の IP アドレス. 何か間違えてるのかなぁ.

もう少し粘りたかったんですが,時間の都合もあって,ひとまず DHCP を T22 の方で動かすことにして,DNS として T22 を使うよう通知させるようにして妥協しました.T22 が落ちたら DHCP サーバがいなくなるからネットにつなげなくなります.すなわちこの時点で今回の変更による効果は骨抜きになってしまいました・・・.

いやでも今思えば T22 側でパケットキャプチャして問い合わせが来ているかくらい見るべきでしたな・・・.あと,ここまで書いて気づいたんですが,「接続先設定」の「プライマリDNS」や「LAN側設定」の「プライマリDNS」などにマウスを重ねると「WAN側のプライマリDNSのアドレス」とか「LAN側のプライマリDNSのアドレス」とか説明が出ますね.これだけだと何がどう使われるのかよくわかりませんが,ひょっとして 「LAN側設定」の「プライマリDNS」に T22 のアドレスを入れてやれば, DNS フォワーディングで T22 にクエリが飛んだりしたのかな・・・? くそー,試してみたいけど外からだと怖くていじれん (´・ω・`).もうちっと中でどの設定利用しているとか書いて欲しいなぁ,このページ

中からだとポートフォワーディングしてくれないのって何なの?

ひとまず今までと同じように外に出られることを確認し,外のホストからポートフォワーディングで T22 の 22 番や 80 番につながることは確認できたのですが,LAN の中の端末から WR6670S の外側の口の IP アドレスを指定して ssh や http で繋ごうとするとコネクションが切られてしまいます.T22 側でおかしな設定をしてしまっていたかなと思って Wireshark で確認してみたところ,何と WR6670S がコネクションを弾いてました・・・えー (;´Д`)

図にするとこんな感じ.

こういうアクセスは切られるらしい

これは・・・仕様なのか? 回避方法がないものかとググってみたらこんな情報を発見しました.別の製品のスレですが,この製品でも同じような挙動を示すようで,さらにそれが仕様みたいな結論に落ち着いてますな.本当に仕様なのかどうかはここからは判断つきませんが,Linux の iptables なら当然のようにできていたことだけに,もし仕様でできないとするとこれはとても残念な話.なぜ NEC のはこれができないのか (わざわざ切っているのか),背景や理由が気になります.ちなみにヒタヒタさんちのカッコいい舶来ルータはできるらしいです.いいなぁ.

まあ何にせよこれは何とかしないと色々まずいです.ノート PC を家の中で使う場合は SMTP サーバと POP3 サーバの設定を切り替えてねとか説明するだけでも面倒くさいので・・・.そこで LAN の中で garakuta.homelinux.org とかの WR6670S の外側の口のホスト名を引いた場合に,無理矢理内部で解決してローカル IP に置き換えることで対処することにしました.

相手が UNIX 系 OS だけなら NIS で流せばいいのかもしれませんが,LAN には Windows 機もいれば緩いゲーム機もいたりするわけで,個々の設定をいちいち見てられません・・・.となると,DNS で何とかするしかなさそう.要するに DNS のキャッシュ汚染でファーミングみたいなことを意図的にやりたいわけです.どうやればいいかなー.試しにヒタヒタさんに相談してみたところ「空っぽの A レコード用意すればいけるんじゃね?」的な回答が.おお,なるほどねー.というわけでやってみました.

まず named.conf に以下のエントリを追加.

zone "garakuta.homelinux.org" {
        notify no;
        type master;
        file "garakuta.zone";
};

で,garakuta.zone なるファイルを作って以下を記述.

@ IN SOA garakuta.homelinux.org. root.garakuta.homelinux.org. (
        2009020304
        10800
        3600
        604800
        86400 )
@               IN      NS      garakuta.homelinux.org.
@               IN      A       192.168.0.1

これで LAN の中で garakuta.homelinux.org を引くとローカル IP が取れるようになり,前述のポートフォワーディングの問題も回避できるようになりましたよ.まあでも中から外側の口の IP アドレスを直指定された場合は,これだと対処できませんが・・・.ていうかかなりイマイチだなこれ・・・.やっぱりこの仕様には納得がいかない・・・(;´Д`)

それWAN側って言わなくない?

元々 T22 では iptables であれこれルールを書いて変なパケットをフィルタしてたんですが,この辺もできるだけ移植することにしました.で,そのうちの1つの,外部から送信元がプライベートアドレスの変なパケットが来たら捨てるというルールを移植しようとして「192.168.0.0/16 から 任意のアドレスへのパケットが来たら弾く」というルールのフィルタを追加して WAN 側に設定したんですが,恐ろしいことにこれを反映させた途端 LAN の中のすべてのマシンから外にアクセスできなくなってしまいました orz

WR6670S のログを見ると,192.168.0.254 (LAN側の口につけたIPアドレス) から外のマシンへのアクセスが全て弾かれている・・・.これ WAN 側っていうのかぁ (;´Д`) ?どうも WAN 側という言葉の認識にずれがあるようで・・・.まあこの場合,任意の宛先のパケットにせずに,ルータの外側の口の IP アドレス宛のパケットにすればよいのかもしれませんが,なんだか急に萎えて解除して終わりにしちゃいました・・・

さらにダメ押し

ここのネットワークで利用している ISP (CATV) では DHCP が動いていて,ケーブルモデムの先の機器の MAC アドレスを見てそれに対応する固定の IP アドレスを割り振るようになっています.接続する機器の MAC アドレスは事前に申請しておく必要あり,申請のない MAC アドレスの機器がつながった場合は固定の保証がないグローバル IP が割り当てられます.そのため,今回のようにルータとなる機器を交換する場合は,外側の口の MAC アドレスを ISP に申請して DHCP のエントリを更新してもらう必要があります.

というわけで,家を出る前に WR6670S の MAC アドレスの登録申請をしておいたところ,割とすぐに対応して貰えたようで,実家に着いたときには登録作業が完了したとのメールが届いていました (携帯から GMail で確認).が,実際に WR6670S を繋いで IP アドレスを取ってみると今までのグローバルアドレスと全然違うアドレスが・・・.

とりあえず「今までと違うアドレスになっちゃったんですけど,これが新しい固定アドレスってことなんですか?」とすかさずメールを送るも全然音沙汰なし (;´Д`).「これが新しい固定IPアドレスです!」というのであれば,釈然としないものの DynDNS の登録や T22 の設定を直して回るんですけど,それすらわからないのが非常に辛い.メールを送ってから 3時間近く経っても返事がなかったので,催促のメールを書き始めたところで「設定間違えてたから直した」という返事が.あー.

が,取り直してみると,さっきと同じネットワークアドレスの別のIPアドレスが取れました.まるで直っていない・・・(;´Д`).再度「何かまだ違うんですけどー」とメール.また3時間とかまたされたら嫌だなぁと思ったら今度は15分くらいで「また間違えてて今度こそ直ったはず」という返事が.3度目の正直で,ようやく元の IP アドレスが取れるようになりました.はー.まあ,ミスは仕方ないですし,直すのが多少遅れるのも仕方ないとは思うんですが,もうすこし早く質問に答えて欲しかったなぁ・・・.というかよく考えたら結局質問には答えてもらえなかったし.またか.萎える.

まとめ

というわけで,結局以下のようなネットワークになってしまいました.T22 が死んでもネットワークは落ちずにそのまま使い続けられるような環境にするという目標は達成できず,しかも中からのサーバへのアクセス性が低下してしまったりしたわけで,機材を追加して散々苦労したのに何もよくならなかったという結末とかどうなのって感じ (´・ω・`).まあ,BIND のアレはまたどっかで役に立ちそうな感じだけどw

最終的にこうなってしまった

次行った時は,時間的余裕もあるはずなので,もう少しじっくり取り組んでみるかな・・・.DNS まわりはまだ試してないパターンとかあるし・・・.いやでもそれが直ってもポートフォワーディングの非常に残念なあれはそのままなんだよなぁ.そう考えると今日の苦労は授業料だったと思って WR6670S を単なる無線 LAN の AP に格下げしてルータにはさっさと別の機材を導入することを考えた方がいいような気も.・・・そういえば Zaurus 使ってないな.これに USB-Ether つけて SD からブートするようにしたりすれば結構いけたりするのかな・・・? ゴクリ・・・

火山灰

ところで,車に積もった火山灰がヤバすぎです.なに,ここは本当に東京なの? 走ったら落ちるのかとおもったけど,全然落ちてませんでしたw.水ぶっかけたい.

2009年 2月 2日 (月)

シレンDS2

その後も相変わらずやられまくりでしたが,懲りずに頑張ったところ運良く風魔セットが手に入り,何とかアテカ姫を助けることができました.やっと2回目のエンディングだー.しかしもののけ手帳はまだ全然埋まっておりません.つまり本当の不思議はこれからだってことですね.

2009年 2月1日 (日)

マスターシステム

2ヶ月近く放置していた自転車のパンクを修理してもらいに家を出たついでにハードオフに立ち寄ったところ,ジャンクかごの中にDC版オラタンを発見.この状態で100円はスバラシイ.適当な100円のファミコンソフトと合わせてさっそく確保.

オラタン他

他におもしろそうなものはないかとジャンク棚を見ていると SG-1000 一式が.しかしソフトが2本 (スタージャッカーとQ-Bertかなんか) ついているとはいえ画面出ないで 2,500 円はちと高いのでは・・・.というわけでこれは見送り.1,000円なら買っていたがw

一方その奥には,先日見送ったマスターシステムがまだ売れ残ってました.こちらも電源が入らないのに 2,000円 とかいう強気の値段設定が妙に腹立たしい感じですが (ハードオフ的に500円クラスのACアダプタがついているからちょっと高い?),よく見れば本体の状態はなかなか良さそう.それにかっこいいよな,このデザイン.うーん,電源入らないとかいって,ちょっと直せば動いちゃうんじゃないの? ねぇ?

・・・というわけで結局買っちゃいました.

マスターシステム

帰宅後さっそく動作確認.・・・うむ,確かに電源ボタンを押してもPower LEDが光らない.但し書きにあったように AC アダプタはちゃんと機能しているっぽい (テスターで測定).うーん,基板側の電源まわりが壊れているのかなー.あるいは単に電源ランプの LED が壊れてるだけとか w? 本当は通電したりしてるんじゃないの?

LEDが壊れているだけだったら映像や音は出るはず.というわけで試しに Wikipedia によるとマスターシステムでも使えるらしい XMD-2 RGB/S をつないで電源をON/OFF.うーん,やっぱだめか.じゃあ,カセットをさしてみたらどうかな・・・.うーん,Power LEDは光るけどゲーム画面は出ないなぁ・・・ってあれ? なんかいつの間にか電源入るようになってるじゃん.・・・あ,消えた.・・・あ,ついた.

どうも単純に電源スイッチの接触が悪かっただけのようで,何度かON/OFFを繰り返すうちに接点の状態が改善されたのか,そこそこつくようになりました.さらに何度も ON/OFF するうちに割と安定.そして XMD-2 RGB/S をやめてメガドラ用のAVケーブルに交換したらモニタが反応.さらに端子を吹いたらゲームも無事起動.こいつ・・・動くぞ!

そんなわけでしばらくカセットささずに電源を入れた際に流れるスペースハリアーのBGMを堪能してまいた.これは素晴らしい内蔵 ROM ですね.

カセットをささなかった時の画面

で,何で XMD-2 RGB/S では映像出なかったんですかね (音は出た).ホスピスを見ると,ごく一部 RGB 出力ができなものがあるとか書かれている・・・.まさか外れなのかこれ?

外れだったとしても,どこまで外れなのか気になります.というわけで,分解して同期信号を引きずり出していつもの同期分離回路に突っ込んでみました.

同期信号を取り出してみた

お,余裕で XRGB-3 が 15kHz を検出するなぁ.同期分離回路通さなくても検出するし.色信号を適当に繋いだらちゃんと絵も出るし (本当に適当に繋いだ (緑か何かを赤の入力に繋いだ) ので非常にお見苦しい画面になっていますが).となると,XMD-2 RGB/S に何かあるのかなぁ.メガドライブで試したらばっちりフェリオスが映ったので,XMD-2 RGB/S 自体は壊れてないとは思うんですが・・・.ていうか単に Wikipedia の情報がガセ? ググったら ここに興味深い情報が・・・.

赤い

まあ,普通に引っ張り出せば映るってことは,RGB 出したかったら別途ケーブル作ればいいだけの話か.オーディオタイプの DIN8 ピンも 売ってる場所見つけてあるし (実は手元に十年以上前に買ったと思われるピン部分が1個あったんですが,形のあうシールドとカバーが見当たらなかったので使えず・・・).というわけで,ジャンクで買ったマスターシステムが動いたよというお話しでした.

サーバ死亡

夜になって実家に置いてあるサーバ (中身はThinkPad T22) への ssh のコネクションが突然切れ,つながらなくなってしまいました.あれでも Web は見える.あ,でもやっぱり Wiki のページのアクセスカウンタがおかしいから何か変だ.そういえばさっき実家から「メールが受信できなくなった」とか電話がかかってきたなぁ・・・.うーん.

電話して画面に出てるメッセージを見てもらったところ,どうも /dev/hda の方のディスクエラーっぽい雰囲気.まじか (;´Д`)

そのままおやつの時間の定期バックアップに突入して変なデータバックアップされたりしたらたまらんので,一旦電源を落としてもらいました.しかし色々やらせているのでこいつが死亡すると色々困るなぁ.早めに何とかせねば.

ちなみにこのマシン,2004年の9月頃にから稼動しているので,もう4年半近く動いている計算になります.まあ,さすがにそんだけ動かしていればディスクも壊れますかねー.はぁ.やっぱルータとかそこら辺の基本的な部分は HDD や CPU ファンといった稼動部のない機器を置いた方が無難そうね.今ならその辺にゴロゴロしてそうだし.

2009年2月5日から2009年2月1日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2009年2月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ