ルーティング
ルーティング(経路制御)とは、ルータが受信したパケットの宛先IPアドレスをもとに、そのパケットを次にどこへ転送すべきかを決定する処理のことです。異なるネットワークセグメント間でパケットを中継し、最終的に宛先ホストまで届けるための仕組みであり、IPネットワークにおける通信の根幹を担っています。
同じL2セグメント内でMACアドレスをもとにフレームを転送する「スイッチング」とは異なり、ルーティングはL3(ネットワーク層)でIPアドレスをもとに異なるネットワーク間の転送先を決定する点が特徴です。
以降の説明では、上図のようにルータ(R1〜R3)を介して複数のネットワーク(PC1〜PC3が接続するセグメント)が接続された構成を例として用います。
ルーティングの基本的な仕組み
ルータは、パケットを受信すると以下の流れで転送処理を行います。
- 受信したパケットの宛先IPアドレスを確認する。
- 自身が保持するルーティングテーブルの中から、宛先IPアドレスに一致する経路を検索する。
- 一致する経路が複数存在する場合は、ロンゲストマッチにより最も具体的な経路を選択する。
- IPヘッダーのTTL(Time to Live)を1減算し、0になった場合はその時点でパケットを破棄する(送信元へはICMP Time Exceededを返す)。
- 破棄されなかったパケットを、選択した経路のネクストホップおよび送出インターフェースへ転送する。
一致する経路がルーティングテーブル内に存在しない場合、ルータはICMP到達不能メッセージ(Destination Unreachable)を送信元に返し、パケットを破棄します。ただし、デフォルトルート(後述)が設定されている場合はそちらが適用されます。
ルーティングテーブル
ルーティングテーブルは、ルータが経路制御を行うために保持する経路情報の一覧です。主に以下の項目で構成されます。
| 項目 | 説明 |
|---|---|
| 宛先ネットワーク (Destination) | 転送先となるネットワークアドレス。 |
| サブネットマスク/プレフィックス長 (Netmask / Prefix Length) | 宛先ネットワークの範囲を示すマスク値。CIDR表記では/24のように表される。 |
| ネクストホップ (Next Hop / Gateway) | 該当ネットワーク宛てのパケットを次に転送すべき隣接ルータのIPアドレス。 |
| 送出インターフェース (Interface) | パケットを送出する物理/論理インターフェース。 |
| メトリック (Metric) | 同一のルーティングプロトコル内での経路のコストを表す値。同じ情報源から同一宛先への経路が複数得られた場合、値が小さい経路が優先される。異なる情報源(スタティックとOSPFなど)から得られた経路同士は、メトリックではなく後述のアドミニストレーティブディスタンスで比較される。 |
| 経路の種類 (Protocol / Source) | 経路情報がどのように学習されたか(直接接続、静的設定、各種ルーティングプロトコルなど)を示す。 |
経路情報の確認方法
Cisco IOS(-XE)を使用したルータでは、show ip route コマンドを実行することでルーティングテーブルの内容を確認できます。以下は、本記事冒頭の検証トポロジにおけるR1〜R3それぞれの実行結果です。
R1#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, m - OMP
n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
H - NHRP, G - NHRP registered, g - NHRP registration summary
o - ODR, P - periodic downloaded static route, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
& - replicated local route overrides by connected
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C 10.1.2.0/24 is directly connected, GigabitEthernet2
L 10.1.2.1/32 is directly connected, GigabitEthernet2
C 10.1.3.0/24 is directly connected, GigabitEthernet3
L 10.1.3.1/32 is directly connected, GigabitEthernet3
S 192.168.0.0/16 [1/0] via 10.1.3.3, GigabitEthernet3
192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.1.0/24 is directly connected, GigabitEthernet1
L 192.168.1.1/32 is directly connected, GigabitEthernet1
S 192.168.2.0/24 [1/0] via 10.1.2.2, GigabitEthernet2
R1#R2#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, m - OMP
n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
H - NHRP, G - NHRP registered, g - NHRP registration summary
o - ODR, P - periodic downloaded static route, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
& - replicated local route overrides by connected
Gateway of last resort is 10.1.2.1 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 10.1.2.1, GigabitEthernet2
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.1.2.0/24 is directly connected, GigabitEthernet2
L 10.1.2.2/32 is directly connected, GigabitEthernet2
192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.2.0/24 is directly connected, GigabitEthernet1
L 192.168.2.1/32 is directly connected, GigabitEthernet1
R2#R3#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, m - OMP
n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
H - NHRP, G - NHRP registered, g - NHRP registration summary
o - ODR, P - periodic downloaded static route, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
& - replicated local route overrides by connected
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.1.3.0/24 is directly connected, GigabitEthernet2
L 10.1.3.3/32 is directly connected, GigabitEthernet2
S 192.168.1.0/24 [1/0] via 10.1.3.1, GigabitEthernet2
S 192.168.2.0/24 [1/0] via 10.1.3.1, GigabitEthernet2
192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.3.0/24 is directly connected, GigabitEthernet1
L 192.168.3.1/32 is directly connected, GigabitEthernet1
R3#コード欄(左端の文字)の意味
出力左端のアルファベットは、その経路がどのように学習されたかを示すコードです。
| コード | 意味 |
|---|---|
C | 直接接続されたネットワーク (Connected) |
L | 自身のインターフェースに割り当てられたアドレス (Local) |
S | 管理者が手動で設定した静的経路 (Static) |
S* | candidate default(デフォルトルート候補)。スタティックに設定されたデフォルトルートに付与される。 |
O | OSPFにより学習した経路 |
B | BGPにより学習した経路 |
0.0.0.0/0(IPv6では::/0)となっている経路はデフォルトルートと呼ばれ、他のどの経路にも一致しなかったパケットの転送先として使用される。R2の出力にあるS* 0.0.0.0/0 [1/0] via 10.1.2.1, GigabitEthernet2がこれに該当する。各ルータの出力から読み取れること
R1の出力では、GigabitEthernet2(10.1.2.0/24)とGigabitEthernet3(10.1.3.0/24)が直接接続されたネットワークとしてCで、それぞれの自インターフェースアドレスがLで表示されています。あわせて、PC2が接続する192.168.2.0/24宛ての経路がR2経由の静的経路(S)として、また192.168.0.0/16全体をまとめたより広い経路がR3経由の静的経路として設定されています。後者はPC3(192.168.3.0/24)方面への経路を要約したものですが、192.168.2.0/24宛ての経路とも範囲が重なるため、次項のロンゲストマッチの具体例として使用します。
R2の出力にはGateway of last resort is 10.1.2.1 to network 0.0.0.0という表示があり、192.168.1.0/24や192.168.3.0/24など個別の経路を保持していない宛先については、すべてR1(10.1.2.1)へ転送するデフォルトルート(S*)が使用されることを示しています。
R3の出力では、R1と同様に192.168.1.0/24・192.168.2.0/24宛ての静的経路(S)が、R1向けのGigabitEthernet2経由で設定されています。
経路情報の各要素の読み方
静的経路のエントリは、以下のような形式で表示されます。
S 192.168.2.0/24 [1/0] via 10.1.2.2, GigabitEthernet2| 表示要素 | 対応する項目 | 説明 |
|---|---|---|
192.168.2.0/24 | 宛先ネットワーク | 転送先のネットワークアドレスとプレフィックス長。 |
[1/0] | [アドミニストレーティブディスタンス/メトリック] | 経路の優先度を表すアドミニストレーティブディスタンス(AD)と、そのルーティングプロトコル内でのメトリック値。 |
via 10.1.2.2 | ネクストホップ | パケットを転送する隣接ルータのIPアドレス。 |
GigabitEthernet2 | 送出インターフェース | パケットを送出するインターフェース。 |
ロンゲストマッチ
宛先IPアドレスがルーティングテーブル内の複数の経路に一致する場合、ルータはプレフィックス長(サブネットマスクのビット数)が最も長い、すなわち最も範囲が限定された経路を優先して選択します。これをロンゲストマッチ(Longest Match、最長プレフィックスマッチ)と呼びます。
前述のR1のルーティングテーブルには、以下の2つの経路が含まれています。
S 192.168.0.0/16 [1/0] via 10.1.3.3, GigabitEthernet3
S 192.168.2.0/24 [1/0] via 10.1.2.2, GigabitEthernet2PC2(192.168.2.0/24)宛てのパケットを転送する場合、プレフィックス長16の192.168.0.0/16とプレフィックス長24の192.168.2.0/24のどちらにも宛先アドレスが一致します。ここでロンゲストマッチが働き、プレフィックス長がより長く範囲がより限定された192.168.2.0/24宛ての経路(ネクストホップ10.1.2.2、GigabitEthernet2)が優先して選択されます。
仮にロンゲストマッチが行われず、より広い192.168.0.0/16の経路が優先されてしまうと、本来PC2宛てのパケットが誤ってR3方面(GigabitEthernet3)へ転送されることになります。ロンゲストマッチにより、要約された経路(サマリールート)とより具体的な経路を共存させつつ、実際に宛先が存在する方向へ正しく転送できる仕組みになっています。
アドミニストレーティブディスタンス(AD)
ロンゲストマッチはプレフィックス長が異なる経路同士を比較する際に働く仕組みですが、宛先ネットワークとプレフィックス長が同一の経路が、スタティックやOSPF、BGPなど複数の情報源から得られる場合もあります。この場合はアドミニストレーティブディスタンス(AD: Administrative Distance)という値によってどの情報源からの経路を優先するかが決まります。値が小さいほど優先度が高く、ルーティングテーブルに採用されます。
詳しくはアドミニストレーティブディスタンス(AD)を参照してください。
スタティックルーティングとダイナミックルーティング
経路情報の設定方法により、ルーティングは大きくスタティックルーティングとダイナミックルーティングの2つに分類されます。
| 項目 | スタティックルーティング | ダイナミックルーティング |
|---|---|---|
| 設定方法 | 管理者が経路情報を手動で設定する。 | ルーティングプロトコルが隣接ルータと経路情報を交換し自動的に生成する。 |
| 障害時の対応 | 障害発生時は管理者が手動で経路を変更する必要がある。 | リンク障害などを検知し、自動的に代替経路へ切り替わる。 |
| ルータの負荷 | 経路計算が発生しないため負荷は低い。 | 経路情報の交換や再計算により、CPU・メモリ負荷が高くなる場合がある。 |
| 適用規模 | 経路数が少なくトポロジ変化の少ない小規模な構成に向く。 | 経路数が多く冗長構成を持つ大規模なネットワークに向く。 |
ダイナミックルーティングプロトコルの分類
ダイナミックルーティングを実現するプロトコルは、経路情報を交換する範囲や経路計算のアルゴリズムによって分類されます。
複数のルータをひとつの管理ポリシーのもとで運用するネットワークの集合を自律システム(AS: Autonomous System)と呼び、ダイナミックルーティングプロトコルはAS内で用いられるかAS間で用いられるかによって、IGPとEGPに大別されます。
| 分類 | 説明 | 代表的なプロトコル |
|---|---|---|
| IGP (Interior Gateway Protocol) | 同一の自律システム(AS)内で経路情報を交換するプロトコル。 | RIP、OSPF、EIGRP、IS-IS |
| EGP (Exterior Gateway Protocol) | 異なる自律システム(AS)間で経路情報を交換するプロトコル。 | BGP |
また、経路計算のアルゴリズムによって以下のように分類されます。
| アルゴリズム分類 | 説明 | 代表的なプロトコル |
|---|---|---|
| ディスタンスベクター型 | 隣接ルータから受け取ったホップ数などの距離情報をもとに経路を決定する。EIGRPはDUALアルゴリズムにより高速収束やループ防止を強化した拡張ディスタンスベクター型に分類される。 | RIP、EIGRP |
| リンクステート型 | ネットワーク全体のトポロジ情報を各ルータが保持し、SPF(最短経路優先)アルゴリズムにより最短経路を計算する。 | OSPF、IS-IS |
| パスベクター型 | 経由する自律システム(AS番号)のパス情報をもとに経路を決定する。 | BGP |
設定例Config
R1 config(r1_routing.cfg) をダウンロード
R2 config(r2_routing.cfg) をダウンロード
R3 config(r3_routing.cfg) をダウンロード