BGP LOCAL_PREFERENCE パスアトリビュート
BGPのUpdateメッセージのルータ情報に含まれるパスアトリビュートの一つです。
その他のBGPパスアトリビュート情報は下記に
BGP パスアトリビュート ベストパスの選択アルゴリズム
BGP LOCAL_PREFERENCE 特徴
LOCAL_PREFERENCEは、内部ASのネットワークから他ASのネットワークに出口を指定する時に活用することが出来ます。
- タイプコード 5
- Well known Discretionary (全てのBGPルータが識別でき、Updateに含まれるかは任意)
- 4-octetの数値
- デフォルト値 100
eBGPネイバーから受信した経路をshow ip bgpコマンドではLOCAL_PREFERENCEが空白に表示されるが、値100として処理される。 - 高い値が優先
- AS内でのローカルな値
LOCAL_PREFERENCEは自身AS内でのみ有効(動作としては下記になる)- eBGPネイバーへ経路を送信するときは、LOCAL_PREFERENCEは削除される。
- eBGPネイバーから経路を受信するときは、LOCAL_PREFERENCEはデフォルト100になる。設定で変更可能。
- iBGPネイバーへ経路を送信するときは、LOCAL_PREFERENCEはそのまま送信する。設定で変更可能。
スポンサーリンク
LOCAL_PREFERENCEを利用したトラフィックコンロトール例
LOCAL_PREFERENCE(以下 LP)を利用してトラフィックコントールする例になります。
上図のAS10からAS40(40.0.0.0/8)向けトラフィックをR11から出るように設定します。
今回はR11にR20から受信したAS40(40.0.0.0/8)の経路にLP200を設定することで実現しています。
※Cisco IOSにて設定
※各IPアドレスの第4オクテットは設定したルータのホスト名と同一となっている。
※上記の図にはAS20(20.0.0.0/8)のBGPには記載していませんが、AS10はR12から出るように、R12にはAS20の経路にLP200が設定されています。(下記の各ルータのBGPテーブルから判断できるので参考にどうぞ)
R11 ConfigおよびBGPテーブル
R11ではR20からの40.0.0.0/8のルートをLP200に変更するConfigとし下記を設定しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
ip prefix-list AS40 seq 5 permit 40.0.0.0/8 ! route-map Set_AS40_LP200 permit 10 match ip address prefix-list AS40 set local-preference 200 ! route-map Set_AS40_LP200 permit 20 ! router bgp 10 address-family ipv4 neighbor 10.11.20.20 route-map Set_AS40_LP200 in exit-address-family exit |
R11のBGPテーブルになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
R-11#show ip bgp BGP table version is 18, local router ID is 10.0.0.11 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, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *>i 10.0.0.0 10.0.0.10 0 100 0 i *>i 20.0.0.0 10.12.30.30 0 200 0 30 40 20 i * 10.11.20.20 0 0 20 i *>i 30.0.0.0 10.12.30.30 0 100 0 30 i * 10.11.20.20 0 20 40 30 i *> 40.0.0.0 10.11.20.20 200 0 20 40 i R-11# |
R11には40.0.0.0/8の経路にはLocPrf(これがLPの表記になります)が200になり。ベストパスとなっています。R11はeBGPから受信した経路はLP200を保持した状態で、iBGPでR10、R12向けに経路をアナウンスします。
R12 BGPテーブル
R12のBGPテーブルになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
R-12#show ip bgp BGP table version is 17, local router ID is 10.0.0.12 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, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *>i 10.0.0.0 10.0.0.10 0 100 0 i *> 20.0.0.0 10.12.30.30 200 0 30 40 20 i *> 30.0.0.0 10.12.30.30 0 0 30 i * 40.0.0.0 10.12.30.30 0 30 40 i *>i 10.11.20.20 0 200 0 20 40 i R-12# |
R12には40.0.0.0/8の経路はR11とR30の2経路を受信しています。
経路を確認すると、R11側はLP200、R30側はLP100(show ip bpgでは空白となっているが、空白時はデフォルト100として処理します)となっており、LPが高いR11をベストパスとして選択します。
R12は、R11側の経路をベストパスとなっているため、R30にR11から受信した経路を広報します。ただし、eBGPにて経路を広報しますのでLPは削除された状態で広報します。
R10側にはiBGPで受信した経路はiBGPには広報しないというルールがあるためR11から受信した経路を広報しません。
R10 BGPテーブル および traceroute
R10のBGPテーブルになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
R-10#show ip bgp BGP table version is 19, local router ID is 10.0.0.10 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, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 10.0.0.0 0.0.0.0 0 32768 i *>i 20.0.0.0 10.12.30.30 0 200 0 30 40 20 i *>i 30.0.0.0 10.12.30.30 0 100 0 30 i *>i 40.0.0.0 10.11.20.20 0 200 0 20 40 i R-10# |
R10には40.0.0.0/8の経路はR11からの1経路だけを受信しています。したがってトラフィックはR11向いています。受信した経路はR11で設定したLP200にて受信しています。
R10の40.0.0.40(R40のloopback)向けのtracerouteの結果になります。
1 2 3 4 5 6 7 8 |
R-10#traceroute 40.0.0.40 Type escape sequence to abort. Tracing the route to 40.0.0.40 VRF info: (vrf in name/id, vrf out name/id) 1 10.10.11.11 8 msec 17 msec 15 msec 2 10.11.20.20 10 msec 18 msec 17 msec 3 40.20.40.40 [AS 40] 24 msec * 11 msec R-10# |
第4オクテットがルータのホスト名になるように設定しているので、R11->R20->R40を通過しているのがわかります。
(参考)R10の20.0.0.20(R20のloopback)向けのtraceroute結果になります。
※R12にてAS20(20.0.0.0/8)をLP200の設定をいれています。
1 2 3 4 5 6 7 8 9 |
R-10#traceroute 20.0.0.20 Type escape sequence to abort. Tracing the route to 20.0.0.20 VRF info: (vrf in name/id, vrf out name/id) 1 10.10.12.12 5 msec 8 msec 5 msec 2 10.12.30.30 15 msec 8 msec 18 msec 3 40.30.40.40 [AS 40] 15 msec 21 msec 26 msec 4 40.20.40.20 [AS 40] 25 msec * 29 msec R-10# |
第4オクテットがルータのホスト名になるように設定しているので、R12->R30->R40->R20を通過しているのがわかります。
R30 BGPテーブル
R30のBGPテーブルになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
R-30#show ip bgp BGP table version is 10, local router ID is 30.0.0.30 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, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 10.0.0.0 10.12.30.12 0 10 i * 40.30.40.40 0 40 20 10 i *> 20.0.0.0 40.30.40.40 0 40 20 i *> 30.0.0.0 0.0.0.0 0 32768 i * 40.0.0.0 10.12.30.12 0 10 20 40 i *> 40.30.40.40 0 0 40 i R-30# |
R30には40.0.0.0/8 には R12からR40から2箇所から経路を受信しています。
パスアトリビュート情報を参照するとAS_PATH長が異なり、R12 3HOP(10 20 40)よりR40 1HOP(40)が短いので、R40をベストパスとして選択しています。
R20 BGPテーブル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
R-20#show ip bgp BGP table version is 10, local router ID is 20.0.0.20 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, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 10.0.0.0 10.11.20.11 0 10 i *> 20.0.0.0 0.0.0.0 0 32768 i * 30.0.0.0 10.11.20.11 0 10 30 i *> 40.20.40.40 0 40 30 i *> 40.0.0.0 40.20.40.40 0 0 40 i R-20# |
R20は40.0.0/8はR40から1経路を受信している。
R40 BGPテーブル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
R-40#show ip bgp BGP table version is 7, local router ID is 40.0.0.40 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, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path * 10.0.0.0 40.30.40.30 0 30 10 i *> 40.20.40.20 0 20 10 i *> 20.0.0.0 40.20.40.20 0 0 20 i *> 30.0.0.0 40.30.40.30 0 0 30 i *> 40.0.0.0 0.0.0.0 0 32768 i R-40# |
R40が40.0.0.0/8経路を生成しているルータになります。
各ルータConfig
BGP_LP_R10.cfg
BGP_LP_R11.cfg
BGP_LP_R12.cfg
BGP_LP_R20.cfg
BGP_LP_R30.cfg
BGP_LP_R40.cfg
CML LAB定義ファイル
BGP_LAB_CML.yaml
その他BGP解説ページ
-
ネットワーク解説 BGP ( Border Gateway Protocol )
その他ネットワーク解説ページ
-
ネットワーク解説