【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
Windows TIPS
[Network]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

ルーティング・テーブルを操作する

デジタルアドバンテージ
2003/01/11
 
対象OS
Windows NT
Windows 2000 Professional
Windows XP Professional
Windows XP Home Edition
Windows 2000 Server
Windows 2000 Advanced Server
TCP/IPではルーティング・テーブルに基づいてIPパケットのルーティング処理を行っている。ルーティング・テーブルを表示するにはroute printコマンドを使う。
ルート情報を追加するにはroute addコマンドを使う。
ルート情報を削除するにはroute deleteコマンドを使い、デフォルト・ルートを削除するにはroute -fを使う。
 

解説

 TCP/IPでは、IPアドレスに基づいてネットワーク・パケットのルーティングを行っている。このルーティング処理において重要な役割を持つのが「ルーティング・テーブル」である。ルーティング・テーブルには、あて先となるネットワーク・アドレス(とネットマスク)と使用するネットワーク・インターフェイスなどを記録した情報(エントリ)が多数格納されている。IPパケットのルーティング処理では、パケットのあて先IPアドレスがどのルーティング・テーブルのエントリにマッチするかを調べ、合致するものがあれば、指定されたネットワーク・インターフェイスへと送出する。また、どのエントリにもマッチしなければ、「デフォルト・ゲートウェイ」として指定されているルータへとパケットが送られる。

 このように、TCP/IPのルーティング処理では、ルーティング・テーブルが重要な役割を担っている。だが、多数のネットワーク・インターフェイスを装備して、ルーティング作業を専門に行うルータだけでなく、たった1つのインターフェイスしか持たないクライアントPCなどでもこの重要性は変わらない。たとえインターフェイスが1つでも、TCP/IPプロトコル・スタックの中には、ローカル・ループバック・アドレスや自インターフェイスのIPアドレス、マルチキャスト・アドレス、ブロードキャスト・アドレス、そしてデフォルト・ゲートウェイなど、パケットのあて先は複数存在しているからである。内部ではやはりルーティング・テーブルを作成してルーティング処理を行っている。

 一般的な用途では、このルーティング・テーブルの内容をユーザー自身が変更する必要性は少ないが、同時に2カ所以上のネットワークへ接続しなければならないような場合には(例:通常の社内ネットワークや一時的に構築されたローカル・ネットワーク、VPN回線、バックアップ用のインターネット回線などへ同時に接続するなど)、ユーザー自身がルーティング・テーブルをメンテナンスする必要がある。ここでは、Windows 2000やWindows XPにおけるルーティング・テーブルの管理方法について簡単に解説する。

 ルーティング・テーブルを操作するには、コマンド・プロンプト上で「route.exe」コマンドを使用する。Windows 2000 Serverなどでは、「ルーティングとリモート アクセス(R&RAS)」を使ってGUIベースで管理することもできるが、内部的にはコマンド・プロンプト上で手動で操作するのと同じである。ぜひともrouteコマンドを使いこなせるようになっておいていただきたい。

現在のルーティング・テーブルの表示

 現在の状態を表示するには、「route print」コマンド(もしくは「netstat -r」)を利用する。これを実行すると、例えばWindows XPでは次のように表示される(これはDHCPでIPアドレスが割り当てられた場合の例)。

※Windows XPの例(DHCPクライアントの場合)

C:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 90 cc 01 d7 f1 ...... VIA PCI 10/100Mb Fast Ethernet Adapter
===========================================================================
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.1.11   192.168.1.104       20 …デフォルト・ルート
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      192.168.1.0    255.255.255.0    192.168.1.104   192.168.1.104       20
    192.168.1.104  255.255.255.255        127.0.0.1       127.0.0.1       20
    192.168.1.255  255.255.255.255    192.168.1.104   192.168.1.104       20
        224.0.0.0        240.0.0.0    192.168.1.104   192.168.1.104       20
  255.255.255.255  255.255.255.255    192.168.1.104   192.168.1.104       1
Default Gateway:      192.168.1.11
===========================================================================
Persistent Routes:
  None …「route -p add」で追加した恒常的なルート

 Windows 2000の場合もほぼ同様であるが、以下のように、「Metric」の値がすべて「1」となっている点だけが異なる。

※Windows 2000の例(DHCPクライアントの場合)

C:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 90 cc 01 d7 f1 ...... VIA PCI 10/100Mb Fast Ethernet Adapter
===========================================================================
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.1.11   192.168.1.104       1 …デフォルト・ルート
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      192.168.1.0    255.255.255.0    192.168.1.104   192.168.1.104       1
    192.168.1.104  255.255.255.255        127.0.0.1       127.0.0.1       1
    192.168.1.255  255.255.255.255    192.168.1.104   192.168.1.104       1
        224.0.0.0        224.0.0.0    192.168.1.104   192.168.1.104       1
  255.255.255.255  255.255.255.255    192.168.1.104   192.168.1.104       1
Default Gateway:      192.168.1.11
===========================================================================
Persistent Routes:
  None

 「Metric(メトリック。距離という意味)」の値は、同じルートが複数存在する場合、どれを優先するかを決めるために使われる。数値が小さいほうが優先されるので(数値の大小関係だけが意味を持ち、絶対的な値には無関係)、例えばMetricが「1」と「20」の2通りのエントリがあると、「1」のルートの方が優先されることになる。

 いずれの例でもアクティブなエントリとして、7つの行が表示されている。一番上に表示されている「Network Destination」が0.0.0.0で「Netmask」が0.0.0.0の行がデフォルト・ルートを表している。この行の意味は、「デフォルト・ゲートウェイは、インターフェイス192.168.1.104のLANにつながっている、192.168.1.11というルータである」という意味である。

新しいルートの追加

 LAN上に2つ以上のルータが存在し、それぞれ異なるネットワークへ接続されていたり、特別なネットワーク環境を構築したので、ある特定のルートだけを別のルータへ迂回させたいというような場合には、ルーティング・テーブルに対して新しいエントリを追加する必要がある。

 また、(何らかの事情により)現在のデフォルト・ルート(デフォルト・ゲートウェイ)を変更したい場合にも、ルーティング・テーブルに対して新しいエントリを追加する必要がある。ただしWindows 2000でこの操作を行う場合は、あらかじめ定義されているデフォルト・ルートを削除しておいてから、改めて新しいルートを追加する必要がある。そうでないと、同じMetricを持つルート(デフォルト・ルート)のエントリが2つできてしまい、意図したとおりに動作しない可能性があるからだ。Windows XPの場合は、Metric指定なしでデフォルト・ルートを追加すると、デフォルトのMetric(20)よりも小さい、1がMetricとして使用される。

 新しいルートを追加するには、「route add」コマンドを使用する。一般的には、次のような形式で利用する。

route [オプション] add ネットワーク mask マスク ゲートウェイ

  • オプションには「-f」と「-p」がある。-fを付けると、ルートを追加する前に、現在のデフォルト・ルートを削除する。デフォルト・ゲートウェイを変更する場合に利用するとよい。-pを付けると、追加したルート情報が、次回の再起動後からもずっと有効になる。デフォルトでは、システムを再起動するとここで追加した情報は失われる。
  • ネットワークには、ルーティングのあて先となるネットワーク・アドレスを指定する。
  • マスクには、ルーティングのあて先となるネットワークのネットマスクを指定する。省略すると255.255.255.255。
  • ゲートウェイには、ゲートウェイ(ルータ)のIPアドレスを指定する
  • これ以外にもMetricや使用するインターフェイスを明示的に指定することも可能である。詳細についてはrouteコマンドのヘルプを参照のこと(単にrouteとだけ入力すると表示される)

 このコマンドを使って、例えばデフォルト・ゲートウェイを「192.168.1.250」に変更するには、次のようにする。

route -f add 0.0.0.0 mask 0.0.0.0 192.168.1.250

 「0.0.0.0 mask 0.0.0.0」は、あて先のネットワーク・アドレスもネットマスクも共に0.0.0.0にするための指定であり、これデフォルト・ルートを表している。ネットマスクも忘れずに指定しておいていただきたい。これを付け忘れると(省略すると)、それはデフォルト・ルートではなく、0.0.0.0というただ1つだけのIPアドレスを表すことになる。特定の1つのIPアドレスだけへのルートを設定するならそれでもかまわないが(このような指定はめったに使うことはないが)、一般的には255.255.255.255以外のネットマスクを使い、ネットワーク全体を指すのが普通である。

 先頭に-fを付けているのは、ルート情報の新規追加に先立って、現在のデフォルト・ルート情報を削除するためである(「route -f」だけでも実行できる)。これがないと、現在のデフォルト・ルート・エントリに加えて、もう1つのデフォルト・ルートのエントリが追加されることになり、正しくルーティングが行われるなくなる。ただしWindows XPの場合は、デフォルトMetricとして1が使われるので、最初からあるルート(Metric 20)とは競合しない。だがWindows 2000では、最初からあるルートも新しく追加するルートもMetricが1なので競合が起こることになる。間違いを防ぐためにも、必ず-fを付けてroute addを実行するか、先に手動でデフォルト・ルートを削除するようにしよう。そしてルート情報を追加/削除したら、必ずroute printコマンドで再確認するようにして欲しい。

 デフォルト・ルート以外を追加したいのなら、ネットワークとネットマスク、そしてそのネットワークへのルーティングを仲介するルータのIPアドレスを指定する。例えば「10.0.0.0/8」のネットワークへのルータが「192.168.1.21」ならば、次のように指定すればよい。

route add 10.0.0.0 mask 255.0.0.0 192.168.1.21

ルートの削除

 特定のルート・エントリだけを削除するには、次のコマンドを使用する。

route delete ネットワーク [mask マスク

  • ネットワークには、削除したいネットワーク・アドレスを指定する。
  • マスクにはネットマスクを指定する。
  • これ以外にも使用するゲートウェイやインターフェイスを明示的に指定することも可能である。詳細についてはrouteコマンドのヘルプを参照のこと

 このコマンドにより、指定されたルートだけが削除される。ネットマスクの値を指定しないと、「ネットワーク」部が合致するエントリがすべて削除される。同じネットワークに対して複数のルートがあり、その中の特定のエントリだけを削除したい場合は、ネットマスク(やゲートウェイ、インターフェイスなど)を指定するとよい。

route delete 10.0.0.0

 このコマンドにより、先ほど追加したルート情報が削除される。ルートを削除したら、やはりroute printコマンドと使って再確認を忘れないようにしていただきたい。End of Article

関連記事(Windows Server Insider)
  連載:基礎から学ぶWindowsネットワーク―1.IPアドレスとは
  TIPS:デフォルト・ゲートウェイは1つのみ有効
  TIPS:ネットワークのバインド順序を制御する方法
  TIPS:優先DNSサーバと代替DNSサーバの動作について
     
  関連リンク
  マルチホーム コンピュータのデフォルト ゲートウェイ設定(マイクロソフト)
  デフォルト ゲートウェイの複数使用による接続上の問題(マイクロソフト)
 
この記事と関連性の高い別のWindows TIPS
デフォルト・ゲートウェイは1つのみ有効
IPルーティングを有効にする方法(レジストリ設定編)
IPルーティングを有効にする方法(Server OS編)
ICMPリダイレクト使用時のファイアウォール設定に注意
ネットワークのルーティングは双方向で設定する
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」

ホワイトペーパーTechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  OSS採用のコスト削減効果、OSよりミドル
ウェアのほうが大きいってご存じでした?

New!
  もう増やさない! 覚えるべきパスワード
セキュリティと利便性を両立させるには

New!
  システムに障害が!そんなときどうする?
いざというときものためのデータ保護対策

New!

  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務を妨げるセキュリティ対策を見直せ!
改善のヒントが満載のレポート記事公開中

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  仮想環境の構築とデータ保護の特効薬?!
実績と信頼性の高いパッケージで安心運用

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?