ルーティングテーブルの中身をのぞく
ルーティングテーブルとは、ルータが認識しているネットワークの情報をまとめているデータベースです。「あのネットワークへIPパケットを転送するための経路はこれ」といった情報が登録されています。ルーティングテーブルに登録されているネットワークの情報をルート情報や経路情報と呼びます。
ルート情報に記載されている内容
ルーティングテーブル上のルート情報に記載されている内容は、ルータ製品によって若干異なります。シスコシステムズ製ルータ(以下、Ciscoルータ)のルーティングテーブルは、図7のような内容になっています。なお、図7のルーティングテーブルは、今回の前半でルーティングの動作を確認したルータの1つ、ルータR1のものをイメージしています。
このうち、「Gateway of 〜」より下にある行がルート情報を表しています。意味は以下のとおりです。
- ① ルート情報の情報源
- ルータがどのようにして、そのルート情報をルーティングテーブルに登録したのかを示しています。ルート情報の情報源には、大きく分けて次の3種類あります。
- ② ネットワークアドレス/サブネットマスク
- ルーティングする先のネットワークです。IPパケットの宛先IPアドレスをキーにして、ルート情報のネットワークアドレス/サブネットマスクを検索します。
- ③ メトリック
- ルータから目的のネットワークまでの距離を数値化したものです。距離といっても物理的な距離ではなく、ネットワーク的な距離です。
- メトリックの情報は、ルーティングプロトコルによって学習したルート情報の中にあります。ルーティングプロトコルによって、メトリックの算出に使う情報や計算方法は異なりますが、最終的には1つの数値になります。距離は短いほうがより良いルートで、メトリック最小のルートが最適ルートです。
- ④ アドミニストレーティブディスタンス(Ciscoルータ)
- メトリックは目的のネットワークまでの距離を表しますが、何を考慮して距離を計算したかはルーティングプロトコルごとに異なります。アドミニストレーティブディスタンスは、ルーティングプロトコルごとに異なるメトリックを比較できるように調節するためのパラメータです。つまり、アドミニストレーティブディスタンスとメトリックによって、ルータは目的のネットワークまでの距離を認識します。
- ⑤ ネクストホップアドレス
- 目的のネットワークへIPパケットを送り届けるために、次に転送すべきルータのIPアドレスです。「ホップ」とはルータを指します。ネクストホップアドレスは、原則としてルータと同じネットワーク内の他のルータのIPアドレスです。
- ⑥ 経過時間
- ルーティングプロトコルで学習したルート情報について、ルーティングテーブルに登録されてから経過した時間が載せられます。経過時間が長ければ長いほど、安定したルート情報です。
- ⑦ 出力インタフェース
- 目的のネットワークへIPパケットを転送するときに、どのインタフェースから出力するかという情報です。ネクストホップアドレスと出力インタフェースを合わせて「目的のネットワークへの方向」と考えることができます。
注
[5]: スタティックルートは、管理者がコマンド入力などによって手動でルーティングテーブルに登録されたルート情報です。
[6]: ルーティングプロトコルは、自動的にルート情報をルーティングテーブルに登録するためのプロトコルです。ルータ同士が同じルーティングプロトコルを利用して、ルータ同士がさまざまな情報を交換することで、自動的にルート情報をルーティングテーブルに登録します。
ルータが認識しているネットワーク構成
ルーティングテーブルは「ルータが認識しているネットワーク構成」ともいえます。ルータがどんなふうにネットワーク構成を認識しているかを、ルータR1のルーティングテーブルから読み取ってみましょう。
ルーティングテーブルの中で最も基本的なルート情報は、ルータに直接接続されているネットワークのルート情報です。Ciscoルータでは、先頭にC
と表示されているのが、直接接続(directly connected
)されているネットワークのルート情報です。ルータR1のルーティングテーブルからは、ルータR1が次の2つのネットワークに直接接続されていることが読み取れます[7]。
C 10.1.2.0 is directly connected, Serial0/1 C 10.1.1.0 is directly connected, FastEthernet0/0
先頭にS
と表示されているルート情報が3つあります。これらは、スタティックルートの設定によってルーティングテーブルに登録されたルート情報です。
S 172.17.0.0/16 [1/0] via 10.1.2.2 S 172.16.0.0/16 [1/0] via 10.1.2.2 S 192.168.1.0/24 [1/0] via 10.1.2.2
3つに共通するvia 10.1.2.2
という記載は、「ネクストホップ(10.1.2.2)を介した先の(via)」という意味です。これら3つのルート情報からは、ルータR1が「10.1.2.0/24のネットワーク上には、10.1.2.2というIPアドレスのルータが存在していて、そのルータの向こう側に3つのネットワークがある」と認識していることが読み取れます。
なお、ルータR1が認識しているのは、3つのネットワークが10.1.2.2のIPアドレスを持つルータの向う側にあるということだけです。実際には、10.1.2.2のルータに直接接続されているのではなく、さらに他のルータを経由しなければいけないかもしれません。
そしてもう1つ、先頭がR
と表示されているルート情報があります。これはRIPというルーティングプロトコルによってルーティングテーブルに登録されたルート情報です。
R 10.1.3.0 [120/1] via 10.1.2.2, 00:00:10, Serial0/1
このルート情報が表しているのは、「ネクストホップ(隣のルータ)は10.1.2.2で、このルータの先に10.1.3.0/24のネットワークがある」ということです。また、[120/1]
は「距離」を表しています[8]。RIPのようなルーティングプロトコルで登録されたルート情報には、距離も載せられています。この記載から「ルーティングテーブルを持つルータR1から[120/1]だけ離れたところに10.1.3.0/24のネットワークがある」ことが分かります。RIPの場合、経由するルータ台数を距離とみなします。つまり、「10.1.2.2のルータはネットワーク10.1.3.0/24に直接接続している」ことが分かります。
以上のように、ルーティングテーブルによって、そのルータがどのようなネットワーク構成であるかを認識しています。ただし、ネットワーク全体の詳細な構成ではなく、自身を中心としてネクストホップ(隣のルータ)の向こう側にどんなネットワークが存在するかというレベルです。IPによるエンドツーエンドの通信は、同じネットワーク上の転送を繰り返していくわけなので、隣のルータまで転送できればよいのです。隣のルータの先にあるネットワーク構成の詳細まで知る必要はありません。
なお、ルーティングテーブルに記載のない(つまり認識できない)ネットワーク宛てのIPパケットを受信したルータは、それらをすべて破棄します。そのため、ルータがきちんとルーティングを行うようにするためには、ルーティングテーブルに必要なルート情報をすべてもれなく登録しておかなければいけません。これは1台のルータだけではなく、ネットワーク上のすべてのルータについてです。そして、ネットワーク上のすべてのルータのルーティングテーブルに必要なルート情報が登録されている状態を指してコンバージェンス(収束)と呼びます。
注
[7]: FastEthernet0/0
やSerial0/1
は、ルータのインタフェースを表しています。また、10.0.0.0/24 is subnetted, 3 subnets
という部分は、「10.0.0.0というネットワークアドレスは、/24のサブネットマスクにより、3つのサブネットに分割されている」という意味です。つまり、サブネットマスクは/24です。
[8]: スタティックルートのルート情報には[1/0]
という距離の情報がありますが、スタティックルートの場合、基本的に距離に意味はありません。