シナプスの技術部ネットワーク課の末吉です。
先日、内部ネットワーク構成の変更を行った際、iBGPにてトラフィックロードバランスを行う必要がでてきたため、BGPでECMPができるといいな。と思って確認した事を記事にしたいと思います。
ECMPとは?
ECMP(Equal Cost Multi Path)は等コストの経路が複数存在するときに、トラフィックを振り分ける機能のこと
BGPでECMPはできる?
できるようです。
BGP Best Path Selection Algorithm
BGP ECMPを試してみる
以下のパターンを確認してみます。
iBGPの場合 eBGPを同じASと複数ピアをしている場合 eBGPを異なるASと複数ピアをしている場合
検証環境
GNS3 IOS: 15.2(4)M11
iBGPの場合
元々やりたかったパターン。
ネットワーク構成
R1はR2/R3より192.168.100.0/24の経路を受け取っています。
設定前
R1#show ip bgp Network Next Hop Metric LocPrf Weight Path *>i 192.168.100.0 192.168.1.2 0 100 0 i * i 192.168.2.2 0 100 0 i R1#show ip route bgp B 192.168.100.0/24 [200/0] via 192.168.1.2, 00:00:56
192.168.100.0/24宛は「192.168.1.2」の1経路のみです
設定投入
R1(config)#router bgp 64496 R1(config-router)#maximum-paths ibgp 2
最大32まで設定できるようでした。
R1(config-router)#maximum-paths ibgp ? <1-32> Number of paths
設定後
R1#show ip bgp Network Next Hop Metric LocPrf Weight Path *>i 192.168.100.0 192.168.1.2 0 100 0 i *mi 192.168.2.2 0 100 0 i R1#show ip route bgp B 192.168.100.0/24 [200/0] via 192.168.2.2, 00:00:58 [200/0] via 192.168.1.2, 00:00:58
192.168.100.0/24宛は「192.168.1.2」、「192.168.2.2 」の2経路になりました。
eBGPを同じASと複数ピアをしている場合
ネットワーク構成
R1はR2と二つのBGPセッションを持ち、192.168.100.0/24の経路を受け取っています。
設定前
R1#show ip bgp Network Next Hop Metric LocPrf Weight Path *> 192.168.100.0 192.168.1.2 0 0 64497 i * 192.168.2.2 0 0 64497 i R1#show ip route bgp B 192.168.100.0/24 [20/0] via 192.168.1.2, 00:00:42
192.168.100.0/24宛は「192.168.1.2」の1経路のみです
設定
R1(config)#router bgp 64496 R1(config-router)#maximum-paths 2
最大で32まで設定できるようでした。
R1(config-router)#maximum-paths ? <1-32> Number of paths ibgp iBGP-multipath
設定後
#show ip bgp Network Next Hop Metric LocPrf Weight Path *> 192.168.100.0 192.168.1.2 0 0 64497 i *m 192.168.2.2 0 0 64497 i R1#show ip route bgp B 192.168.100.0/24 [20/0] via 192.168.2.2, 00:00:08 [20/0] via 192.168.1.2, 00:00:08
192.168.100.0/24宛は「192.168.1.2」、「192.168.2.2 」の2経路になりました。
eBGPを異なるASと複数ピアをしている場合
ネットワーク構成
R1はR2/R3より192.168.100.0/24の経路を受け取っています。
設定前
R1#show ip bgp * 192.168.100.0 192.168.2.2 0 0 64498 i *> 192.168.1.2 0 0 64497 i R1#show ip route bgp B 192.168.100.0/24 [20/0] via 192.168.1.2, 00:00:52
192.168.100.0/24宛は「192.168.1.2」の1経路のみです
設定
R1(config)#router bgp 64496 R1(config-router)#bgp bestpath as-path multipath-relax R1(config-router)#maximum-paths 2
隠しコマンドの「bgp bestpath as-path multipath-relax」が必要
設定後
R1#show ip bgp Network Next Hop Metric LocPrf Weight Path *m 192.168.100.0 192.168.2.2 0 0 64498 i *> 192.168.1.2 0 0 64497 i R1#show ip route bgp B 192.168.100.0/24 [20/0] via 192.168.2.2, 00:16:58 [20/0] via 192.168.1.2, 00:16:58
192.168.100.0/24宛は「192.168.1.2」、「192.168.2.2」の2経路になりました
まとめ
- BGPでECMPはできる
- 構成によって設定するコマンドが異なるので注意が必要