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