インターネット上には無数のネットワークがあります。それら全部の経路をルーティングテーブルに一つずつ書くのは現実的でしょうか?
たとえば社内ネットワークの出口ルーターは、インターネット上のありとあらゆる宛先への経路を知っている必要があるのでしょうか。もっと効率のいい書き方がないか、考えてみてください。
「それ以外は全部こっち」というデフォルトルート
前回、スタティックルートは宛先ネットワークを一つずつ指定して設定すると学びました。しかし、インターネットのように宛先が無数にある場合、すべてを個別に書くのは非現実的です。そこで使われるのがデフォルトルートです。
これは、家の郵便受けに入っている「その他のお知らせは全部こちらへ」という案内板のようなものです。ルーティングテーブルの中に一致するルートが一つも見つからなかったとき、最後の受け皿として使われるのがデフォルトルートです。
デフォルトルートの設定
デフォルトルートは、宛先ネットワークとサブネットマスクの両方を 0.0.0.0 にして設定します。
Router(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1
0.0.0.0 0.0.0.0 は「どんな宛先アドレスでも、どんなビットでも一致とみなす」という意味を持つ、いわばワイルドカードのようなネットワーク指定です。このコマンドは「他にどのルートにも一致しなかったパケットは、すべて 203.0.113.1 へ送りなさい」という指示になります。
show ip route では、このデフォルトルートは S* というコードで表示されます。
Router# show ip route
Gateway of last resort is 203.0.113.1 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 203.0.113.1
S* の * は「これが候補デフォルトルートである」ことを示し、Gateway of last resort(最終手段のゲートウェイ)として一番上に表示されます。企業ネットワークの出口ルーター(インターネットへの入り口)でよく使われる設定です。
バックアップ経路を用意する:フローティングスタティック
回線が二重化されている環境では、「普段はルートAを使い、ルートAが落ちたときだけルートBに切り替える」という構成にしたいことがあります。これを実現するのがフローティングスタティックルートです。
考え方はシンプルで、バックアップにしたいスタティックルートに、わざとAD値を大きく設定します。通常のスタティックルートのAD値は1ですが、これより大きい値を明示的に指定するのです。
Router(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1
Router(config)# ip route 0.0.0.0 0.0.0.0 10.0.0.2 5
1行目は通常のデフォルトルート(AD1)、2行目がフローティングスタティック(AD5)です。ip route コマンドの末尾に数値を追加すると、それがそのルートのAD値として使われます。
AD値は数字が小さいほど優先されるルールでしたね。普段はAD1のルート(203.0.113.1経由)が優先されてルーティングテーブルに載ります。しかし、そのネクストホップへの到達性が失われる(回線障害など)と、AD1のルートはルーティングテーブルから消え、代わりにAD5のフローティングスタティック(10.0.0.2経由)が有効になり、自動的にバックアップ経路へ切り替わります。
フローティングスタティックのポイント
フローティングスタティックが機能する条件は次の通りです。
- バックアップにしたいルートのAD値を、メインルートのAD値より大きく設定する
- メインルートが使えなくなった(ネクストホップに到達できなくなった)ときだけ、自動的にルーティングテーブルに現れる
- メインルートが復旧すれば、AD値の低いメインルートが再び優先される
「なぜわざわざAD値を上げるのか」がポイントです。AD値が同じだと2つのルートが両方ともルーティングテーブルに載ってしまい、意図しない負荷分散が起きたり、経路の優先関係があいまいになったりします。AD値を意図的にずらすことで、「主」と「副」の関係をはっきりさせているわけです。
ip route 0.0.0.0 0.0.0.0 10.0.0.2 5 というコマンドの末尾の「5」は何を意味しますか?
答えを見る
答えはそのスタティックルートのアドミニストレーティブディスタンス(AD値)を5に設定するという意味です。通常のスタティックルートのAD値は1ですが、末尾に数値を指定することでAD値を上書きできます。これによりバックアップ用のフローティングスタティックルートを作ることができます。
まとめると「受け皿」と「控えの経路」
デフォルトルート(ip route 0.0.0.0 0.0.0.0 ネクストホップ)は、一致するルートが無いときの最後の受け皿です。フローティングスタティックは、AD値をあえて大きくすることで、メイン経路が落ちたときだけ機能するバックアップ経路を作る技です。どちらも「ip route」コマンド一つの応用でできることを押さえておきましょう。
フローティングスタティックルートを正しく機能させるためには、バックアップ用ルートのAD値をどう設定すればよいでしょうか?
答えを見る
答えはメインルートのAD値よりも大きい値に設定することです。AD値は小さいほど優先されるため、メインルートが生きている間はAD値の小さいメインルートが使われ、メインルートが使えなくなったときだけAD値の大きいバックアップルートがルーティングテーブルに現れて使われるようになります。
試験でのポイント
CCNA試験では、デフォルトルートの書式(宛先・マスクともに 0.0.0.0)と show ip route での S* 表示、Gateway of last resort という文言を対応させて覚えておくことが大切です。フローティングスタティックについては、「なぜAD値を上げるのか」という理屈まで理解しておくと、コマンドの末尾に付く数値の意味を問う問題にも対応できます。AD値を下げると誤解する選択肢がひっかけとしてよく登場するので注意しましょう。
デフォルトルートは0.0.0.0 0.0.0.0で「それ以外全部」を受け止める設定。フローティングスタティックはAD値をわざと上げてバックアップにする技。この2つはセットで狙われやすいから要チェックだよ。次は、ここまでのスタティックルートから離れて、動的ルーティングプロトコルの全体像を見ていくよ。