【Windows】ルーティングテーブルを操作する方法を解説!
Windowsにおけるスタティックルーティングテーブルを操作する方法を知っていますか。Windowsにおけるスタティックルーティングのroute addコマンド・route addコマンドの操作方法などを紹介していきます。
目次
- 1【Windows】スタティックルーティングのroute addコマンドとは?
- ・特定の宛先をルーティングテーブルに追加する
- 2【Windows】ルーティングテーブルの表示方法
- ・route printコマンドで表示
- ・表示結果の見方
- 3【Windows】ルーティングテーブルの操作方法〜追加〜
- ・route addコマンドで新しいルートの追加
- ・route addコマンドの書式
- 4【Windows】ルーティングテーブルの操作方法〜削除〜
- ・route deleteコマンドで削除
- ・route deleteコマンドの書式
- 5【Windows】ルーティングテーブルの構成例
- ・継続的な経路の追加
- ・拒否経路の追加
- ・経路の変更
- 6【Windows】ルーティングのトラブルを解決する方法
- ・ルーティングテーブルの設定を把握する
- ・ネットワークコマンドで原因を特定する
- ・サブネットマスク/ゲートウェイが適切か確認する
- ・メトリックは適切か確認する
- ・RIP/RIP2の取り扱いが適切か確認する
- ・まとめ
- ・合わせて読みたいWindows10の記事
【Windows】スタティックルーティングのroute addコマンドとは?
Windowsにおけるスタティックルーティングのroute addコマンドとは何か知っていますか。route addコマンドとは、ルータなどのネットワーク機器に設定するコマンドではありません。
つまり、クライアントPCもしくはサーバなどに設定できるコマンドのことです。このroute addコマンドの設定に応じて、特定の宛先やネットワークに対して、デフォルトゲートウェイとは異なるゲートウェイのIPアドレスを選定できます。
ルータもしくはL3スイッチだけではなく、1つのインターフェースしか所有していないクライアントPCあるいはサーバの場合であっても、スタティックルーティングテーブルを所持しています。
例えば、WindowsクライアントPCの場合では、コマンドプロンプトによってroute printコマンドを入力することにより、スタティックルーティングテーブルを確認できるのです。
特定の宛先をルーティングテーブルに追加する
Windowsのroute addコマンドとは、IPパケットをルーティングするためにルーティングテーブルの内容表示と設定を行います。ルーティングテーブルとは、主にOSが管理しているルーティング情報を保管したメモリテーブルです。
テーブルのエントリーが経路を表しています。また、経路はネットワークもしくはホストに到達するために通過しなければならないWindowsのゲートウェイを表しているでしょう。
なお、Windowsのルーティングテーブルの管理とは、「ルーティングテーブルの表示と確認」と「ルーティングテーブルへの経路の追加・削除・変更」を指しています。
【Windows】ルーティングテーブルの表示方法
続いて、Windowsにおけるルーティングテーブルの表示方法を紹介します。Windowsにおけるルーティングテーブルでは、以下の2つを解説します。また、操作方法に関してもいくつか紹介していきます。
・route printコマンドで表示すること
・表示結果の見方とは
route printコマンドで表示
Windowsのroute printコマンドで表示ですが、WindowsクライアントPCに対して以下の設定した時の結果はどうなるのでしょうか。
・IPアドレスの「192.168.0.10」
・サブネットマスクの「255.255.255.0」
・デフォルトゲートウェイ「192.168.0.254」
route printコマンドで表示で注意するべきポイント
結果としては、WindowsのPCにIPアドレス関連の設定を行うことで、「ループバックアドレス」「マルチキャストアドレス」「ブロードキャストアドレス」がOSで自動的に登録されます。
要するに注意するべきポイントは、WindowsのPCにはデフォルトゲートウェイが「192.168.0.254」に設定されているということです。
下記ではWindowsのroute print コマンドの見方を表を用いて紹介していきます。
表示結果の見方
それでは、Windowsのroute print コマンドの表示結果をまとめていきましょう。
route print コマンド | Interface List | ・サーバ(Windows)で有効なインターフェースのリストが表示される ・サーバ(Windowsの)では0x1 (ループバックI/F)、0x2 (有線LANのI/F) 、0x3 (無線LANのI/F)の3つを確認できる |
route print コマンド | Network Destination | 宛先ネットワークのアドレス |
route print コマンド | Netmask | 宛先ネットワークのサブネットマスク |
route print コマンド | Gateway | ゲートウェイのIPアドレス( ネクストホップのIPアドレス ) |
route print コマンド | Interface | パケットを送出するインターフェースのIPアドレス |
route print コマンド | Metric | ・メトリック値 ・宛先ネットワークへのルートが複数ある場合小さいメトリック値のパスを選択する |
【Windows】ルーティングテーブルの操作方法〜追加〜
次に紹介するのは、Windowsにおけるルーティングテーブルの操作方法です。追加に関して深掘りしていきます。
route addコマンドで新しいルートの追加
Windowsのroute addコマンドで新しいルートを追加するには、以下の場合-pでスタティックルートとして再起動後も有効になります。なお、metricやifは省略可能です。
・宛先:192.168.2.10/255.255.255.0
・Gateway:129.168.0.254
・インターフェイス:0x001
通常は、if(インターフェイス)は不要かもしれません。しかしながら、Windowsにおけるサーバーの場合NICの複数あるマルチホーミング構成が一般的でしょう。linuxとは異なり、ifの指定がインデックス番号になります。
route addコマンドの書式
続いてWindowsのroute addコマンドの書式を表にまとめていきます。
それでは、route[ -f][ -p][ PRINT| ADD| DELETE| CHANGE[ 宛先IPアドレス][ MASK サブネットマスクアドレス[ ゲートウェイIPアドレス][ METRIC メトリック数][ IF インターフェイス名]]をまとめます。
-f | ルーティングテーブルのすべての経路情報をクリアする |
-p | ・追加する時に指定すると、追加した経路は次回以降のOS起動時にも自動的に追加される ・指定しない場合は今回限りの設定となる ・表示する時に指定すると、このオプションで追加した経路のみを表示する |
ルーティングテーブルを表示する | |
ADD | 経路を追加する |
DELETE | 経路を削除する |
CHANGE | すでに登録されている経路を変更する |
MASK | 経路が使用するサブネットマスクアドレスを指定する |
ゲートウェイIPアドレス | 経路が使用するゲートウェイIPアドレスを指定する |
METRIC | 経路のメトリック値を1~9999までの範囲で指定する |
IF | ・経路が割り当てられるインターフェースを指定する ・インターフェイス名は「route PRINT」で表示される ・「Interface List」の16進値を指定する ・省略されるとゲートウェイIPアドレスから最適と考えられるインターフェイスを自動選択する |
【Windows】ルーティングテーブルの操作方法〜削除〜
ここではWindowsにおけるルーティングテーブルの操作方法を紹介します。削除に着目して解説していきます。
route deleteコマンドで削除
ここではWindowsのroute deleteコマンドでの削除についてお伝えします。route addコマンドで追加したスタティックルートを、削除したい場合にはWindowsのroute deleteコマンドを使用してください。
まずは、Windowsのroute deleteの後に宛先ネットワークを指定しましょう。それから、Windowsのroute printコマンドで実行して確認してください。
route deleteコマンドの書式
Windowsのroute deleteコマンドの書式である「del」とは、経路を削除するコマンドです。削除する経路とは、宛先IPアドレスを追加した時に、指定したパラメータが一致する経路のことです。
「mss」とは、経路のMSS(Maximum Segment Size:TCPパケットの最大データサイズ)を指定するものです。デフォルトはインターフェイスのMTU(ifconfigコマンドで指定)から選定されます。
「irtt」とは、経路におけるTCPの初期ラウンドトリップ時間を指定します。ラウンドトリップ時間はTCPコネクションの通信途絶を判断するまでのタイムアウト時間のことです。1~12000の範囲で指定されます。
【Windows】ルーティングテーブルの構成例
次は、Windowsにおけるルーティングテーブルの構成例を3つ紹介します。ルーティングテーブルの構成例は以下の3つです。
・継続的な経路の追加
・拒否経路の追加
・経路の変更
継続的な経路の追加
継続的な経路の追加について詳しく解説していきます。これらのコマンドで追加された経路とは、一時的なものです。つまり、Windowsのホストをリブートすることによって無効になってしまうでしょう。
したがって、Windowsでは「-p」オプションを追加することにより、OSブート時に再設定される経路(Persistent Routes)を追加できる仕様になっています。
再設定される経路では、「route PRINT」コマンドで「Persistent Routes」に表示されます。Linuxではrouteコマンドを使用できませんが、「/etc/sysconfig/static-routes」ファイルに経路を記入することで、OSブート時に再設定されます。
拒否経路の追加
また、Linuxでは拒否経路を追加することも可能です。拒否経路ではそのホストで、ルーティングしない宛先を指定する必要があります。
Windowsのデフォルトゲートウェイを設定している環境において、ルーティングしないネットワークもしくはホストがある場合に追加してください。
経路の変更
次に経路の変更について解説します。ホストからのIPパケット、もしくはインターフェイスから別のインターフェイスへと転送することを、IPフォワーディングと言います。
この機能の場合、多くの確率でデフォルトでは不可となっています。したがって、使用する場合には明示的に使用を許可しなければなりません。
Linuxでは「/etc/sysconfig/network」ファイルで「FORWARD_IPV4="no"」を「yes」に変更してください。
あるいは、RedHat 6.2以降では、「/etc/sysctl.conf」の「net.ipv4.ip_forward = 0」を「1」に変更することによって許可することもできます。
Windows 2000ではレジストリを設定する、もしくはRRAS(Routing and Remote Access Service)の使用をおすすめします。
【Windows】ルーティングのトラブルを解決する方法
最後には、Windowsにおけるルーティングのトラブルを解決する方法を5つ紹介します。ルーティングのトラブルを解決する方法は以下の5つです。
・ルーティングテーブルの設定を把握する
・ネットワークコマンドで原因を特定する
・サブネットマスク/ゲートウェイが適切か確認する
・メトリックは適切か確認する
・RIPもしくはRIP2の取り扱いが適切か確認する
ルーティングテーブルの設定を把握する
1つ目のWindowsにおけるルーティングのトラブルを解決方法は、「ルーティングテーブルの設定を把握する」です。ルーティングのトラブルとは、ネットワーク障害において非常に面倒な問題でしょう。
というのも、必ずしも自身のホストにおけるトラブルでないからです。そのほかの場所にあるルータもしくは、中継に使用しているホストのルーティング設定のミスが問題の場合には、すぐには原因がわかりません。
そして、影響範囲が大きい上に、深刻なトラブルを引き起こす可能性が高いです。ダイナミックルーティングを使用している場合に、設定ミスによって、そのほかの機器に影響してしまうでしょう。
問題を解決するためには、普段からネットワークの構成を理解しておく必要があります。また、本来どのようにルーティングするべきか理解する、もしくはそれらをまとめて把握しておきましょう。
経路情報は複雑なので、経路図を覚えるのは難しいと思います。経路の設計書などの資料を管理するのは当然のことながら、ルータあるいは中継ホストのルーティングテーブルを正常に稼働している際に保存してください。
したがって、障害時に比較できる仕様にする場合もあります。台数が多い際には雑になる恐れがあるため、ネットワークの根幹に設置した方がいいでしょう。問題のポイントである機器だけを対象にしてください。
ネットワークコマンドで原因を特定する
2つ目のWindowsにおけるルーティングのトラブルを解決方法は、「ネットワークコマンドで原因を特定する」というものです。ルーティングの状態を確認するには、まず「traceroute(tracert)」コマンドを利用しましょう。
traceroute(tracert)コマンドは、ある特定ホストから別のホスト間の経路において、表示するコマンドとして知られています。
そこで、1つの経路で調査するのではなく、複数のホストから調査を行うことで比較しなければなりません。仮に、複数の調査結果が同じルータもしくはホストを表していれば、問題の原因は一目瞭然でしょう。
サブネットマスク/ゲートウェイが適切か確認する
3つ目のWindowsにおけるルーティングのトラブルを解決方法は、「サブネットマスク/ゲートウェイが適切か確認する」ことです。
トラブルの原因となるWindowsのルータやホストが特定できましたら、そこで使用されているルーティングテーブルが適切かどうかを判断していきます。そこで、多くの場合にサブネットマスクの間違いをするケースがあります。
上記のとおり、サブネットマスクはサブネットのネットワーク番号を決定する場合に使用されます。要するに、宛先IPアドレスがマッチしていないと判断され、別のゲートウェイに転送されてICMPエラーになっているかもしれません。
また、Windowsにおけるゲートウェイの設定ミスの場合であっても当然のことながら同じ現象を引き起こしてしまうでしょう。さらに、デフォルトゲートウェイの設定も勘違いしやすいのです。
なぜなら、Windowsの便利な機能のために必要がない場合でも設定してしまうのです。つまり、設定の間違いからルーティングミスにつながる場合もあるということです。
Windowsのデフォルトゲートウェイでは、そのほかのすべてのネットワークを意味しているワイルドカードのことを表しています。注意すべきは、最適なゲートウェイではないということです。
メトリックは適切か確認する
4つ目のWindowsにおけるルーティングのトラブルを解決方法は、「メトリックは適切か確認する」ということです。特定ホストに対して、複数の経路が存在している場合には、その経路選択する際の判断に使用されるのがメトリックです。
このメトリックとは、ダイナミックルーティングを使用している時には動的に更新されるものです。したがって、実際に運用してみることで設計時の想定動作と違ってくる可能性があるでしょう。
動的に変更された距離もしくはホップ数や、回線品質により経路を変更できることが、ダイナミックルーティングのメリットと言えるでしょう。
大した問題はありませんが、RIP/RIP2ではその経路が使用不可というように判断することによって、メトリックを非常に大きな数値だと判断し、使用しないようします。
RIP/RIP2の取り扱いが適切か確認する
5つ目のWindowsにおけるルーティングのトラブルを解決方法は、「RIP/RIP2の取り扱いが適切か確認する」ということです。ダイナミックルーティングやRIP/RIP2の場合にはどうすればいいでしょうか。
Windowsのネットワーク内に予想外のroutedが稼働している場合、自動的にそれらの情報を受け取ることで、ルーティングテーブルがトラブルを引き起こします。
送出されたWindowsのルーティングテーブルがテスト用のように不適切な場合には、間違っているWindowsのルーティングテーブルがネットワーク全体に蔓延してしまいます。
そこで解消するには、予定外のroutedを停止してから、問題を起こしたルータもしくはホストのルーティングテーブルを修正するしかありません。
対処法としては、根幹となるルータあるいはホストではスタティックにルーティングテーブルを設定してください。また、routedは受信不可もしくは送信のみ可能とする方法が適しているでしょう。
まとめ
今回の記事では【Windows】ルーティングテーブルを操作する方法を解説!というテーマで執筆しました。操作方法を中心に紹介しています。ルーティングテーブルの操作方法の削除では、route deleteコマンドで削除する方法をお伝えしました。
また、操作方法ではなく構成例では経路の変更についても紹介しています。操作方法をはじめ、削除するコマンドや経路の変更を参考にして、ぜひ操作方法を試してみてください。