連載

究極ホーム・ネットワークへの道
−実例に学ぶホーム・ネットワーク・デザイン−

第4回 「インターネット接続の共有」の裏技的設定法 その2 〜Windows 2000のルーティング設定(2)

渡邉利和
2001/05/17

デフォルト・ゲートウェイの設定を行う

 デフォルト・ゲートウェイ・アドレスは、外部のネットワークとの通信の際に中継を依頼するルータのIPアドレスである。この設定は、ネットワークにルータが1台しかない場合はごく簡単である。図でいうと、自室のLAN内にはルータと呼べるマシンは「mmx」しかないので、ここに所属するクライアントは、すべて「mmx」がデフォルト・ゲートウェイとなる。これは問題ない。

筆者宅のネットワークの基本構造

 一方、HomePNAネットワークに所属するクライアントAにとってはどうだろう。ここでは、「compaq」の[インターネット接続の共有]機能を利用するため、デフォルト・ゲートウェイを「compaq」に指定してある。「mmx」がルータであるということをクライアントAが認識していない状態では、クライアントAとクライアントBの間での通信は成立しないのである。現時点では、クライアントAからクライアントBへの通信を試みると、以下のようなことが起こる。

  1. クライアントAは、指定されたクライアントBのIPアドレスが自分の所属するネットワークのものではないことを認識する
  2. 「外部のネットワーク」への通信であることから、クライアントAはこのパケットを「compaq」に送って中継を依頼する
  3. 「compaq」は、あて先に指定されたクライアントBのIPアドレスを調べ、このアドレスが自分が所属している2つのネットワークのいずれでもないことを認識する
  4. 「compaq」はこのパケットをインターネットへのアクセスのためのパケットであると考え、「インターネット接続の共有」機能を使ってパケットのヘッダの書き換えを行った後、OCNアクセス・ルータへ転送する

 というわけで、見事このパケットはネットワーク上で迷子になってしまうのである。ただ、一応この段階で動作確認をしておくのが賢明だと思われるので、クライアントAのデフォルト・ゲートウェイの設定を「mmx」に変更したうえで、クライアントAとクライアントBの間で正常に通信ができるかどうかのテストはしておこう。

 さて、デフォルト・ゲートウェイの話が出たついでに、ここで「mmx」のデフォルト・ゲートウェイの設定についても確認しておこう。「mmx」は「compaq」と同じネットワークに所属するクライアントでもあるので、デフォルト・ゲートウェイとして「compaq」を指定しているはずである。そうなっていなければ、「mmx」からインターネットにアクセスすることができない。このデフォルト・ゲートウェイの設定は、「mmx」のルーティングの動作にも影響を与える。つまり、クライアントBから中継を依頼されたパケットのあて先をチェックし、そのネットワーク・アドレス部が自分の所属する2つのネットワークのいずれでもない場合、「mmx」はこのパケットを「compaq」に送って中継を依頼するのである。「compaq」はこのパケットをOCNアクセス・ルータに送るわけだ。

 これでクライアントBからインターネットにアクセスすることができるようになった、と早合点してはいけない。じらすようだが、まだやることがある。道のりは結構長いのだ。

行きはよいよい…

 「mmx」のルータとしての設定は、

  • デフォルト・ゲートウェイとして「compaq」を指定
  • [Routing and Remote Access]サービス・プロセスが起動

の2点が確認できれば終了だ。しかし、これだけでは自室内のLANが「絶海の孤島」状態であることに変わりはないのである。

 ポイントは、「パケットが往復できなくては通信にならない」という点だ。クライアントBからインターネットに向けて送り出したパケットは、現段階でも確かにインターネットに届くはずだ。しかし、そのパケットに対する応答パケットはどうなるだろう。

 インターネット上のサーバから見ると、クライアントBからのアクセスは「compaq」の[インターネット接続の共有]機能を経由して送られてきているので、「compaq」からのアクセスに見える。そこで、サーバは「compaq」に向けて応答パケットを送り出す。この応答パケットを受け取った「compaq」は、パケットのヘッダを見て[インターネット接続の共有]機能を使って送ったパケットの応答であることを知り、あて先として指定してある自分のIPアドレスを、もともとの発信者であるクライアントBのIPアドレスに書き換え、クライアントBに向けて送出する……はずなのだが、実は「compaq」はクライアントBと直接通信することができないのだ。

 もうお分かりと思うが、ルーティングの設定を完了するためには、「compaq」から自室内のLANに向けてパケットを送るためのルーティング設定も同時に行わなくてはならない。つまり、「compaq」に対して「自室内のLANあてのパケットは、『mmx』に送って中継させる」ということを管理者が手動で設定しないといけないのだ。

ルーティング・テーブルの設定は手動で

 ようやくルーティングの設定らしい感じになってきた。問題は、「compaq」に自室内のLANの存在を教え、このネットワークにパケットを送る際には「mmx」に中継を依頼しなくてはいけないのだ、という情報を設定してやることだ。これによって、クライアントAとクライアントB間、クライアントBとインターネット間の通信が行えないという問題が一気に解決できる。そのためには、「routeコマンド」を使用する。Windows 2000 Professionalの場合、残念ながらルーティングの設定のためのGUIツールはない。そこで、コマンド・プロンプトからrouteコマンドを起動してコマンドラインでの設定を行うことにする。

 実は、ここで「compaq」上でもルーティングの設定が必要なことに注意しよう。[インターネット接続の共有]はルーティングとは独立したサービスであるため、このサービスを利用するクライアントPCからは、ルータとして動作しているように見えても、今回のような手動でのルーティング設定は別途必要になる。

 Windows 2000の場合、コマンド・プロンプトを起動するためのショート・カットは、[スタート]メニューから[プログラム]−[アクセサリ]−[コマンド プロンプト]とたどると出てくる。Windows NT 4.0では、[プログラム]の直下にあったのに、1階層下に押し込まれてしまった。筆者は日常的にコマンド・プロンプトを愛用しているため、この「格下げ扱い」にはとても憤りを感じている、というのはまぁどうでもよいか。ともあれ、コマンド・プロンプトを開いて「route」とタイプしてみよう。何の引数も付けずに起動すると、routeコマンドはUsageメッセージを表示して終了するはずだ。このメッセージには、コマンドの実行例が分かりやすく示されているので、英語ではあるがよく目を通しておくとよいだろう。[スタート]メニューから[ヘルプ]を選び、[キーワード]タブを開いて「routeコマンド」のエントリを探すと日本語のマニュアルも表示されるが、こちらは実際のコマンドラインの使用例が含まれていないので、routeコマンドのUsageメッセージは必見だと思う。

routeコマンドのUsageメッセージの一部
かなり長いメッセージが表示される。幸いなことにWindows 2000の[コマンド プロンプト]では画面のスクロールが可能なので、行き過ぎてしまってもあせる必要はない。テキスト・ファイルに出力するなどして、印刷しておくのもいいかもしれない。
 
[スタート]メニューから開くヘルプの画面
めったに参照することはないが、こうしたコマンド・リファレンスは役に立つ。

 では、筆者が行った設定を紹介しよう。まずは、例によって図で設定すべき内容を明らかにしておこう。これは、筆者宅のネットワークの構造を「ルーティングの設定を行う」という観点で見る場合に分かりやすくなるように書き換えたもので、当然、最初の図と同じ構造を表現している。

ルーティングの設定のために必要な情報を加え、最初の図を書き換えてみたもの
「compaq」から見ると、自室内のLANは「mmx」の陰に隠されており、その存在を知ることはできない。そこで、管理者が手動で設定を行う必要がある。実はこの程度の比較的単純なネットワークではRIP(Routing Information Protocol:ネットワーク内でルータなどが経路情報を交換するためのプロトコル)を使えば手動でルーティング設定を行わなくても済むはずなのだが、Windows 2000 Professionalでは「RIPリスナ(RIP listener)」として、RIP情報の受信だけがサポートされているようだ。

 この図から、今回設定すべきルーティングの内容は、

「ネットワーク・アドレスが192.168.0.64(サブネットマスクは255.255.255.192)のネットワークへのパケットは、ルータ192.168.0.2に送る」

という内容になることが分かる。これをrouteコマンドのコマンドラインとして表現すると、

C:\>route add 192.168.0.64 mask 255.255.255.192 192.168.0.2 metric 1

という具合になる。ルーティング情報が正しく設定できたかどうかは、

C:\>route print/CODE>

で確認できる。

 なお、routeコマンドにより手動で設定したルーティング情報は、システムをリブートすると失われてしまうことに注意しよう。これは、テストの段階では好都合だが、実運用に入った段階ではとても面倒なことになる。しかし、routeコマンドに-pオプションを指定すると、設定されたルーティング情報が保存され、リブートの際に復元されるようになる。テストの結果正常に動作することが確認できたら、-pオプション付きで再度同じ設定を行っておけばよい。この場合のコマンドラインは以下のような感じだ。

C:\>route -p add 192.168.0.64 mask 255.255.255.192 192.168.0.2 metric 1

 先頭に-pが追加される以外何も変わらないが、これを実行するとしないでは大違いなので忘れないようにしよう。

 というわけで、とりあえず当初設計したネットワークの実装がこれで完成したことになる。これで、OCNエコノミーの細い回線ではあるが、自宅内のどこからでも自由に常時インターネットに接続できる環境が整ったことになる。もっとも原稿では一直線に書いたが、実際には試行錯誤しながらよたよたと作業を行っている。特に今回紹介したルーティングの設定では、筆者自身がパケットの帰り道のためのルーティング設定が必要なことを完全に失念しており、通信不能に遭遇して1時間ほどああでもない、こうでもない、とうろたえもしていたのである。いま振り返ると懐かしい思い出話ではあるが、当時は結構な苦労に感じられたものである。

 この経験から、ネットワークの構築や大規模な設定変更を行う際には、いきなり全体を操作しようとはせず、細かい部分から段階的に確実に動作することを確認しながら少しずつ着実に作業を行うことをお勧めしたい。動作確認には、OS標準コマンドであるping、nslookup、telnetといったツールが極めて有効だ。筆者の場合、この3つの基本ツールだけでほぼ作業を終えたが、traceroute(Windowsではtracertコマンド)も役に立つだろう。さらに、Webブラウザも動作確認ツールとして使える。特別なユーティリティを用意しなくても、これら標準コマンドだけでもかなりのことができるので、これらコマンドライン・ツールの使い方はしっかり把握しておくこともお勧めしておきたい。

 何やらまとめモードに入ってしまったようだが、実際この構造のネットワークを構築したのは約1年前、2000年6月の話である。現在筆者が使用しているネットワーク環境は、この状態からさらに2回の改造を経て様変わりしており、ここまでの原稿で紹介したのは、筆者にとっては昔話なのだ。そこで次回は、今回紹介した構造のネットワークを利用した際の不満点を紹介し、その後どのような改造を行ったかを紹介していく。記事の終わり

  関連記事(PC Insider内) 
連載
ネットワークデバイス教科書
最適ネットワーク機器選択術
 
 
     

 INDEX

 第4回 「インターネット接続の共有」の裏技的設定法 その2
Windows 2000のルーティング設定(1)
Windows 2000のルーティング設定(2)

「連載:究極ホーム・ネットワークへの道」


System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

System Insider 記事ランキング

本日 月間