全然わからない。一回舐めたはずだが・・・K値の意味を調べた記憶はあるがすっかり忘れている。 FDとADの意味がさっぱりわからない。ADは何の略かすらわからない。
ADは Advertised Distanceだった。 「AdvertiseされたDistance」だから、next hopから宛先までの「距離」。なんとなくわかる。
FDはFeasible Distance。 Feasibleとは、「実行可能な」「もっともらしい」「適して、便利で」などの意味。 「ネクストホップルータと宛先間のコストとローカルルータとネクストホップルータ間のコストの合計」 ・・・。なんだこの日本語。怒りすら覚える。
よく読めば、ADとFDというのがどういう意味なのかはわかる。しかし、どうしてADとかFDという考えを持ち出してきたのか、それらを使って何をするのか、ということが知りたい。
そもそも、ルーティングというのはもっともコストの低いnext hopを探すことではないのか。つまり「FD」が最小となるnext hopを探せばよいのだ。しかし、どうしてEIGRPだけにFDという概念が登場するのか。OSPFやRIPにはどうして出てこないのか。
さらに、ADは何か。ADとFDの差は、自身とnext hopの間のコストである。ADが最小のnext hopが存在しても、そこへ至るまでのコストが膨大であればnext hopとしては採用しない。それは当然のことだ。
だったら最初からFDを計算して最小のnext hopを探せばよい。では、ADという概念はどういうときに必要となるのか。 ちなみにFDが最小となるnext hopはサクセサと呼ばれる。普通のルーティングでいう、next hopだ。 EIGRPでは、サクセサの代替としてフィージブルサクセサというものを選出する。 フィージブルサクセサは、ADがFDより小さいルータである。 だから、フィージブルサクセサが存在しないこともありえる。
「AD<FDでなければならない」というのはどこにでも書いてあるが、なぜそうなのか説明している人はほとんどいない。 「『AD<FD』でないルータをフィージブルサクセサ(代替経路)とすると、ルーティングループが発生する」と書いている人はちらほらいるが、それでも、「なぜループが発生するのか」を説明している人がいない。
たとえば下記のような構成があったとする。
10 100 A---B---(略)--+--D-| 100.0.0.0/24 | | |10 120 | +---C---(略)--+
Aから、Dが持っている 100.0.0.0/24 へ到達したい。
BからDまでのコストは100、CからDまでのコストは120。
AからBまでのコストは10で、サクセサはBで、FDは110となる。
CのADは120なので、フィージブルサクセサにならない。
では、Cがフィージブルサクセサになると、どんな不都合があるのか。 どうしてCはフィージブルサクセサにならないのか。
「AD>FDだから」ではなくて、「どうしてAD>FDだと困るのか」ということである。
答え。
ルータCからDへの経路は二つ存在する。すなわち図では略されているCからDへの経路と、C-A-B-(略)-Dという経路である。
C-(略)-Dのコストは120。そして、C-A-B-Dのコストもまた120なのである。
等コストの経路が2本あったらどうなるか。どうなるんだ?先に登録された経路が採用されるのか? とにかく、CがAにパケットを返してループが発生することがありうる。
C-(略)-Dのコストが130だったらもっとわかりやすい。 この場合はC-A-B-Dのコストが120だから、確実にCはAへパケットを返す。 かくしてループが発生する。
だから、 AD>FDとなるルータをフィージブルサクセサとして選択できない、というわけだ。
もっと正確に言うと、Cから見たAのADは、Aから見たDへのFDである。 だから、比較するのは「AにとってのFD」と「CにとってのAのAD」となる。 これをAから見ると「FDとAのAD」の比較になる。 「AのFD」はすなわち「CにとってのAのAD」となる。
さっきの図では、CのフィージブルサクセサがAになるから、 C---(略)の経路がダウンしたら、CはD宛のパケットをAに転送する。 同時にA---B間がダウンしたら、AもCへ転送する。 A-C間でループというかピンポンが発生する。
これは多分、「ちょっと考えればわかることだからわざわざ説明しない」だけなのに「何か理由があるんだ」と思い込まれてしまっただけだと思う。とくに資格試験の参考書やWEBページなら、「とりあえず受かればいい」となるから。
・・・こんな感じでやっていかないと、全然頭に入らない。
もう受験予約もしてしまったのに・・・間に合わないぞ・・。