前の記事では、 ルーティングテーブルの見方と、最長一致による経路選択 について学びました。
たとえば、次のようなルーティングテーブルがあったとします。
C 192.168.10.0/24 is directly connected, GigabitEthernet0/0
S 192.168.20.0/24 [1/0] via 10.0.0.2
O 192.168.30.0/24 [110/20] via 10.0.0.6
Connectedの Cは、 ルーターへ直接接続されたネットワークなので 自動的に登録されます。
では、 SやOの経路はどうやってルーティングテーブルに登録されたのでしょうか?
ルーター同士が自動的に経路情報を交換する方法があります。
この違いが、 スタティックルーティングと 動的ルーティングです。
「Staticは管理者が経路を指定する」 「Dynamicはルーター同士が経路を交換・学習する」 という違いだけでなく、 ネットワーク規模や障害時の動作を考えて 使い分けられる状態を目指します。
スタティックルーティングと動的ルーティングの違い
まずは大きな違いを確認しましょう。
「192.168.20.0/24へ行くなら 10.0.0.2へ送る」 と管理者が設定します。
OSPFなどを利用して、 他のルーターからネットワーク情報を学習します。
まずはこの違いを基準にすると、 2つの仕組みを整理しやすくなります。
スタティックルーティングとは?
スタティックルーティングとは、 管理者が宛先ネットワークとNext Hopなどを手動で設定する方法 です。
Router-Aへ、
という経路を設定すれば、 192.168.20.0/24宛てのパケットを Router-Bへ転送できます。
CiscoルーターでStatic Routeを設定する
Cisco IOSでは、 スタティックルートを次のような形式で設定できます。
ip route 宛先ネットワーク サブネットマスク Next-Hop
たとえば、 192.168.20.0/24へ行くためのNext Hopが10.0.0.2なら、
Router(config)# ip route 192.168.20.0 255.255.255.0 10.0.0.2
と設定できます。
ルーティングテーブルでは、 次のように S として表示されます。
S 192.168.20.0/24 [1/0] via 10.0.0.2
スタティックルーティングのメリット
管理者自身が経路を設定するため、 どこへ転送するか把握しやすい方式です。
OSPFなどのルーティングプロトコルによる 経路交換トラフィックが不要です。
経路数が少なく変更も少ないネットワークでは 管理しやすい場合があります。
スタティックルーティングのデメリット
最大の問題は、 ネットワークが大きくなるほど管理作業が増えること です。
ネットワーク追加や構成変更のたびに、 必要なルーターへ経路を設定する必要があります。
設定したStatic Route自体はコンフィグに残りますが、 出力インターフェースがDownしたり Next Hopへの到達性を失ったりすると、 その経路がルーティングテーブルから外れる場合があります。
重要なのは、 通常のStatic Routeは別の経路を自分で発見・計算する機能を持たない という点です。
動的ルーティングとは?
動的ルーティングとは、 ルーティングプロトコルを利用して、 ルーター同士が経路情報を交換・学習する方式 です。
たとえばRouter-Cの先に 192.168.30.0/24が存在するとします。
動的ルーティングを利用すると、 Router-Aが 192.168.30.0/24への経路を自動的に学習 できるようになります。
ルーティングプロトコルとは?
ルーター同士が経路情報を交換するときに利用する ルールが ルーティングプロトコル です。
企業ネットワークなどで広く利用される Link State型のルーティングプロトコル。
Hop数をMetricとして利用する 比較的シンプルな方式。
インターネットなど、 AS間の経路交換で重要なプロトコル。
OSPFやBGPの詳しいアルゴリズムまで ここで覚える必要はありません。 まずは Dynamic RoutingではRouter同士がRouteを学習する ことを理解しましょう。
動的ルーティングでは何が起きている?
ルーティングプロトコルによって細かな仕組みは異なりますが、 大まかにはこのような流れで 経路を学習します。
障害が発生したときの違い
StaticとDynamicの違いが分かりやすく現れるのが、 ネットワーク障害です。
次のようにRouter-AからRouter-Cまで 2つの経路があるとします。
Static Routingの場合
管理者がRoute 1だけをStatic Routeとして設定していた場合、 Route 1が利用できなくなっても、 Router-Aが自動的にRoute 2を発見して切り替えるわけではありません。
別経路も利用したい場合は、 Floating Static Routeなどをあらかじめ設計しておく必要があります。
Dynamic Routingの場合
OSPFなどでRoute 1とRoute 2を把握していれば、 ネットワーク状態の変化を検知したあとに 経路を再計算し、 利用可能な別経路へ切り替えられる場合があります。
代替Routeを利用するには 事前のStatic設定などが必要。
Routing Protocolが 新しい利用可能経路を選択する。
コンバージェンス(収束)とは?
動的ルーティングでネットワーク構成が変化したあと、 各ルーターが新しい経路情報を共有し、 安定したルーティング状態になることを 収束(Convergence)と呼びます。
収束までの考え方は、 OSPFなどを詳しく学習するときに重要になります。
Static RoutingとDynamic Routingを比較
| 項目 | Static | Dynamic |
|---|---|---|
| Route登録 | 管理者が手動 | Router同士で学習 |
| 構成変更への追従 | 原則として管理者が対応 | Protocolにより自動再計算可能 |
| 管理負荷 | Route数が増えるほど大きい | 大規模構成で有利 |
| 仕組み | 比較的シンプル | Protocolの理解が必要 |
| 経路交換 | 不要 | 必要 |
| 代表例 | ip route |
OSPF / RIP / BGPなど |
どちらを使えばよい?
StaticとDynamicは、 どちらか一方だけが優れているわけではありません。
- 小規模なネットワーク
- 経路変更がほとんどない
- 出口が1か所だけ
- 明示的に経路を固定したい
- RouterやNetwork数が多い
- 冗長経路が存在する
- Network変更が多い
- 障害時の経路切替が必要
実際のネットワークでは、 StaticとDynamicを組み合わせる ことも珍しくありません。
デフォルトルートはStaticが便利な代表例
すべての外部ネットワークについて 個別にRouteを登録する必要がない場合、 デフォルトルートを利用できます。
Router(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1
ルーティングテーブルでは、 たとえば次のようになります。
S* 0.0.0.0/0 [1/0] via 203.0.113.1
「その他のネットワークはすべてこのRouterへ」 という出口が明確な場合には、 Static Default Routeが非常に便利です。
ここで実際に試してみよう:経路障害シミュレーター
Static RoutingとDynamic Routingで、 リンク障害が発生した場合の違いを確認してみましょう。
Routing Failure Simulator
Primary Routeを利用中
現在はA → B → Cの経路を利用しています。 障害を発生させて動作を確認してみましょう。
理解度チェック:StaticとDynamicどちらを選ぶ?
Routing方式を選んでください
ネットワーク規模・変更頻度・冗長経路の有無を考えてみましょう。
トラブルシューティングでは何を確認する?
Static設定があっても、 実際にRIBへRouteが載っているか確認します。
Next Hopの到達性や 出力インターフェースの状態を確認します。
OSPFなどを使用している場合は、 NeighborやRoute学習状態を確認します。
確認問題:StaticとDynamicの違いを理解できたか確認しよう
スタティックルーティングの説明として正しいものはどれですか?
Static Routeは、 管理者が宛先Network・Next Hopなどを 明示的に設定します。
動的ルーティングのメリットとして適切なのはどれですか?
OSPFなどのRouting Protocolでは、 Network状態が変化すると経路情報を更新し、 利用経路を再計算できます。
Routerが多数あり冗長経路も多いネットワークで、 一般的に管理しやすい方式はどれですか?
Network規模や冗長経路が増えると、 Dynamic Routingによる経路交換・自動計算のメリットが大きくなります。
3問に挑戦してみましょう。
Routingができても、そのままInternetへ出られるとは限らない
ここまでで、 社内の異なるIPネットワーク間で パケットを転送する仕組みを学んできました。
しかし、たとえば社内PCが次のPrivate IP Addressを利用している場合を考えてみましょう。
Private IP Addressは、 そのままインターネット上で グローバルな送信元アドレスとして利用するものではありません。
どうやってInternetと通信しているのでしょうか?
そこで登場するのが、 次の記事で学習する NAT / NAPT です。
まとめ
Static Routingは 管理者が経路を手動で設定する方式
Dynamic Routingは Routing Protocolを利用してRouter同士が経路を学習する方式
Staticは小規模・固定的な構成で扱いやすく、 Dynamicは 大規模・冗長構成・変更の多いNetwork でメリットが大きい
Dynamic Routingでは障害などの変化に応じて Routeを再計算し収束 できる
実際のNetworkでは StaticとDynamicを組み合わせて利用する ことも多い
次は「NAT・NAPTとは?IPアドレス変換を理解する」を学びましょう
ここまでで、 RouterがRouteを学習し、 異なるNetworkへパケットを転送する仕組みを理解しました。
次は、 192.168.x.xや10.x.x.xなどのPrivate IP Addressを使う端末が、 どのようにInternetと通信しているのか を学習します。
NAT・NAPTによる IPアドレスとポート番号の変換 を理解すると、 家庭用Routerや企業Firewallが行っている通信処理も 理解しやすくなります。
NAT・NAPTとは?IPアドレス変換を理解する →
