ルーティングループは、特にコンピュータネットワークなど、さまざまな種類のネットワークでよく見られる問題です。ルーティングアルゴリズムの動作にエラーが発生すると、結果としてノードのグループ内で特定の宛先へのパスがループを形成します。[ 1 ]
最も単純なケースでは、サイズ2のルーティングループにおいて、ノードAは、ある宛先(Cとします)への経路が隣接ノードであるノードBを経由すると考えています。同時に、ノードBは、Cへの経路がノードAから始まると考えています。
したがって、C宛てのトラフィックがAまたはBのいずれかに到着すると、その動作を防止する何らかのメカニズムが存在しない限り、トラフィックはAとBの間を無限にループすることになる。

例えば、この図では、ノード A はノード B を介してノード C にデータを送信しています。ノード B と C の間のリンクがダウンし、B がまだノード A にその障害を通知していない場合、ノード A はリンク ABC が動作しており、コストが最も低いと想定してデータをノード B に送信します。ノード B はリンクが切断されたことを認識し、ノード A を介してノード C に到達しようとして、元のデータをノード A に送り返します。さらに、ノード A はノード B から自身が送信したデータを受け取り、ルーティング テーブルを参照します。ノード A のルーティング テーブルは、ノード B を介してノード C に到達できると示します (まだ障害を通知されていないため)。そのため、ノード A はデータをノード B に送り返し、無限ループが発生します。このルーティング ループの問題は、2 ノード ループとも呼ばれます。
ここで、AからCへのリンクとBからCへのリンクが同時に消滅した場合(ノードCがクラッシュした場合など)に何が起こるかを考えてみましょう。AはCがB経由で到達可能であると信じ、BはCがA経由で到達可能であると信じます。EGPのような単純な到達可能性プロトコルでは、ルーティングループは永久に継続します。
ルーティング情報プロトコル(RIP)のような単純な距離ベクトルプロトコルでは、Cのメトリックが無限大に達するまでループが続きます( RIPでパケットが通過できるルーターの最大数は15です。16は無限大とみなされ、パケットは破棄されます)。
OSPFやIS-ISなどのリンクステートルーティングプロトコルでは、新しいネットワークトポロジがルーティングエリア内のすべてのルータにフラッディングされるとすぐにルーティングループが解消されます。十分に信頼性の高いネットワークであれば、これは数秒以内に発生します。[ 2 ]
EIGRP、DSDV、Babelなどの新しい距離ベクトル型ルーティングプロトコルには、ループ防止機能が組み込まれています。これらのプロトコルは、ルーティングループが一時的であっても決して発生しないことを保証するアルゴリズムを使用しています。一方、RIPやIGRPなどの古いルーティングプロトコルは、最新のループ防止機能を実装しておらず、スプリットホライズン、ルートポイズニング、ホールドダウンタイマーなどの緩和策のみを実装しています。