このブログを検索

ラベル EIGRP の投稿を表示しています。 すべての投稿を表示
ラベル EIGRP の投稿を表示しています。 すべての投稿を表示

2023/11/24

EIGRPの集約

 



Ping-tのENARSI問題集、問題ID 25513, 25514

RAはno auto-summary(デフォルト)、RBとRCは auto-summaryが有効。


集約すると、集約したルータには集約した経路のnull0あての経路ができる。

集約するのは自身が接続しているネットワークのみで、RBはRAから受け取った集約されていない172.16.1.0/24 についてはそのまま広報する。


なぜRDがサクセサのFDより小さくないとフィージブルサクセサになれないのか再考

このことは以前考えて自分なりに解決した記憶があって、過去のエントリを見たら書いてあったが、いまひとつ釈然としないので再考してみた。

EIGRP固有の考えにサクセサとフィージブルサクセサというものがある。

サクセサというのは最短経路、フィージブルサクセサは最短経路の次に最短な経路、要は最短経路の代替経路のことである。

経路が最短であるかどうかは帯域幅と遅延(基本はこの2つ)など複数の要素を考慮してメトリックとして計算され、メトリックが最小となる経路が「最短」とされる。

それはOSPFやBGPなどと同様であるが、その代替経路まで選定するのがEIGRP固有である。

「代替経路なんてメトリックが最小の次に小さい経路なんだから別に何も難しくないじゃないか」

と思うのだが、EIGRPでは単にメトリックが最小の次に小さいだけではフィージブルサクセサとして選ばれない。フィージブルサクセサとなるには「その経路のFDがサクセサのRDより小さい」ことが条件となる。

※昔は Feasible DistanceとAdvertised Distanceと言っていたが、今は Advertised DistanceをReported Distanceと言うようになったようである。


なぜだろうか?




この構成で、AからEへのサクセサは A→B→Eであり、そのFDは110である。

フィージブルサクセサを選ぼうとして、候補に挙がるのが下記2つの経路であろう。

A→C→E (FD: 140)

A→D→E (FE: 150)

FD、つまり目的地までの距離はA→C→Eのほうが小さいが、こちらの経路はRDが130でありサクセサのFDより大きいためフィージブルサクセサになれない。

もしA→C→Eをフィージブルサクセサとしたらどうなるか。



AはCにパケットを転送する。CはCでEへの最短の経路を計算している。パッと見てCとEは理隣接しているのだからEが最短に決まっているだろうと思えるが、メトリックを見ると実はC→A→B→Eのほうが120であり、直接接続しているリンクのメトリック130より小さい。だから、CはAにパケットを戻すことになる。

AはBを経由してEに到達する経路が利用できなくなったのでCに転送したのであるが、そのことをCがAと同時に検知してAから受け取っていたRDを無効にする必要がある。それをする前にAからEあてのパケットを受け取っていたら、CはAにパケットを戻すことになるだろう。

ループが発生するのは多分このような場合だ。


つまり、AからEへのフィージブルサクセサと候補となる経路は最初に挙げた2つだけではなく、以下のような経路もあったのだ。


A→C→A→B→E

A→C→A→D→E

A→D→A→B→E

A→D→A→C→E


この問題についてはあまり詳しく述べられていることが少なく単に「ルーティングループが起こるから」としか書いていないのは、たぶん、厳密に説明しようとすると結構複雑な条件が必要になるからだと思う。



EIGRPのメトリック計算はそんなに難しくない

EIGRPのメトリック計算ってめんどくさそうで敬遠していたのだが、やっぱりちゃんと覚えないとだめだと思いあらためて確認したら、それほど複雑ではなかった。

基本的に、経路上の一番小さい帯域幅と、遅延の合計がわかれば計算できる。

インターフェースの帯域幅と遅延は、show interfaceで確認できる。


CMLのIOSvルータ

Bandwidth: 1000000 Kbit/sec(=1000Mbit/sec = 1Gbit/sec), Delay 10μsec





ASA5506

Bandwidth 1000 Mbps(=1Gbps), Delay 10μsec





Cisco892

Bandwidth: 100000 Kbit/sec(=100MKbit/sec), Delay 100μsec

あれ、GigabitEthernetなのに100M?




FastEthernetと同じ....







K値はメトリックを計算するときにかける係数、つまり重みだが、デフォルトでは帯域幅と遅延以外はゼロである。つまり、帯域幅と遅延以外の値はゼロになる。つまり、無視される。

そして、帯域幅と遅延にかけられる係数のデフォルト値は1、つまりそのままの値である。
だから、K値はとりあえず無視してよい。帯域幅は、大きいほど速い。つまり、目的の経路までに速く到達できる。帯域幅をそのまま足すと速いほど大きい値になってしまう。そこで、ある値を基準として、どれだけ小さいかを計算する。

複数のリンクを経る場合、たとえば1G→100M→1G→10G→10M→1G→1G という場合、一番遅いところを採用する。厳密にルータAからルータxへ到達する時間を測定するには経由するすべてのインターフェースの帯域幅を考慮しなければならないだろうが、eigrpのメトリック計算においてはそこまではしない。

1G→1G→1G→1G→1G→100M→1G→1G であっても、
100M→100M→100M→100M→100M→100M→100M→100Mであっても、
100Mが採用される。

ちなみにメトリックの正式な計算式はこうである。





うわぁ...という感じだが、先述のようにK1とK3以外はゼロなので、こうなる。





これでもまだちょっとメンドクサイが、よく見るとそんなに難しくない。

10^7 / Min Bandwidth というのは、

10^7 = 10000000 Kbit/sec で、= 10000Mbit/sec = 10Gbit/sec


「10Gを最小帯域幅で割った値」である。


割るといっても全部10^nなので、最小帯域幅が 1Gなら10で、100Mなら100。10Gなら1と、計算というほどの計算ではない。

ディレイも同様で1Gの場合10μsecだから1, 100Mの場合100μsecだから10。


























この構成でR5のルーティングテーブルを見ると




192.168.3.0/24, 192.168.4.0/24 のメトリックは3072である。
1Gのインターフェースを二つ経由するから、最小帯域幅は1G, 遅延の合計は 20、

10G/1G + 20/10 = 12 で、

256 * 12 = 3072

である。

経由するルータが3つ4つと増えても、
帯域幅が同じなら遅延だけ増やせばよい。
上記は1ホップ先だが、3ホップ先で経由するインタフェースは全部1Gのデフォルト設定であれば、
256*14 = 3584




2015/02/11

EIGRPの集約

前回OSPFのsummary addressコマンドで集約をおこなったが、
そもそもその経路はEIGRPルータから広報されている経路であった。

前回は自社ではOSPFルータしか設定できないという前提であったが、
EIGRPルータで集約する場合を考えてみよう。



R4

R4#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R4(config)#interface gigabitEthernet 2/0
R4(config-if)#ip summary-address eigrp 1 ?
  A.B.C.D  IP address

R4(config-if)#ip summary-address eigrp 1 10.0.0.0 ?
  A.B.C.D  IP network mask

R4(config-if)#ip summary-address eigrp 1 10.0.0.0 255.255.248.0
R4(config-if)#end
R4#
*Feb 11 14:33:39.611: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 20.0.1.254 (GigabitEthernet2/0) is resync: summary configured
*Feb 11 14:33:40.263: %SYS-5-CONFIG_I: Configured from console by console
R4#
R4#sho ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     4.0.0.0/32 is subnetted, 1 subnets
C       4.4.4.4 is directly connected, Loopback0
     20.0.0.0/24 is subnetted, 1 subnets
C       20.0.1.0 is directly connected, GigabitEthernet2/0
     10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
S       10.0.2.0/24 is directly connected, Loopback0
S       10.0.3.0/24 is directly connected, Loopback0
D       10.0.0.0/21 is a summary, 00:00:07, Null0
S       10.0.1.0/24 is directly connected, Loopback0
S       10.0.4.0/24 is directly connected, Loopback0
S       10.0.5.0/24 is directly connected, Loopback0




R1

R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback0
     100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       100.0.1.0/30 is directly connected, GigabitEthernet1/0
O IA    100.0.2.0/26 [110/2] via 100.0.1.2, 00:34:54, GigabitEthernet1/0
     20.0.0.0/24 is subnetted, 1 subnets
C       20.0.1.0 is directly connected, GigabitEthernet2/0
     10.0.0.0/21 is subnetted, 1 subnets
D       10.0.0.0 [90/51456] via 20.0.1.1, 00:00:16, GigabitEthernet2/0
R1#


ちなみに、R1もR4も、auto-summaryの設定はデフォルトのまま、つまり有効であったのだが、
10.0.x.0/24 は 10.0.0.0/8 に集約されていなかった。

どうも、再配送された経路は集約されないみたいだ・・・。

なんでかな・・・。



distance eigrp

R1から、R5のloopback 200.0.0.1へアクセスしたい。

R2とR3で、ospfとeigrpの相互redistributeをすればよい。


<R2>
router eigrp 1
 redistribute ospf 1 metric 1544 2000 255 1 1500
 network 10.1.0.0 0.0.0.255
 network 100.0.0.0 0.0.0.255
 auto-summary
!
router ospf 1
 log-adjacency-changes
 redistribute eigrp 1 subnets

<R3>
router eigrp 1
 redistribute ospf 1 metric 1000000 1 255 1 1500
 network 10.1.0.0 0.0.0.255
 auto-summary
!
router ospf 1
 log-adjacency-changes
 redistribute eigrp 1 subnets
 network 30.0.0.0 0.0.0.255 area 0
!
!

R1#ping 200.0.0.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 200.0.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/78/92 ms
R1#

pingは通るようになった。しかし、tracerouteしてみると、
低速なシリアルI/Fを経由してしまっている。

R1#traceroute 200.0.0.1

Type escape sequence to abort.
Tracing the route to 200.0.0.1

  1 100.0.0.254 36 msec 60 msec 64 msec
  2 20.0.0.2 60 msec 64 msec 64 msec
  3 40.0.0.2 120 msec 92 msec 92 msec
R1#

R2のルーティングテーブルを見てみる。

R2#sho ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       100.0.0.0/24 is directly connected, FastEthernet0/0
D       100.0.0.0/8 is a summary, 00:00:10, Null0
     200.0.0.0/32 is subnetted, 1 subnets
O       200.0.0.1 [110/66] via 20.0.0.2, 00:00:12, Serial3/0
     20.0.0.0/24 is subnetted, 1 subnets
C       20.0.0.0 is directly connected, Serial3/0
     40.0.0.0/24 is subnetted, 1 subnets
O       40.0.0.0 [110/65] via 20.0.0.2, 00:00:12, Serial3/0
     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       10.0.0.0/8 is a summary, 00:00:10, Null0
C       10.1.0.0/24 is directly connected, GigabitEthernet1/0
     30.0.0.0/24 is subnetted, 1 subnets
O       30.0.0.0 [110/65] via 20.0.0.2, 00:00:13, Serial3/0


R2はOSPFとEIGRPを両方動作させているいわゆるASBRであり、二つのプロトコルから
経路を学習している。
そして、200.0.0.1への経路はOSPFで学習した、next hopが20.0.0.2の経路である。

EIGRPで学習した経路情報を見てみる。

R2#show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(100.0.0.254)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 10.0.0.0/8, 1 successors, FD is 2816
        via Summary (2816/0), Null0
P 10.1.0.0/24, 1 successors, FD is 2816
        via Connected, GigabitEthernet1/0
P 20.0.0.0/24, 1 successors, FD is 2169856
        via Redistributed (2169856/0)
        via 10.1.0.2 (3072/2816), GigabitEthernet1/0
P 30.0.0.0/24, 1 successors, FD is 2169856
        via Redistributed (2169856/0)
        via 10.1.0.2 (3072/2816), GigabitEthernet1/0
P 40.0.0.0/24, 1 successors, FD is 2169856
        via Redistributed (2169856/0)
        via 10.1.0.2 (3072/2816), GigabitEthernet1/0
P 100.0.0.0/8, 1 successors, FD is 28160
        via Summary (28160/0), Null0
P 100.0.0.0/24, 1 successors, FD is 28160
        via Connected, FastEthernet0/0
        via 10.1.0.2 (3072/2816), GigabitEthernet1/0

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 200.0.0.1/32, 1 successors, FD is 2169856
        via Redistributed (2169856/0)
        via 10.1.0.2 (3072/2816), GigabitEthernet1/0

R2#

EIGRPでも200.0.0.1/32への経路は学習されているが、
ルーティングテーブルに載らない。

これは、ルーティングテーブルに載せる経路を選択するときに最初に比較されるAdministrative Distanceが、
OSPFの経路は110、EIGRPの外部経路は170で、
OSPFの経路が採用されるからである。

そこで、EIGRPの外部経路のdistance値を、110より小さい値に変更する。

R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#router eigrp 1
R2(config-router)#distance ?
  <1-255>  Administrative distance
  eigrp    IP-EIGRP distance

R2(config-router)#distance eigrp ?
  <1-255>  Distance for internal routes

R2(config-router)#distance eigrp 90 ?
  <1-255>  Distance for external routes

R2(config-router)#distance eigrp 90 105
R2(config-router)#end
R2#
*Feb 11 11:25:52.463: %SYS-5-CONFIG_I: Configured from console by console
R2#
R2#
*Feb 11 11:26:01.431: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.0.2 (GigabitEthernet1/0) is down: route configuration changed
*Feb 11 11:26:01.443: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 100.0.0.1 (FastEthernet0/0) is down: route configuration changed
R2#
*Feb 11 11:26:04.091: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 100.0.0.1 (FastEthernet0/0) is up: new adjacency
*Feb 11 11:26:04.747: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.0.2 (GigabitEthernet1/0) is up: new adjacency
R2#


すると、EIGRPの二つのneighborが一度ダウンして再度UPする。

変更後のR2のルーティングテーブルを見てみる。

R2#
R2#sho ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       100.0.0.0/24 is directly connected, FastEthernet0/0
D       100.0.0.0/8 is a summary, 00:14:28, Null0
     200.0.0.0/32 is subnetted, 1 subnets
D EX    200.0.0.1 [105/3072] via 10.1.0.2, 00:00:13, GigabitEthernet1/0
     20.0.0.0/24 is subnetted, 1 subnets
C       20.0.0.0 is directly connected, Serial3/0
     40.0.0.0/24 is subnetted, 1 subnets
D EX    40.0.0.0 [105/3072] via 10.1.0.2, 00:00:13, GigabitEthernet1/0
     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       10.0.0.0/8 is a summary, 00:00:13, Null0
C       10.1.0.0/24 is directly connected, GigabitEthernet1/0
     30.0.0.0/24 is subnetted, 1 subnets
D EX    30.0.0.0 [105/3072] via 10.1.0.2, 00:00:13, GigabitEthernet1/0
R2#

R2#


200.0.0.1への経路として、D EXつまりEIGRPで学習した外部経路が採用されており、
そのnext hopは 10.1.0.2である。

R1からのtracerouteの結果も変わった。

R1#traceroute 200.0.0.1

Type escape sequence to abort.
Tracing the route to 200.0.0.1

  1 100.0.0.254 44 msec 64 msec 64 msec
  2 10.1.0.2 92 msec 92 msec 64 msec
  3 30.0.0.2 64 msec 124 msec 16 msec
  4 40.0.0.2 116 msec 44 msec 40 msec

R1#



では、EIGRPのdistanceを変更せずに、OSPFのdistanceを大きくしても、
同じことができるのではないか?


R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#router ospf 1
R2(config-router)#distance ?
  <1-255>  Administrative distance
  ospf     OSPF distance

R2(config-router)#distance ospf ?
  external    External type 5 and type 7 routes
  inter-area  Inter-area routes
  intra-area  Intra-area routes

R2(config-router)#distance ospf intra-area 200
R2(config-router)#end
R2#
*Feb 11 11:39:58.407: %SYS-5-CONFIG_I: Configured from console by console
R2#
R2#
R2#
R2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       100.0.0.0/24 is directly connected, FastEthernet0/0
D       100.0.0.0/8 is a summary, 00:28:18, Null0
     200.0.0.0/32 is subnetted, 1 subnets
D EX    200.0.0.1 [170/3072] via 10.1.0.2, 00:00:11, GigabitEthernet1/0
     20.0.0.0/24 is subnetted, 1 subnets
C       20.0.0.0 is directly connected, Serial3/0
     40.0.0.0/24 is subnetted, 1 subnets
D EX    40.0.0.0 [170/3072] via 10.1.0.2, 00:00:11, GigabitEthernet1/0
     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       10.0.0.0/8 is a summary, 00:01:01, Null0
C       10.1.0.0/24 is directly connected, GigabitEthernet1/0
     30.0.0.0/24 is subnetted, 1 subnets


できる・・・。

OSPFのデフォルトのAD値は110で、外部も内部も同じであるが、
変更は external, inter-area, intra-area それぞれでおこなえる・・・というのは
今初めて知った・・・・。







2014/10/23

行き詰まり

最近行き詰っている。

ルーティングとは何か?ルータとは何か?インターネットとは何か?

TCP/IPとは?ウェブとは?クラウドとは?L3スイッチとは?

BGPとは?OSPFとは?

冗長?経路?アドレス?


一応、どんなものでどんな風に使われどんな風に設定しどんな風に動くのかはなんとなく理解している。

しかし、なぜこうでなくてはならないのか、ほかにもっといい方法がないのか、とか、

どうしてOSPFなのか、どうしてBGPなのか、

なぜ冗長化するのか、なぜcatalystなのか、nexusなのか、という、根拠というか理由というか、
動機というのか、そういうものがわからない。



そもそも、ネットワークとはなんだろう。

そんなことすら考える。


ネットワークとは、「接続」のことか。

一番単純なネットワークは、2点間の間を結ぶことだ。

糸電話のような。


「通信」とはなにか。「接続」と「通信」の何が違うのか。

ルーティングとスイッチングとは、それぞれどういうことか。


両方「ネットワーク」に分類されるが、違うものである。

よく言われるのはL3(えるさん)、L2(えるに、えるつー)であるが、
果たしてそれらはそれぞれどういうものなのか。

本当にみんなわかっているのか?



1秒の通信断が発生すると、何が起きるのか。
パケットが一つ落ちると、どうなるのか。


電車の中でスマホでウェブを見ている人に何が起きるのか。

家のパソコンでオンラインゲームをしている人にどんな影響があるのか。


メールを受信中に、メールサーバとクライアントの間のどこかで0.5秒の通信断が発生したら、
どうなるのか。



「TCPは再送機能があるがUDPにはないからドロップする」というが、
youtubeを視聴中にパケットが一個おちたらどうなるのか。


マルチキャストを利用した通信というかサービスは具体的に何か?


ウェブ(グーグル)で検索して得られる情報、資格試験受験のための参考書に書いてあること、
その他一般的に言われること、

それらと自分がインターネットやATMやiPhoneや漫画喫茶などで通信・サービスを利用していることの間に、もやもやとしたものがある。

もしかして私は重要な誤解をしている、あるいは重大な認識不足があるのではないか?

そんな気がしてならない。


とりあえず、「インターネットルーティング入門」という本を買った。

2010/08/31

BSCIの準備 EIGRP

マルチキャストで盛り上がりすぎた。 EIGRPに戻る。

全然わからない。一回舐めたはずだが・・・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ページなら、「とりあえず受かればいい」となるから。

・・・こんな感じでやっていかないと、全然頭に入らない。
もう受験予約もしてしまったのに・・・間に合わないぞ・・。