BGPのベストパス選定は、以下の優先順位で行われます。
- Weightが最も大きい方を優先
- Local Preferenceが最も大きい方を優先
- ローカルで生成されたプレフィックスを優先
- AS-PATHの最も短い方が優先
- Originが最も小さい方が優先(IGP < Incomplete)
- MEDが最も小さい方が優先
- 内部BGPパスよりも外部BGPパスを優先
- NEXT-HOP IPアドレスに到達するIGPメトリックが最小のパスを優先
- 先に受信したeBGP経路を優先
- 最小のBGPルーターIDを持つルーターから発信されたパスを優先
- BGPピアのIPアドレスが最小のルートを優先
Ciscoでは、 外部BGP経路で同じプレフィックスで属性値などが同じ場合、最後のタイブレークはデフォルトで、「9 先に受信したeBGP経路を優先」 が採用されます。
内部BGP経路の場合は、タイブレークにルータIDの比較が採用されます。
「9. 先に受信したeBGP経路を優先」 を無視することで、優先順位の10,11のようなルータIDやピアのアドレスを比較させることができます。
「9. 先に受信したeBGP経路を優先」を無視するには、 bgp bestpath compare-routerid を設定します。
BGPベストパス選定について理解を深めるには、以下の記事を先に読んでいただくことをお勧めします。
>> 参考 : ベストパス選定(PART1 アルゴリズム) >> 参考 : ベストパス選定(PART2 動作確認)以下の構成で検証します。R2とR3から同一ルート(23.23.23.23/32)を広告し、R6がR2、R3のどちらをベストパスに選ぶのか、を見ていきます。
R2(config)# router bgp 23 R2(config-router)# bgp router-id 2.2.2.2 R2(config-router)# network 23.23.23.23 mask 255.255.255.255 R2(config-router)# neighbor 192.168.26.6 remote-as 6
R3(config)# router bgp 23 R3(config-router)# bgp router-id 3.3.3.3 R3(config-router)# network 23.23.23.23 mask 255.255.255.255 R3(config-router)# neighbor 192.168.36.6 remote-as 6
R6(config)# router bgp 6 R6(config-router)# neighbor 192.168.26.2 remote-as 23 R6(config-router)# neighbor 192.168.36.3 remote-as 23
デフォルトのタイブレーク確認
R6のBGPテーブルを確認します。R2、R3からの外部BGPルートで属性値が同じで、最終的に、タイブレークになり、R3をベストパスとして認識しています。R3をベストパスとして選定したのは、R3からの経路をR2よりはやく学習したからです。
R6# show ip bgp BGP table version is 2, local router ID is 6.6.6.6 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 23.23.23.23/32 192.168.36.3 0 0 23 i * 192.168.26.2 0 0 23 I R6# show ip bgp 23.23.23.23 BGP routing table entry for 23.23.23.23/32, version 2 Paths: (2 available, best #1, table default) Advertised to update-groups: 7 Refresh Epoch 1 23 192.168.36.3 from 192.168.36.3 (3.3.3.3) Origin IGP, metric 0, localpref 100, valid, external, best Refresh Epoch 1 23 192.168.26.2 from 192.168.26.2 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, external
ルータIDによるベストパス選定
ルータIDの比較によるベストパスの選定を有効にするのは、以下の通り設定します。
R6(config)# router bgp 6 R6(config-router)# bgp bestpath compare-routerid
BGPセッションをクリアします。
R6# clear ip bgp * R6# %BGP-5-ADJCHANGE: neighbor 192.168.26.2 Down User reset %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.26.2 IPv4 Unicast topology base removed from session User reset %BGP-5-ADJCHANGE: neighbor 192.168.36.3 Down User reset %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.36.3 IPv4 Unicast topology base removed from session User reset %BGP-5-ADJCHANGE: neighbor 192.168.36.3 Up %BGP-5-ADJCHANGE: neighbor 192.168.26.2 Up
R6のBGPテーブルを確認します。R2のルータID(2.2.2.2)がR3のルータID (3.3.3.3)より小さいため、R2へのパスをベストパスとして選定します。
R6# show ip bgp BGP table version is 3, local router ID is 6.6.6.6 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 23.23.23.23/32 192.168.26.2 0 0 23 i * 192.168.36.3 0 0 23 i R6# show ip bgp 23.23.23.23 BGP routing table entry for 23.23.23.23/32, version 3 BGP Bestpath: compare-routerid Paths: (2 available, best #1, table default) Advertised to update-groups: 8 Refresh Epoch 1 23 192.168.26.2 from 192.168.26.2 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, external, best Refresh Epoch 1 23 192.168.36.3 from 192.168.36.3 (3.3.3.3) Origin IGP, metric 0, localpref 100, valid, external
その他 BGP関連記事は >> ルーティングプロトコル(BGP)まとめ << より参照できます。
コメント