BGPのベストパス選定は、以下の優先順位で行われます。
- Weightが最も大きい方を優先
- Local Preferenceが最も大きい方を優先
- ローカルで生成されたプレフィックスを優先
- AS-PATHの最も短い方が優先
- Originが最も小さい方が優先(IGP < Incomplete)
- MEDが最も小さい方が優先
- 内部BGPパスよりも外部BGPパスを優先
- NEXT-HOP IPアドレスに到達するIGPメトリックが最小のパスを優先
- 先に受信したeBGP経路を優先
- 最小のBGPルーターIDを持つルーターから発信されたパスを優先
- BGPピアのIPアドレスが最小のルートを優先
Ciscoでは、「4. AS-PATHの最も短い方が優先」の処理を無視することがbgp bestpath as-path ignoreコマンドにより設定できます。 このコマンドを設定した場合の動作を確認します。
BGPベストパス選定について理解を深めるには、以下の記事を先に読んでいただくことをお勧めします。
>> 参考 : ベストパス選定(PART1 アルゴリズム) >> 参考 : ベストパス選定(PART2 動作確認)AS-PATHの比較
以下の構成で検証します。R2とR3から同一ルート(23.23.23.23/32)を広告し、R6がR2、R3のどちらをベストパスに選ぶのかを見ていきます。
R6がR2、R3から学習しているBGPルート23.23.23.23/32の属性値は以下となります。(R6で予め属性を変更する設定をしています)
優先順位 | R2 | R3 | |
1 | WEIGHTが最大 | 32768 | 32768 |
2 | Local Preferenceが最大 | 100 | 100 |
3 | ローカルルータが 生成したルート | – | – |
4 | AS-PATHが最短 | 23 | 23 23 23 23 23 |
5 | Originが最小(IGP<incomplete) | incomplete | IGP |
6 | MEDが最小 | 0 | 100 |
WEIGHTとLocal Preferenceは同じであり、ローカル生成されたルートもないため、AS-PATHが短い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.26.2 0 32768 23 ? * 192.168.36.3 100 32768 23 23 23 23 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: 5 Refresh Epoch 2 23 192.168.26.2 from 192.168.26.2 (22.22.22.22) Origin incomplete, metric 0, localpref 100, weight 32768, valid, external, best Refresh Epoch 2 23 23 23 23 23 192.168.36.3 from 192.168.36.3 (3.3.3.3) Origin IGP, metric 100, localpref 100, weight 32768, valid, external
AS-PATHの比較を無視(bgp bestpath as-path ignore )
では、このAS-PATHの比較を無視する設定をします。
R6(config-router)# bgp bestpath as-path ignore
bgp bestpath as-path ignore はヘルプでは表示されない隠しコマンドです。
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.26.2 Up %BGP-5-ADJCHANGE: neighbor 192.168.36.3 Up
BGPテーブルを見ると、ベストパスがR3へのパスに変更されています。
AS-PATHの比較が無視されたことにより、次のステップであるOriginが最小なパスをベストパスに選定します。
OriginはR2へのパスはincomplete、R3へのパスはIGPのため、R3へのパスをベストパスに選定します。
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 100 32768 23 23 23 23 23 i * 192.168.26.2 0 32768 23 ? 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: 6 Refresh Epoch 1 23 23 23 23 23 192.168.36.3 from 192.168.36.3 (3.3.3.3) Origin IGP, metric 100, localpref 100, weight 32768, valid, external, best Refresh Epoch 1 23 192.168.26.2 from 192.168.26.2 (22.22.22.22) Origin incomplete, metric 0, localpref 100, weight 32768, valid, external
その他 BGP関連記事は >> ルーティングプロトコル(BGP)まとめ << より参照できます。
コメント