DUALの動作

 EIGRPで使用されているルーティング・アルゴリズムは,DUAL(Diffusing Update ALgorithm)と呼ばれています。ディスタンスベクタ型アルゴリズムであるベルマン-フォードアルゴリズムを改良したもので,コンバージェンスが高速で,かつリソースの消費が少ないという特徴があります。

 EIGRPでは,隣接ルータとHelloパケットを交換することで隣接関係を結びます。ルーターは,隣接関係が成立すると,その隣接ルータ(ネイバー)の情報をネイバーテーブルに保持します。そのネイバーとは経路情報を交換し,その情報をEIGRPで使う経路表(トポロジーテーブル)に保存しておきます。その後は,経路の変更があったときに,変更部分だけをアップデートパケットとしてやりとりします。

 EIGRPアップデートは,ネイバーテーブルに記載されているネイバーのみに送ります。つまり,直接つながっているルータだけアップデートを送ります。EIGRPが「拡張ディスタンスベクタ型」と呼ばれるのは,ディスタンスベクタ型と同じこうしたアップデートの方法によるものです。加えてDUALでは,ディスタンスベクタ型の弱点であるルーティングループを防ぐ効果もあります(詳しくは後述)。

サクセサの選出

 EIGRPでは最適経路であるサクセサをネイバーからのアップデートにより生成されるトポロジーテーブルから選出します。その際に,2つの値を使用して,サクセサを選出します。

  • アドバタイズドディスタンス(AD:Advertised Distance)
    • ネイバーが通知してきたメトリック。つまりネイバーとあて先ネットワークとのメトリックのこと。レポーテッドディスタンス(RD:Reported Distance)とも呼ばれる
  • フィージブルディスタンス(FD:Feasible Distance)
    • あて先ネットワークまでのメトリック。ADにADを通知してきたネイバーへメトリックを加算する

 サクセサが選出された後,フィージブルサクセサ(FS)が選出されます。フィージブルサクセサは,「フィージビリティコンディション(FC:Feasibility Condition)」と呼ばれる条件を満たす経路になります(図1)。フィージビリティコンディションとは,以下の条件です。

  • フィージビリティコンディション
    • サクセサのFD > FS候補のAD

 図1 サクセサの選出

 フィージビリティコンディションというルールは,ループの防止のために存在します。このルールがあれば,自分が通知した最適経路が自分に戻ってきたとしても,フィージビリティコンディションが満たされることはありません。こうして,ループしている可能性のある経路が採用(FSになる)されることを防いでいるのです(図2)。

 図2 フィージビリティコンディション

 CiscoルータでサクセサとFSを確認したい場合は,show ip eigrp topologyコマンドを使用して,トポロジテーブルを表示させると確認できます(図3)。

  • # show ip eigrp topology ・・・ トポロジテーブルの確認。サクサセとFDのみ表示
  • # show ip eigrp topology all-links ・・・ ネイバーテーブルの確認。全経路表示

 図3 show ip eigrp topology
show ip eigrp topology