Weight属性とは
Weightは、シスコ独自のBGP属性で、特定のパスを選択するために使用します。 Weightは、ルータローカルでのみ使用され、他のBGPルータとは交換されません。 同じプレフィックスに対して、値が大きい方のルートを優先します。
検証
構成
R2とR3にループバックで同じプレフィックス23.23.23.23/32をR6にアドバタイズします。 ここで、R6にWeightを設定し、R3からのプレフィックス経路を優先してみます。
まず、WEIGTHの設定をせず、eBGPの設定をします。
R2(config)#int loopback23 R2(config-if)#ip add 23.23.23.23 255.255.255.255 R2(config)#router bgp 23 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)#int loopback23 R3(config-if)#ip add 23.23.23.23 255.255.255.255 R3(config)#router bgp 23 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テーブルを見てみます。
R6#sh 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
R2とR3から23.23.23.23/32を学習し、R2からのルートをベストパスと認識しています。 23.23.23.23/32の情報をもう少し詳しくみていきます。
R6#sh ip bgp 23.23.23.23 BGP routing table entry for 23.23.23.23/32, version 2 Paths: (2 available, best #2, table default) Advertised to update-groups: 2 23 192.168.36.3 from 192.168.36.3 (3.3.3.3) Origin IGP, metric 0, localpref 100, valid, external 23 192.168.26.2 from 192.168.26.2 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, external, best
すべてのBGP属性は同じであるため、最後にルータIDが比較され、小さい方をベストパスに選択します。
neighborへのWeight設定
では、R3の方を優先するようにWeightを設定します。
R6(config)#router bgp 6 R6(config-router)#neighbor 192.168.36.3 weight 100
デフォルト値は0です。R3からアドバタイズされたルートは、WIEGHTを100にします。 このままでは、設定が反映されないため、BGPプロセスをクリアします。
R6#clear ip bgp * *Apr 27 14:44:27.595: %BGP-5-ADJCHANGE: neighbor 192.168.26.2 Down User reset *Apr 27 14:44:27.595: %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.26.2 IPv4 Unicast topology base removed from session User reset *Apr 27 14:44:27.607: %BGP-5-ADJCHANGE: neighbor 192.168.36.3 Down User reset *Apr 27 14:44:27.611: %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.36.3 IPv4 Unicast topology base removed from session User reset *Apr 27 14:44:28.583: %BGP-5-ADJCHANGE: neighbor 192.168.36.3 Up *Apr 27 14:44:28.583: %BGP-5-ADJCHANGE: neighbor 192.168.26.2 Up
R6のBGPテーブルを確認します。
R6#sh 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 0 23 i
*> 192.168.36.3 0 100 23 i
R3からのルートのWEIGHTが100となり、ベストパスとして認識しています。 以下の出力からもWEIGHTが変更され、ベストパスがR3に変更されていることが確認できます。
R6#sh ip bgp 23.23.23.23 BGP routing table entry for 23.23.23.23/32, version 2 Paths: (2 available, best #2, table default) Advertised to update-groups: 3 23 192.168.26.2 from 192.168.26.2 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, external 23 192.168.36.3 from 192.168.36.3 (3.3.3.3) Origin IGP, metric 0, localpref 100, weight 100, valid, external, best
route-mapを使用したWeight設定
今は、ネイバーに対して、Weightを設定しましたが、ネイバーに対して、特定のルートだけ、Weightを変更した場合もあります。この場合は、route-mapを設定します。 R2とR3に新たにループバック32.32.32.32/32を追加し、23.23.23.23/32と合わせて、R3を優先にします。
R2(config)#int lo 32 R2(config-if)#ip add 32.32.32.32 255.255.255.255 R2(config)#router bgp 23 R2(config-router)#network 32.32.32.32 mask 255.255.255.255
R3(config)#int lo32 R3(config-if)#ip add 32.32.32.32 255.255.255.255 R3(config)#router bgp 23 R3(config-router)#network 32.32.32.32 mask 255.255.255.255
R6のBGPテーブルを見ると、両方のループバックがともにR3を優先しています。
R6#sh ip bgp BGP table version is 5, 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 100 23 i *> 32.32.32.32/32 192.168.36.3 0 100 23 i * 192.168.26.2 0 0 23 I
では、一旦、R6のWeightの設定を消します。
R6(config)#router bgp 6 R6(config-router)#no neighbor 192.168.36.3 weight 100
23.23.23.23をアクセスリスト1で設定し、それに該当するものは、Weightを100にします。
route-map SETWEIGHT permit 1000は、setコマンドが無く、アクセスリスト1以外のルートに関して、何もしないという設定です。
R6(config)#access-list 1 permit 23.23.23.23 0.0.0.0 ! R6(config)#route-map SETWEIGHT permit 10 R6(config-route-map)#match ip address 1 R6(config-route-map)#set weight 100 R6(config-route-map)#route-map SETWEIGHT permit 1000
これをR3のネイバー設定に反映します。
R6(config)#router bgp 6 R6(config-router)#neighbor 192.168.36.3 route-map SETWEIGHT in
BGPプロセスをクリア後、再度 R6のBGPテーブルを確認します。
R6#sh 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.36.3 0 100 23 i * 192.168.26.2 0 0 23 i * 32.32.32.32/32 192.168.36.3 0 0 23 i *> 192.168.26.2 0 0 23 i
23.23.23.23/32のみWEIGHTが100となり、R3が優先ルートとなります。また、32.32.32.32/32はWeightがデフォルトの0で、R2が優先ルートとなります。
route-map SETWEIGHT permit 1000を忘れた場合
route-map の設定で、route-map SETWEIGHT permit 1000を忘れた場合、R6のBGPテーブルはどのように見えるでしょうか。
R6(config)#no route-map SETWEIGHT permit 1000
BGPプロセスをクリア後、再度 R6のBGPテーブルを確認します。
R6#sh 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 100 23 i *> 32.32.32.32/32 192.168.26.2 0 0 23 I
R3から32.32.32.32/32を学習しなくなりました。route-map の最後は暗黙のDenyが適用され、Denyに該当すると、そのルートはフィルタされます。
その他 BGP関連記事は >> ルーティングプロトコル(BGP)まとめ << より参照できます。
コメント