Tech Karte::

できることをひとつずつ。

動的ルーティング(概要編)

これまでは端末間のルーティングを学習し手動で設定していましたが、今回は動的ルーティングを学習し仮想環境上で設定・検証します。


ルーティングの概要

ルーティングとは

パケット(通信データ)を宛先ホスト(端末)に届けるために最適な経路を選択して転送するプロセスのことを指す。
ルータは内部にルーティングテーブル(経路情報)を保持しており、受信したパケット内の宛先IPアドレスとルーティングテーブルから最適な経路選択・転送を行う。

ルーティング方法

ルータがルーティングテーブル(経路情報)を学習する方法には以下の3つがある。

  • 直接接続ルートを使用する

ルータに物理的に接続されているネットワークを指す。
インターフェイスIPアドレスサブネットマスクを設定すると自動的に登録される。

  • スタティックルートを使用する

管理者が手動で経路情報を設定する。

  • ダイナミックルートを使用する

ルーティングプロトコルによって経路情報が自動的にルーティングテーブルに登録される。



ダイナミックルーティングの概要

ルータでルーティングプロトコルを有効にすると、経路情報を他のルータと交換する。
各ルータは交換した情報を基に最適経路を選択し、ルーティングテーブルに学習する。
また、経路に障害が発生しネットワーク構成に変更が生じた場合には変更情報をルータ間でアドバタイズ(通知)し、ルーティングテーブルを更新する。

スタティック(静的)ルーティングに比べ自動化される部分が多く、管理者の負担は削減できる。
大規模ネットワークで特に効果的だが機器への負荷が大きい。

ルーティングプロトコルの概要

プロトコルの種類

  • IGP(Interior Gateway Protocol):AS内部ルーティングに使用する。
  • EGP(Exterior Gateway Protocol):AS外部ルーティングに使用する。(※CCNAの学習範囲を超えるため省略)

※ASとは
AS(Autonomous System):自律システムのこと。
同じ運用ポリシーの下で動作するネットワーク(ルータ)の集合を指す。
大規模ネットワークをASによって小さく分割することで管理が容易になるメリットがある。

メトリックによる最適経路選択

ある特定の宛先ネットワークに対して複数の経路が存在する場合、ルーティングプロトコルは最適経路を決定するため経路ごとにメトリックという数値を生成し、この数値が最小の経路を最適経路とみなす。

IGP分類

IGPは、ルーティングアルゴリズムの違いにより次に分類される。

ルーティングテーブルの情報を交換し、距離(Distance)方向(Vectorに基づいて最適経路を決定する方式。
受信したパケットが宛先に到達するために「どれだけの距離(ルータのホップ数)が必要か」、「どのネクストホップ(ルータ)を経由するか」を基準に最適経路を選択する。

ディスタンスベクターの問題点・解決法

 - 無限カウント
あるネットワークに障害が発生したためにそのネットワークへの誤った経路情報がルータ間で交換され、ルーティングテーブルのアップデート送信が続き、メトリック値が増え続ける状態。
各ディスタンスベクタープロトコルではメトリック値に最大値を定義することが可能。
経路情報のメトリック値が上限に達した場合、他のルータへのアドバタイズ(通知)が停止する仕組みになっている。

 - ルーティングループ
メトリックの上限値を定義することで無限カウントは防止できるが、誤った経路情報がルータ間で交換されるのを防ぐことはできない。
複数のルータが到達不能なネットワークへの誤った経路情報を学習した状態で、メトリックが最大になるまでに到達不能ネットワーク宛のパケットを受信した場合、ルーティングループが発生する。

解決法1:スプリットホライズン
あるインターフェイスから受信した経路情報を同じインターフェイスから送り返さない手法。
「経路情報は、それを受け取った方向に返しても意味がない」という考えに基づく。

解決法2:ルートポイズニング
リンク障害を検知したルータがメトリックを最大値(∞)にして、経路情報がダウンしたことを通知する手法。

解決法3:ポイズンリバース
メトリックが最大値の経路情報を受信した場合、同じインターフェイスから当該経路情報を最大値のまま送り返す手法。

通常はスプリットホライズンのルールが適用されるため同じインターフェイスからアドバタイズ(通知)することはないが、メトリックが最大値(ポイズン)の経路情報を受信した場合はスプリットホライズンよりも優先してメトリックが最大値の情報を返送(リバース)する。

解決法4:ホールドダウンタイマー
ダウンした経路情報が誤って再登録されるのを防止する待ち時間を作る機能。
タイマーがセットされた経路は、その期間中「Possibly down」情報が付加される。ただし、ルータはダウンした経路ネットワーク宛のパケットを受信した場合でも通常のルーティングを行う。

タイマーセット期間中に、元のメトリック値もしくはそれよりメトリック値が大きい(優先度が低い)経路情報を受信した場合はその情報を無視する。
元のメトリックより値が小さい(優先度が高い)経路情報を受信した場合は、「より適切な経路情報」と判断しホールドダウンタイマーを解除し、受信した経路情報をルーティングテーブルに格納する。

解決法5:トリガードアップデート
ディスタンスベクタープロトコルでは、ネットワーク構成に変更がない場合も定期的にアップデートを送信する。

トリガードアップデートは定期アップデートを待たずネットワーク構成の変更を検知すると、即時にアップデートを送信する機能。
この機能を利用することで通常よりもコンバージェンス(ネットワーク内経路情報学習の収束)
高速化されるが、ルータからルータへ段階的に伝播するため、以下の問題点もある。

1:全てのルータに瞬時にトリガードアップデートが届くわけではないため、トリガードアップデート受信前に定期アップデートを送信してしまう可能性がある。
2:トリガードアップデートを含むパケットが転送途中で破棄・破損する可能性があり、適切なルータへの到達が保証されない。


上記の問題を解決するために、トリガードアップデートはホールドダウンタイマーと組み合わせて使用される。


  • リンクステート型:OSPF・IS-IS

各ルータが保持するインターフェイスのリンク(Link)の状態(State)を交換し、そのリンク情報に基づいて最適経路を決定する方式。
各ルータはネットワーク全体のトポロジ(構成)を把握し、SPF(Shortest Path First)というアルゴリズムを使用して宛先ごとの最適経路を計算する。

  • ハイブリッド型:EIGRP

ディスタンスベクター型とリンクステート型、両方の機能を合わせたルーティングアルゴリズム

EIGRP(Enhanced IGRP)は、ディスタンスベクタープロトコルのIGRPにリンクステートの機能をいくつか付加したもの。