Welcome to

Welcome to tokoo.net

Home

日々の更新
2003年  2月26日
 2月19日
 2月3日
2002年  12月5日
 4月17日
 2月20日
2001年  12月26日
 11月18日
 10月3日
 10月2日
 9月14日
 9月2日
 7月29日
 7月16日
 7月3日
 6月19日
 6月11日
    6月7日
    6月2日
    5月29日
    5月22日
    5月19日
    5月17日
    5月16日
System
Private

何かお気づきの点が
ございましたら
mitsuまで

 

 

GapNATを試してみる

2003年2月3日

 

Webの更新をサボっているが、システムのほうは実は大幅にかわっている。面倒くさいのでここでまとめて解説。

 

富士通欠陥ディスク問題

   昨年末、サーバーに使用しているRAID構成のディスクの1つが再起動で立ち上がらなくなってしまった。マザーボードをさんざ疑っていたが、結局ハードディスクが悪いことがわかってきた。

 使用ディスク:富士通MPG3409AT-EF

 このディスクの問題は昨年から評判らしく、しかもその原因はかなり深刻らしい。主犯はディスクに張りついているCIRRUS LOGIC社の石で、さらにさかのぼると住友ベークライト社の素材そのものにあるらしい。高温多湿下で1年程度使うと、含有物のリンが化学反応を起こし、回路の短絡を招くとの情報が日経BPのWebに掲載されている。全然関係ないがネットでいろいろ検索していたらこんなページ見つけてしまった。くわばらくわばら。

 「高温多湿下で1年」、まさにこの使い方だった。静音化のために「SMARTDRIVE」というアルミケースに密封して、真夏の東京で24時間運転させていたんだからな。夏についてはCPUの方を心配していたのだが、クロックダウンさせる必要もなく元気で動いた。まさかHDDがお釈迦になるとは思わなかった。その意味では標準外の使い方なのかもしれないが、元々流体軸受・低速度という、静音化作戦には当時としては最良の選択肢と考え、さらに静音化を徹底させただけなのである。

 尚富士通は秋葉原などでのバルク購入品については返品交換には応じないとのことだ。社の業績が良ければ例えば昔Intelがやったようなこと(ペンティアム・バグ回収)もやれたかもしれない。何せ3.5インチは撤退モードだし、上期電機各社が黒字化を達成している状況で一人負けしているし。従兄弟が勤めているのだがここは心を鬼にして今後は一切富士通のものは買わないと決意。こんな凋落企業のバルク品など二度とゴメンである。早速だが奥さんの携帯、F504iSにしようかと思っていたが、P504iSに変更。

 こんな話題を会社の掲示板でやったら、「話題遅すぎ~」とチェックが入ってしまった。良くも悪くもRAID構成の1個の調子が悪かっただけなんで、とりあえず動いているからイイヤとしていたのが、情報浦島の原因だろう。

 しかし悩ましいのは、今回の不良が固体不良ではなさそうなことだ。何故ならRAID1のもう片方にも、全く同じディスクを使っているからだ。こちらのほうは壊れたほうよりも購入が後で、まだ元気に動いている(おまけに九十九のシールも付いてるし)のだが、いつCIRRUSの回路が短絡するか分かったもんじゃない。

 結局新型CLIEの購入を延期し、MAXTORの80GBを2個、ソフマップで購入。これにシステムを移しかえることにした。

 

Red Hat 8.0パーソナル
     現行40GBだったRAID構成を新規に購入した80GBに変更したかったのだが、これがやたら面倒くさい。80GBで領域確保してもRAIDで繋げた途端に40GBになってしまう。とりあえず
    生き残った40GB ← RaidHotADD 新しい80GB
    Raidでシンクロ終わったら、生き残った40GBを外す。
    80GB ← RaidHotADD さらに購入した新しい80GB
で、80+80のディスクなのに、40GBのRAIDになっちゃった。これはくやしい。40GBでも使用率30%しかないのだからいいだろ、という意見もあるが。

 しかし現行のRed Hat 6.2J。glibcが2.1のせいでいろいろと支障が出てきている。まずXfree86のバージョンが上げられなかったこと。これはVideo CardをATI Rage 128 Proにした影響。XFree86 4.0以降じゃないとまともに動かない。4.2にしたくても、バイナリのディストリビューションがない。仕方なく4.1のバイナリを使っていたが・・・

 もう1個の外圧はOpenH.323だ。NATローカルのNetMeetingを通すにはH.323 Proxyをサーバーに置く必要があるが、OpenH.323ライブラリがglibc 2.1ではちっとも言うことを聞いてくれない。

 こんな理由が重なり、2002年の暮れの妻子が実家で留守な日に、Red Hat 8.0への移行を強行。もちろんバックアップは取って。さらさらの状態のハードディスクにOSをインストールし、80+80のRAID 1構成を作成。一通り動いてから旧データをコピー。尚ApacheはRed Hat 8.0は2.0ベースがインストールされているが、管理しきれないので1.3にバージョンダウン。sendmailはRed Hatのが新しそうなのでそのまま使用。FTPも同様にそのままRed Hatのを流用。まぁこのままディストリビューションのものを使いつづける気はないが、とりあえず動いていればO.K.ということかな。IMAPとdhcpd、bindは自分で作りなおし。

 

MegaBitGear TE4121CのGapNAT
     OpenH.323をとにかくやりたいのだが、そのためにはサーバーをグローバルIPにさらさせる必要がありそう。H.323プロトコルはアプリケーション層に自分のIPアドレスを記載する必要があり、自分がNAT内のローカルIPで動いている場合、NAT外の相手には無意味なIPアドレスを提供してしまう。これの補正を行うのがH.323 Proxyなのだが、それ自体をNAT内で動かすのことができるかどうか? やはりネットワーク社会で強烈なサービスを実装させるにはわがサーバーもグローバルIPにさらしていかにゃいかんだろう。

 サーバーにグローバルIPを与えるにはADSLモデムをブリッジモードで動かすのが普通だが、MegaBitGear TE4121Cには便利な機能がある。Global Address Proxy NAT、略してGapNATというものだが、通常のルータ構成のネットワークの状態のまま、ネットワーク内の1台だけにグローバルアドレスを与えちゃうという機能である。じゃあルータのグローバルアドレスは何で動いているの? 不思議な機能だが、割りつけられた1台以外にはごく普通の構成、すなわちグローバルアドレスはルータが持っているように見えている。実はこの姿が正解で、1台だけNATのProxyに騙されている感じだ。

 この機能、BroadBand WatchのイニシャルBでも絶賛されており、もっと流行っていいと個人的には思うのだが、まぁ住友電工もNTT-MEも商売下手なんでどうしようもないなぁ。

 GapNAT経由でもらうグローバルIPは実際のところかなり安全で、どのポートを通過させるかを通常のルータと同様に設定できる。僕の場合は www / ftp / smtp / imap と、将来のために H.323 関係を予行演習のために開けておくことにした。またグローバルIPをもらうLANカードを増設し、サーバーのLANは2枚差しになった。これが共に同じHubに繋がっているのは一見不思議な光景である。

 GapNATでグローバルアドレスをもらうためには、TE4121CをDHCPサーバーにしなければならない。これが大問題で、実はサーバーにDHCPをやらせているため、DHCPがぶつかってしまう。DHCPはいろいろな情報をクライアントに与えることができるので、TE4121Cに譲ることはとうてい出来ない(いずれはブラウザのProxy機能もDHCP使って設定させる予定)。

 これを回避するためには、まずTE4121CのDHCPサーバー機能を停止させる。この状態でもGapNATモードであれば実はTE4121CのDHCPは動いており、グローバルアドレスを与えるために待機している。さらにTE4121CのGapNAT機能で、指定のMACアドレスにのみ、グローバルアドレスを与えるような設定を行う。これで、TE4121Cは指定LANカードにのみのDHCPサーバーになる。

 次にサーバー側のDHCPサーバー(ISC DHCPD)だが、GapNATで割り当てられるはずのMACアドレス以外にDHCPが機能するような設定を行う。これはかなり悩んだが、最終的に以下のdhcpd.confで落ち着いた。

default-lease-time 600;
max-lease-time 7200;
authoritative;

ddns-update-style interim;
ddns-updates on;
log-facility local7;

subnet 172.25.0.0 netmask 255.255.255.0 {
option domain-name "tokoo.net";
option domain-name-servers 172.25.0.3, 202.248.37.74, 202.219.63.253;

option routers 172.25.0.3, 172.25.0.1;
option broadcast-address 172.25.0.255;
option netbios-name-servers 172.25.0.3;
option netbios-dd-server 172.25.0.3;
option netbios-node-type 8;


host XXXXX{
  hardware ethernet XX:XX:XX:XX:XX:XX;
  fixed-address 172.25.0.4;
  ddns-hostname "XXXXX";
}

host YYYYY {
  hardware ethernet YY:YY:YY:YY:YY:YY;
  fixed-address 172.25.0.5;
  ddns-hostname "YYYYY";
}

host ZZZZZ{
  hardware ethernet ZZ:ZZ:ZZ:ZZ:ZZ:ZZ;
}

pool {
  range 172.25.0.6 172.25.0.254;
  allow unknown clients;
}

ちなみに上記の 172.25.0.3 がローカル側のサーバーのIPアドレス。172.25.0.1がTE4121Cである。ZZZZZはグローバルIPをもらうサーバーのLANカードである。ZZZZZのIP割り当てレンジが無いように仕向けることで、ZZZZZはTE4121CからグローバルIPをもらうようにする。