ネットワーク上のすべてのデバイスのルーティングテーブルを手動で設定するのは、非常に面倒な作業になります。このプロセスを自動化するために、動的なルーティングプロトコルを使用します。これらのプロトコルにより、ルーターはさまざまなルートを学習し、ルーティングテーブルに構築し、それに応じてパケットを転送することで、ネットワークの変更に自動的に適応できます。ルーティングプロトコルには、ディスタンスベクタとリンクステートの 2 つの主要なタイプがあります。
ディスタンスベクタプロトコル
ディスタンスベクタプロトコルは、「噂によるルーティング」の原則に基づいて動作します。各ルーターは、定期的に自身のルーティングテーブル全体を直接接続されているネイバーと共有します。ルーターがネイバーからルーティングテーブルを受信すると、新しいルートやより良いルートがあれば自身のテーブルを更新します。「距離」は通常、ホップカウントなどのメトリックで測定されます。この方法は単純ですが、コンバージェンスが遅くなる可能性があり、ルーティングループの影響を受けやすいです。ディスタンスベクタプロトコルの例として、ルーティング情報プロトコル(RIP)があります。
リンクステートプロトコル
対照的に、リンクステートプロトコルは、各ルーターにネットワークトポロジの完全なマップを提供します。ルーターはルーティングテーブル全体を共有する代わりに、自身のリンクの状態(例:接続されているネイバーと接続のコスト)に関する情報をネットワーク上の他のすべてのルーターに送信します。この情報を使用して、各ルーターはネットワークの同一のマップを独立して構築し、すべての宛先への最適なパスを計算します。このアプローチは、ディスタンスベクタプロトコルよりも高速なネットワークコンバージェンスにつながり、スケーラビリティも高くなります。例として、Open Shortest Path First(OSPF)プロトコルがあります。
ネットワークコンバージェンス
プロトコルについてさらに詳しく説明する前に、ルーティングにおけるネットワークコンバージェンスとして知られる重要な概念を理解することが重要です。ルーティングプロトコルを使用する場合、ルーターは情報を収集および交換するために通信します。コンバージェンスとは、すべてのルーターがネットワークトポロジについて一貫性があり正確なビューを持っている状態を指します。すべてのルーティングテーブルがネットワーク全体を正しくマッピングしている場合、ネットワークは「コンバージェンスした」と見なされます。リンクダウンなど、変更が発生した場合、すべてのルーターが変更を学習し、ルーティングテーブルを更新するまで、コンバージェンスは一時的に失われます。