はじめに
このドキュメントでは、ルータの動作、設定、およびルートの選択方法について説明します。
前提条件
要件
このドキュメントに関しては個別の前提条件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
背景説明
Ciscoルータの1つの側面は、ルータがプロトコル、手動設定、およびその他のさまざまな手段によって提示されたルートの中から最適なルートをどのように選択するかということです。 ルートを選択するには、Ciscoルータの動作の仕組みに関する知識が必要です。
関与するプロセス
Ciscoルータでルーティングテーブルを作成および維持するには、次の3つのプロセスが必要です。
-
実際にネットワーク(またはルーティング)プロトコルを実行する Enhanced Interior Gateway Routing Protocol(EIGRP)、Border Gateway Protocol(BGP)、Intermediate System-to-Intermediate System(IS-IS)、および Open Shortest Path First(OSPF)などの各種ルーティング プロセス
-
ルーティング テーブル自体。これはルーティング プロセスからの情報を受け入れ、転送プロセスからの情報リクエストへも応答します。
-
転送プロセス。これは、パケット転送を決定するためにルーティング テーブルからの情報を要求します。
ルーティングテーブルの作成方法を理解するには、ルーティングプロトコルとルーティングテーブルの間の相互作用を調べる必要があります。
ルーティングテーブルの作成
ルーティングテーブルを作成する際の主な考慮事項は次のとおりです。
-
アドミニストレーティブ ディスタンス:これは、ルートのソースの信頼性を示す尺度です。ルータが複数のルーティングプロトコルから宛先について学習した場合、アドミニストレーティブディスタンスが比較され、アドミニストレーティブディスタンスが小さいルートが優先されます。
-
メトリック:同じ宛先に対して複数のパスが認識される場合、指定された宛先への最適なパスを計算するためにルーティング プロトコルによって使用される尺度です。それぞれのルーティング プロトコルは異なるメトリックを使用します。
-
プレフィックス長
個々のルーティング プロセスは更新その他の情報を受信すると、与えられた任意の宛先への最適なパスを選択し、そのパスをルーティング テーブルにインストールしようと試みます。
たとえば、EIGRP が 10.1.1.0/24 へのパスを認識し、この特定のパスがこの宛先への最適な EIGRP パスであると判断すると、EIGRP は認識したパスをルーティング テーブルにインストールしようとします。
ルータは、ルーティング プロセスから提供されたルートをインストールするかどうかを、処理対象のルートのアドミニストレーティブ ディスタンスに基づいて決定します。このパスが(テーブル内の他のルートと比較して)この宛先への最小のアドミニストレーティブディスタンスであれば、ルーティングテーブルに格納されます。このルートが最適なアドミニストレーティブディスタンスのルートでない場合、そのルートは拒否されます。
たとえば、ルータで4つのルーティングプロセス(EIGRP、OSPF、RIP、およびIGRP)が実行されているとします。ここで、これら 4 つのプロセスすべてが 192.168.24.0/24 ネットワークへのさまざまなルートを学習し、それぞれが各自の内部メトリックおよびプロセスを通じてそのネットワークへの最適なパスを選択したとします。
これら 4 つのプロセスは、各自の 192.168.24.0/24 へのルートをルーティング テーブルにインストールしようと試みます。ルーティング プロセスにはそれぞれアドミニストレーティブ ディスタンスが割り当てられており、インストールするルートを決定する際に使用されます。
デフォルトのアドミニストレーティブ ディスタンス |
接続済み |
0 |
Static |
1 |
eBGP |
20 |
EIGRP(内部) |
90 |
IGRP |
100 |
OSPF |
110 |
IS-IS |
115 |
RIP |
120 |
EIGRP(外部) |
170 |
iBGP |
200 |
EIGRP 集約ルート |
5 |
内部EIGRPルートのアドミニストレーティブディスタンスが最適であるため(アドミニストレーティブディスタンスが小さいほど、優先度は高くなります)、ルーティングテーブルに格納されます。
バックアップ ルート
- RIP、IGRP、およびOSPFなどの他のプロトコルは、インストールされなかったルートをどのように処理しますか。
- EIGRP から学習した最優先のルートが失敗した場合はどうするのでしょうか。
Cisco IOS®ソフトウェアでは、この問題を解決するために2つのアプローチを使用します。
1 つは、各ルーティング プロセスにおいて最適なルートを定期的にインストールしようとする方法です。最優先のルートが失敗した場合は、次に最適なルート(アドミニストレーティブディスタンスによって決定される)が次の試行に続きます。
もう1つの解決策は、最適パスが失敗した場合にレポートするようにルーティングテーブルプロセスに指示し、テーブルにルートをインストールできなかったルーティングプロトコルがルートを保持することです。
IGRPなど、独自のルーティング情報テーブルを持たないプロトコルの場合は、最初の方法が使用されます。
IGRP は、ルートに関する更新を受信するたびに、更新された情報をルーティング テーブルにインストールしようと試みます。
この同じ宛先へのルートがルーティングテーブルにすでに存在する場合、インストールの試行は失敗します。
EIGRP、IS-IS、OSPF、BGP、RIP などのように、ルーティング情報の独自のデータベースを持つプロトコルについては、ルートをインストールする最初の試行が失敗すると、バックアップ ルートが登録されます。
ルーティング テーブルにインストールされたルートに何らかの理由で障害が発生すると、ルーティング テーブルのメンテナンス プロセスがバックアップ ルートを登録した各ルーティング プロトコル プロセスを呼び出し、ルーティング テーブルにルートを再インストールするように要求します。登録済みのバックアップルートを持つプロトコルが複数ある場合、アドミニストレーティブディスタンスに基づいて優先ルートが選択されます。
アドミニストレーティブディスタンスの調整
デフォルトのアドミニストレーティブディスタンスは、ネットワークにとって必ずしも適切とは限りません。RIPルートがIGRPルートよりも優先されるように調整できます。ただし、アドミニストレーティブディスタンスを変更した場合の影響を確認してください。
ルーティングプロトコルでアドミニストレーティブディスタンスを変更することは非常に危険です。これにより、ネットワーク内でルーティングループやその他の異常が発生する可能性があります。したがって、アドミニストレーティブディスタンスの変更は常に注意して行ってください。これを行う前に、変更を計画し、その結果を知っていることを確認してください。
プロトコル全体で、距離を変更するのは簡単です。ルーティングプロセスのサブ設定モードでdistance コマンドを使用するだけです。一部のプロトコルに限り、1 つの発信元から学習したルートのディスタンスを変更することもできます。また、一部のルートだけのディスタンスを変更することも可能です。詳細については、「Cisco IOS ルータのルート選択のアドミニストレーティブ ディスタンスの調整の設定例」を参照してください。
スタティックルートで各ルートのディスタンスを変更するには、ip route コマンドの後にディスタンスを入力します。
ip route network subnet mask next hop distance
すべてのスタティックルートのアドミニストレーティブディスタンスを同時に変更することはできません。
メトリックがルート選択プロセスを判別する方法
ルートは、ルーティングプロトコルのアドミニストレーティブディスタンスに基づいて、ルーティングテーブルで選択および構築されます。ルーティング プロトコルから学習された、アドミニストレーティブ ディスタンスが最小のルートが、ルーティング テーブルにインストールされます。単一のルーティング プロトコルから同じ宛先へのパスが複数ある場合、複数のパスは同じアドミニストレーティブ ディスタンスを持つため、最適なパスはメトリックに基づいて選択されます。メトリックは、特定のルートに関連付けられた値で、優先されるルートから優先されないルートにランク付けされます。メトリックスの判定に使用されるパラメータは、ルーティング プロトコルによって異なります。メトリックが最も小さいパスは最適パスとして選択され、ルーティング テーブルにインストールされます。同じ宛先への複数のパスのメトリックが等しい場合は、これらの等コスト パスに対してロード バランシングが行われます。ロード バランシングに関する詳細は、「ロード バランシングの機能のしくみ」を参照してください。
プレフィックス長
別のシナリオを見て、プレフィックス長の変化という別の一般的な状況に対するルータの処理方法を確認します。ここでも、ルータが動作していて、4つのルーティングプロセスがあり、各プロセスが次のルートを受信したと仮定します。
これらのルートのうち、ルーティングテーブルにインストールできるのはどれですか。
EIGRP内部ルートのアドミニストレーティブディスタンスが最適であるため、最初のルートを設定できると考えられます。
ただし、これらのルートはそれぞれ異なるプレフィクス長(サブネットマスク)を持つため、異なる宛先と見なされ、これらすべてをルーティングテーブルに格納できます。
次のセクションでは、転送の決定を行うためのルーティングテーブルからの情報を提供します。
転送に関する決定
ルーティングテーブルにインストールされた3つのルートを調べ、ルータ上でそれらがどのように見えるかを確認します。
router# show ip route
....
D 192.168.32.0/26 [90/25789217] via 10.1.1.1
R 192.168.32.0/24 [120/4] via 10.1.1.2
O 192.168.32.0/19 [110/229840] via 10.1.1.3
....
- 宛先が 192.168.32.1 のルータ インターフェイスにパケットが到達した場合、ルータはどのルートを選択するのでしょうか。
- それは、プレフィクス長、つまりサブネット マスクに設定されているビット数によって決まります。
パケットを転送する場合、プレフィックスが長い方が常に短いものより優先される。
この場合、192.168.32.1 宛てのパケットは 10.1.1.1 に向けて送られます。これは、192.168.32.1 が 192.168.32.0/26 ネットワークの範囲内(192.168.32.0~192.168.32.63)に属するためです。
このパケットは使用可能な他の 2 つのルートの範囲内にも属しますが、ルーティング テーブル内でプレフィクス長が最も長いのは 192.168.32.0/26 です(26 ビットに対して、他は 24 ビットまたは 19 ビット)。
同様に、192.168.32.100を宛先とするパケットがルータインターフェイスの1つに到達した場合、そのパケットは10.1.1.2に転送されます。
192.168.32.100は192.168.32.0/26(192.168.32.0 ~ 192.168.32.63)には該当しませんが、192.168.32.0/24の宛先(192.168.32.0 ~ 192.168.32.255)には該当します。
ここでもまた、パケットは 192.168.32.0/19 の範囲内にも属していますが、プレフィクス長が長いのは 192.168.32.0/24 です。
IP クラスレス
ip classless コンフィギュレーション コマンドがルーティング プロセスおよび転送プロセスに含まれる場面では、しばしば煩雑さが伴います。
実際には、IPクラスレスはCisco IOSの転送プロセスの動作にのみ影響し、ルーティングテーブルの構築方法には影響しません。
IPクラスレスが設定されていない場合(no ip classlessコマンドを使用)、ルータはパケットをスーパーネットに転送できません。
例として、再び3つのルートをルーティングテーブルに設定し、ルータを介してパケットをルーティングします。
注:スーパーネットまたはデフォルトルートがIS-ISまたはOSPF経由で学習される場合、no ip classless コンフィギュレーションコマンドは無視されます。この場合、パケット交換の動作は、ip classless が設定されている場合と同様に機能します
router# show ip route
....
172.30.0.0/16 is variably subnetted, 2 subnets, 2 masks
D 172.30.32.0/20 [90/4879540] via 10.1.1.2
D 172.30.32.0/24 [90/25789217] via 10.1.1.1
S* 0.0.0.0/0 [1/0] via 10.1.1.3
172.30.32.0/24ネットワークにはアドレス172.30.32.0 ~ 172.30.32.255が含まれ、172.30.32.0/20ネットワークにはアドレス172.30.32.0 ~ 172.30.47.255が含まれるため、このルーティングテーブルを使用して3つのパケットをスイッチングし、結果を確認できます。
-
宛先が172.30.32.1のパケットは、最長のプレフィクス照合であるため、10.1.1.1に転送されます。
-
宛先が172.30.33.1のパケットは、最長のプレフィクス照合であるため、10.1.1.2に転送されます。
-
宛先が192.168.10.1のパケットは10.1.1.3に転送されます。このネットワークはルーティングテーブルに存在しないため、このパケットはデフォルトルートに転送されます。
-
宛先が 172.30.254.1 のパケットは廃棄されます。
これら4つの中の応答は、ドロップされる最後のパケットです。これは、宛先172.30.254.1が既知のメジャーネットワーク172.30.0.0/16内にあるにもかかわらず、ルータがそのメジャーネットワーク内のこの特定のサブネットを認識していないために廃棄されます。
これがクラスフルルーティングの本質です。メジャーネットワークの一部が既知であっても、パケットの宛先がそのメジャーネットワーク内のサブネットが不明な場合、パケットは廃棄されます。
このルールの最も複雑な点は、宛先のメジャーネットワークがルーティングテーブルにまったく存在しない場合にだけ、ルータがデフォルトルートを使用することです。
これは、図に示すように、リモートサイトがネットワークの他の部分に1つの接続で戻り、ルーティングプロトコルを実行していない場合に問題を引き起こす可能性があります。
ルーティングプロトコルを実行しない
リモート サイトのルータは次のように設定されています。
interface Serial 0
ip address 10.1.2.2 255.255.255.0
!
interface Ethernet 0
ip address 10.1.1.1 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.1.2.1
!
no ip classless
この設定では、リモート サイトのホストからは(10.x.x.x クラウドを経由して)インターネット上の宛先に到達できますが、社内ネットワークの 10.x.x.x クラウド内の宛先には到達できません。
リモートルータは、10.0.0.0/8ネットワークの一部と、直接接続されている2つのサブネットを認識していますが、10.x.x.xの他のサブネットは認識していないため、これらの他のサブネットは存在しないと想定し、それら宛てのパケットをすべて廃棄します。
ただし、インターネット宛てのトラフィックは10.x.x.xのアドレス範囲内に宛先がないため、デフォルトルートを通じて正しくルーティングされます。
リモートルータでip classless を設定すると、この問題は解決します。これは、ルータが自身のルーティングテーブルでクラスフルなネットワークの境界を無視でき、単純に最長プレフィクス照合のルートを検出してルーティングできるためです。
要約
要約すると、転送の決定を行うには、次の3つのプロセスのセットで構成されます。
- ルーティングプロトコルや –
- ルーティングテーブル、
- 転送に関する決定を行い、パケットを切り替える実際のプロセス。
次の図では、これら3つのプロセスのセットとその関係について説明します。
ルーティングプロセスの3つのセット
ルートがルーティングテーブルにインストールされるときは、最長のプレフィクス照合が常にルーティングテーブルにインストールされているルートの中で優先されます。一方、最小のアドミニストレーティブディスタンスのルーティングプロトコルは、常にルーティングテーブルにインストールされているルートの中で優先されます。
関連情報