スタティックルーティング
スタティックルーティング(静的経路制御)とは、管理者がルータに対して宛先ネットワークとネクストホップの対応を手動で設定する経路制御の方式です。ルーティングには、このスタティックルーティングと、ルーティングプロトコルが隣接ルータと経路情報を交換して自動的に経路を学習するダイナミックルーティングの2種類があります。本記事ではスタティックルーティングについて、コマンドの書式や設定時に押さえておくべきポイントを掘り下げて解説します。ルーティングそのものの基本的な仕組みについてはルーティングを参照してください。
Cisco IOS(-XE)では、ip routeコマンドを使ってスタティックルートを設定します(IOS XRでの設定方法はIOS XR IPv4スタティックルート設定を参照)。
Router(config)# ip route <宛先ネットワーク> <サブネットマスク> {<ネクストホップIPアドレス> | <送出インターフェース>} [アドミニストレーティブディスタンス]ネクストホップの指定方法
ip routeコマンドでは、パケットの転送先を「ネクストホップIPアドレス」「送出インターフェース」のいずれか、または両方の組み合わせで指定できます。
ネクストホップIPアドレスを指定する方法
隣接ルータのIPアドレスを直接指定する方法です。イーサネットのようなマルチアクセス回線では、この方式が一般的に用いられます。
Router(config)# ip route 192.168.2.0 255.255.255.0 10.1.2.2この設定では、宛先ネットワーク192.168.2.0/24宛てのパケットが、ルーティングテーブル上で経由先として10.1.2.2という別の経路(多くの場合は自身の直接接続経路)を再度検索し直す必要があります。これを再帰的ルックアップ(Recursive Lookup)と呼びます。ネクストホップの10.1.2.2へ到達するための経路が見つからない場合、この設定自体が有効にならない点に注意が必要です。
送出インターフェースを指定する方法
自身のどのインターフェースからパケットを送出するかを直接指定する方法です。
Router(config)# ip route 192.168.2.0 255.255.255.0 GigabitEthernet1ポイントツーポイント回線(シリアル回線など、リンクの反対側に接続機器が1台しか存在しない回線)では、送出インターフェースを指定するだけで転送先が一意に決まるため、この方式でも問題なく動作します。しかし、イーサネットのようなマルチアクセス回線でこの方式を使うと、ルータは宛先ネットワークがそのインターフェースに直接接続されているものとみなし、最終的な宛先IPアドレスそのものに対してARPリクエストを送出します。対向ルータのProxy ARPが代理応答しない限りMACアドレスを解決できないうえ、解決できた場合も宛先ホストごとにARPエントリが増え続けるため、この方式は推奨されません。
両方を指定する方法
ネクストホップIPアドレスと送出インターフェースの両方を指定することもできます。
Router(config)# ip route 192.168.2.0 255.255.255.0 GigabitEthernet1 10.1.2.2送出インターフェースを明示するため再帰的ルックアップが不要になり、かつマルチアクセス回線でも転送先を一意に特定できるため、多くの環境で推奨される書式です。ルーティングの検証環境で使用しているスタティックルートも、この書式で設定されています。
1であり、これを応用したフローティングスタティックルートについてはフローティングスタティックルートで、ADの既定値一覧はアドミニストレーティブディスタンス(AD)で解説しています。デフォルトルート(スタティック)
宛先ネットワークとサブネットマスクの両方を0.0.0.0に指定すると、他のどの経路にも一致しなかったパケットの転送先となるデフォルトルートを、スタティックに設定できます。
Router(config)# ip route 0.0.0.0 0.0.0.0 10.1.2.1ルーティングの検証環境では、R2に対してこの形式でデフォルトルートが設定されており、show ip routeの出力でもS*(candidate default)として表示されています。スタブネットワーク(外部への出口が1つしかないネットワーク)など、個々の経路を細かく設定する必要がない構成で特によく利用されます。
実機での検証
スタティックルーティングの動作を実際に確認するため、HOST1〜HOST2間にルータ3台(R1〜R3)を挟んだ検証環境を用意しました。
各ルータには、以下のスタティックルートが設定されています。
| ルータ | 設定されているスタティックルート |
|---|---|
| R1 | ip route 0.0.0.0 0.0.0.0 GigabitEthernet1 10.1.2.2(デフォルトルート) |
| R2 | ip route 192.168.1.0 255.255.255.0 GigabitEthernet1 10.1.2.1ip route 192.168.2.0 255.255.255.0 GigabitEthernet2 10.2.3.3 |
| R3 | ip route 0.0.0.0 0.0.0.0 GigabitEthernet1 10.2.3.2(デフォルトルート) |
HOST1・HOST2それぞれが接続するセグメントの出口にあたるR1・R3は、対向のR2以外に転送先がないため、デフォルトルートのみを設定しています。一方、中継役のR2は両端のセグメント(192.168.1.0/24・192.168.2.0/24)へ抜ける経路がそれぞれ異なるため、宛先ごとに個別のスタティックルートを設定しています。
各ルータのルーティングテーブル
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 10.1.2.2 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 10.1.2.2, GigabitEthernet1
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.1.2.0/24 is directly connected, GigabitEthernet1
L 10.1.2.1/32 is directly connected, GigabitEthernet1
192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.1.0/24 is directly connected, GigabitEthernet2
L 192.168.1.1/32 is directly connected, 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 not set
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C 10.1.2.0/24 is directly connected, GigabitEthernet1
L 10.1.2.2/32 is directly connected, GigabitEthernet1
C 10.2.3.0/24 is directly connected, GigabitEthernet2
L 10.2.3.2/32 is directly connected, GigabitEthernet2
S 192.168.1.0/24 [1/0] via 10.1.2.1, GigabitEthernet1
S 192.168.2.0/24 [1/0] via 10.2.3.3, GigabitEthernet2
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 10.2.3.2 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 10.2.3.2, GigabitEthernet1
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.2.3.0/24 is directly connected, GigabitEthernet1
L 10.2.3.3/32 is directly connected, GigabitEthernet1
192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.2.0/24 is directly connected, GigabitEthernet2
L 192.168.2.1/32 is directly connected, GigabitEthernet2
R3#HOST1からHOST2への到達性の確認
HOST1(192.168.1.100)からHOST2(192.168.2.100)へpingを実行すると、正常に応答が返ってきます。
$ ping -c 5 192.168.2.100
PING 192.168.2.100 (192.168.2.100) 56(84) bytes of data.
64 bytes from 192.168.2.100: icmp_seq=1 ttl=61 time=5.61 ms
64 bytes from 192.168.2.100: icmp_seq=2 ttl=61 time=5.25 ms
64 bytes from 192.168.2.100: icmp_seq=3 ttl=61 time=5.07 ms
64 bytes from 192.168.2.100: icmp_seq=4 ttl=61 time=5.09 ms
64 bytes from 192.168.2.100: icmp_seq=5 ttl=61 time=5.79 ms
--- 192.168.2.100 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 5.068/5.361/5.792/0.288 msIPパケットの送信元・宛先IPアドレスは、通過するルータによって書き換えられることはありません。TTLだけが通過するルータごとに1ずつ減算されるため、HOST2が初期値64で送出したEcho Replyは、ルータ3台(R3・R2・R1)分の3が引かれ、受信したHOST1側でttl=61として表示されています。この結果からも、パケットが3台のルータを経由して到達していることが確認できます。
各ルータのルーティングテーブルによる転送の流れ
HOST1からHOST2宛て(宛先IPアドレス: 192.168.2.100)のパケットは、以下のように各ルータのルーティングテーブルを参照しながら転送されます。
1. HOST1 → R1
宛先の192.168.2.100は自身の直接接続ネットワーク(192.168.1.0/24)に含まれないため、デフォルトゲートウェイであるR1(192.168.1.1)宛てにパケットを送出します。
2. R1 → R2
R1のルーティングテーブルには直接接続経路(10.1.2.0/24、192.168.1.0/24)とデフォルトルートしか存在せず、宛先192.168.2.100に一致する経路がないため、デフォルトルートが適用されます。
Gateway of last resort is 10.1.2.2 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 10.1.2.2, GigabitEthernet1
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.1.2.0/24 is directly connected, GigabitEthernet1
L 10.1.2.1/32 is directly connected, GigabitEthernet1
192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.1.0/24 is directly connected, GigabitEthernet2
L 192.168.1.1/32 is directly connected, GigabitEthernet2ネクストホップの10.1.2.2(R2)宛てにGigabitEthernet1から転送されます。
3. R2 → R3
宛先192.168.2.100は、スタティックに設定された192.168.2.0/24宛ての経路に一致するため、こちらが適用されます。
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, GigabitEthernet1
L 10.1.2.2/32 is directly connected, GigabitEthernet1
C 10.2.3.0/24 is directly connected, GigabitEthernet2
L 10.2.3.2/32 is directly connected, GigabitEthernet2
S 192.168.1.0/24 [1/0] via 10.1.2.1, GigabitEthernet1
S 192.168.2.0/24 [1/0] via 10.2.3.3, GigabitEthernet2ネクストホップの10.2.3.3(R3)宛てにGigabitEthernet2から転送されます。R2にはHOST1側(192.168.1.0/24)・HOST2側(192.168.2.0/24)双方への経路が個別に設定されているため、デフォルトルートに頼ることなく、宛先に応じて転送先を判断できます。
4. R3 → HOST2
宛先192.168.2.100は、R3自身の直接接続ネットワーク(192.168.2.0/24)に含まれるため、ルーティングテーブルの検索の結果、対向のルータへ転送する経路ではなく、自身のインターフェースが属するネットワークとして扱われます。
Gateway of last resort is 10.2.3.2 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 10.2.3.2, GigabitEthernet1
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.2.3.0/24 is directly connected, GigabitEthernet1
L 10.2.3.3/32 is directly connected, GigabitEthernet1
192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.2.0/24 is directly connected, GigabitEthernet2
L 192.168.2.1/32 is directly connected, GigabitEthernet2ARPで解決したHOST2のMACアドレス宛てに、GigabitEthernet2から直接パケットが届けられます。
HOST2からHOST1への応答(Echo Reply)も、送信元・宛先が入れ替わるだけで同様の流れをたどります。HOST2はデフォルトゲートウェイのR3(192.168.2.1)へ送出し、R3はデフォルトルートでR2(10.2.3.2)へ、R2はスタティックルートでR1(10.1.2.1)へ転送し、R1が直接接続のHOST1へ届けます。このように、経路の途中にあるルータ(R2)が両方向の経路を個別に把握していることで、ネットワーク全体としてHOST1・HOST2間の双方向の到達性が成立しています。
R1 config(r1_static.cfg) をダウンロード
R2 config(r2_static.cfg) をダウンロード
R3 config(r3_static.cfg) をダウンロード
スタティックルーティングのメリット・デメリット
スタティックルーティングとダイナミックルーティングの比較はルーティングにまとめていますが、スタティックルーティング固有の注意点として、経路の変更や障害時に管理者による手動対応が必要になる点が挙げられます。経路数が少ない小規模なネットワークや、スタブネットワークのように経路がそもそも変化しない構成では、ダイナミックルーティングプロトコルの学習・運用コストをかけずに済むというメリットが大きく上回ります。
参考
| RFC | タイトル | 概要 |
|---|---|---|
| RFC 1812 | Requirements for IP Version 4 Routers | IPv4ルータの要件を定義。経路選択やアドミニストレーティブディスタンスに相当する概念にも言及。 |