読者です 読者をやめる 読者になる 読者になる

底辺エンジニアの備忘録

30過ぎて、記憶力低下が著しい為、メモ代わりにしていく予定。 自身のスキルが低いので、内容の正確さは保障できません・・・OTL

ECMPでの負荷分散(CEF)

cisco

CEFの整理

 

f:id:klock_3rd:20150311010155p:plain

上記構成で、ループバック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での負荷分散は、フロー単位ではなく、パケット単位でも分散可能だけどその場合はパケット追い越しが発生する可能性もあるため、今回は省略