ECMPでの負荷分散(CEF)
CEFの整理
上記構成で、ループバックIF&Faの全てでOSPFを有効にすると、対向先のループバックIFへの経路はOSPFによるECMPとなる。
R1→loop0(1.1.1.1/32),loop1(1.1.1.2/32)
R2→loop0(2.2.2.1/32),loop1(2.2.2.2/32)
<R1のルーティングテーブル>
R1#sho ip route ospf
2.0.0.0/32 is subnetted, 2 subnets
O 2.2.2.2 [110/2] via 10.1.2.2, 00:19:14, FastEthernet0/1
[110/2] via 10.1.1.2, 00:19:14, FastEthernet0/0
O 2.2.2.1 [110/2] via 10.1.2.2, 00:19:14, FastEthernet0/1
[110/2] via 10.1.1.2, 00:19:14, FastEthernet0/0
R1→R2へPingを打った後、IFのカウンタを確認
R1#ping 2.2.2.2 source 1.1.1.1 repeat 50
R1#sho int stats
FastEthernet0/0
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 52 5888 54 308
Route cache 0 0 0 0
Total 52 5888 54 308
FastEthernet0/1
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 2 188 4 6265
Route cache 0 0 0 0
Total 2 188 4 6265
→Fa0/1に偏っているのがわかる。
show ip routeの結果では、等コストロードバランスになっているが送出IFがFa1に偏っているのはCEFの機能によるもの。
R1#show ip cef exact-route 1.1.1.1 2.2.2.2
1.1.1.1 -> 2.2.2.2 : FastEthernet0/0 (next hop 10.1.1.2)
送信元が1.1.1.1、あて先2.2.2.2の場合はFa0/0から送出することがわかる。
実際、Pingコマンド実施時、loop0(1.1.1.1)を指定して実施している。
では、この状態であて先を2.2.2.1に変えてみる。
R1#show ip cef exact-route 1.1.1.1 2.2.2.1
1.1.1.1 -> 2.2.2.1 : FastEthernet0/1 (next hop 10.1.2.2)
→おそらくFa0/1側のカウンタがUpすると想定
R1#ping 2.2.2.1 source 1.1.1.1 repeat 50
R1#sho int stats
FastEthernet0/0
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 2 188 4 308
Route cache 0 0 0 0
Total 2 188 4 308
FastEthernet0/1
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 51 5794 54 6008
Route cache 0 0 0 0
Total 51 5794 54 6008
→想定どおり
CEFでの負荷分散は、フロー単位ではなく、パケット単位でも分散可能だけどその場合はパケット追い越しが発生する可能性もあるため、今回は省略