もう一つの仕事
バイト先でもう一つの用事を済ませることにしました。それは向こうからの要望で、現在ISDNでダイアルアップで接続しているT社のネットワークとM社のネットワークを全員で共有したいという要望でした。私は昔ISDNルーターを使っていたので、すぐに下のようなネットワーク図を思いつきました。
ISDNルータは私が昔使っていた富士通のNetVehicle GX5を提供することにしました。現在メルコの無線内蔵ルータにネットワークが釣り下がっている状態なのですが、そこにISDNルータを挟み込み、全てのPCのゲートウェイをISDNルータ側に設定。T社とM社の接続要求はISDN側に振り分け、それ以外の要求はメルコルータ側に流してやる。家庭内ネットワークより、ちょっと難しい程度ですが、基本的なネットワークの知識があれば、何とかなりそうなレベルです。
PCの改造で匠の技を見せられているので、こっちも相応に答えねばと意気揚々とネットワークの構築を始めました。
……が、まさかこれが8時間の死闘に及ぶとは思っても見なかった。
以下、時系列でお送りします。
- 開始1時間付近
ISDNのケーブルを刺しても、ネットワークがうんともすんとも言わない。ISDNケーブルが刺さっていないことを示す赤ランプがずっと点滅している。Pascal君がルーター側のISDN信号の順方向・逆方向に気づき、バイト先のISDNは順方向の信号配線だったことがようやく判明。(我が家は逆方向)
スイッチを順方向に切り替えたら、赤ランプが点滅しなくなった。(ISDNが繋がったことを示す。)
- 開始2時間〜3時間頃
M社のダイアルアップ設定を行う。電話番号・ID・パスワード・M社のネットワーク内のDNSの設定、接続時にクライアントに割り振られるIPアドレスを設定して、接続してみるも、またしてもうんともすんとも言わない。
やっとのことで接続できるようになったものの、認証エラーで弾かれる。
散々悩んでいたのだが、バイト先の人から渡されたIDとパスワードが、実はダイアルアップ用のID・パスワードではなく認証後のページにログインするパスワードだったことを漸く知る。
M社へのダイアルアップはできるようになったが、ネットワークは相変わらずうんともすんともいわない。ついでにT社へのダイアルアップの設定もしてみたが、接続してすぐに「レイヤ3エラー」というよく分からないエラーで相手から切断される現象に見舞われる
- 開始3時間〜5時間頃
クライアントとの設定を比べて、M社のダイアルアップネットワークにはIPヘッダパケットの圧縮を行わない(VJ無効)、T社のダイアルアップネットワークにはIPヘッダパケットの圧縮を行う(VJ有効)の設定をしなければいけないことが分かった。しかもM社は接続時のIPアドレスを自分で指定しなければならないが、T社は自動的に割り振ってくれる設定になっているようだ。
ダイアルアップは確立するようになったのだが、クライアント側から全く接続できる気配が無い。接続時に相手側のDNSサーバは指定できているのだから、読みにいけてもおかしくないのだが……
しばらく行き詰って、ルーターの設定、説明書などを読み返してみるとISDNルータ側にProxyDNS機能というものがあることを知る。これは、指定した文字列にマッチングしたサーバーアドレスの要求があったときに、ルーターが任意のDNSアドレスをプロキシしてくれるというものだ。恥ずかしながら2年強使っていたルーターにも関わらず、ここら辺の機能を全然使ったことが無く、自分の持っていたルーターが結構高機能だったことに気づく。
現在ログインできる状態にあるクライアントマシンから、必要になりそうなサーバーアドレスをメモして、ワイルドカードを使って2つのサーバーに対してM社のDNSを参照するようにProxyDNSの設定をする。ルーターに接続されているクライアントマシンからnslookupをすると名前解決に成功。立ち込めていた暗雲に光が差し込んできた瞬間だったが、相変わらずクライアントマシンからブラウジングすることはできない。
- 開始6時間〜7時間
ルーティングテーブルやルーターの設定項目、説明書などとずっとにらめっこしていたのだが、漸くヒントになりそうなものを見つける。ルーターの設定でLANネットワークに対してのスタティックルーティングの設定と回線で接続したときのスタティックルーティングの設定があるのを発見する。
適当にM社の回線で接続したときのルートをデフォルトゲートウェイとして、NATの設定をしてみたら、ルーターに繋いだクライアントマシンからM社のページが見れた!
喜び勇んで、いったん切断をしてから、もう一度繋いでみたらなんと今度はつながらなくなった……どうなっているんだ。orz
再びルーターの説明書を読んでいたら、どうやらこのルーターではNATとマルチNATという設定があるらしく、NATではどれか1つのクライアントがポートを占有した場合、そのクライアントがタイムアウトするまで、指定のポートを使わせてくれないような設定になっているようだ。つまり、現在一般的なルーターで使われているNATは、このISDNルーターではマルチNATと呼んでいるものになる。念のために1つのクライアントがポートを占有する時間を1分間にしてから、マルチNATの設定に切り替えてみたら今度こそちゃんとM社のページが読めた。
Pascal君にメルコ側のルーターの設定を任せ、NetVehicleとの接続を行う。DHCPサーバーはメルコ側の方が性能がよい(多くのクライアントに対して割り振りの管理を行える)ので、メルコ側のDHCPサーバにデフォルトゲートウェイとDNSサーバが富士通側ルーターのIPアドレスであることを通知させることにする。……ややこしい構図だ。
ここで、問題が発生する。
先ほど適当に振っていたM社へ接続するためのデフォルトゲートウェイだが、本来はインターネットへの接続をデフォルトゲートウェイにしなければいけないので、NetVehicleのデフォルトゲートウェイはメルコのルータのアドレスとしなければいけない。
となると、指定のパケットのみがM社へ流れることを設定しなければいけないのだが、ルーティングテーブルはDNS名で解決することは出来ないため、接続する一つ一つのアドレスを登録していかないといけない。面倒なので適当にクラスCのアドレス空間を見積もってまとめて登録しておいた。(ぉ
結果、インターネットとM社への同時接続ができるようになった。
- 開始8時間〜決着
仕上げにT社のProxyDNSとルーティングテーブルを登録すれば終わりなのだが、T社は接続するIPアドレス空間が多い上に、SSLの認証サーバなどが複数出てきて、どことどこに対してProxyDNSとルーティングテーブルを書けばいいのか分からない。
最終手段としてパケットキャプチャーツールを使って、どこに対して通信を試みているかを特定、全てのアドレスをルーティングテーブルとProxyDNSに加える。
結果、T社への接続が確立。最後にテストとして、M社、T社、インターネットへの接続を4台のクライアントマシンから試して、無事に接続を確認して、本日の仕事終了。
以上、今日のダイジェストでした。「言うは易し、行うは難し」でしょうか。最終的にはイメージ通りの接続ができたのですが、ルーターの仕様やら接続の仕様やらで色々悩まされました。自分のルータを久々に設定してみて、本来はこういう会社とかで使うようなルータだったんだなと改めて感じさせられました。
とはいえ、今日中に終了してひとまず安心です。
帰りはバイト先の人にPCと一緒に車で家まで送ってもらいました。ちょっとネットワークのレベルが上がったかな?