【BGP入門】BGP Attribute(属性)のWeightについて

  • URLをコピーしました!
目次

はじめに

こんにちは。ネットワークエンジニアの「だいまる」です。

今回は、BGPシリーズの一環でAttribute(属性)の1つである「Weight」についてまとめていきます。

ここからBGPっぽくなってきます!

ネットワークエンジニアの教科書
〜ネットワークエンジニアを目指す人、ネットワークエンジニアになったばかりの人におすすめの1冊〜

Weight値とは?

概要

先程述べた通り、Ciscoであり、Ciscoルータの中では最も優先されるAttribute(属性)になります。

一般的に、AS内部から外部向けへの経路を制御するためのAttribute(属性)であり、値が大きい程優先度が高くなります。

このAttribute(属性)自分自身のみで保持するため、複数の宛先がある際に利用します。

設定方法(Cisco IOS)

Weight値の設定には、「Neighborへの設定」と「Route-Mapへの設定」の2パターン存在します。

1つ目の「Neighborへの設定」は、通常のNeighbor設定の直後に指定するため、簡単な設定となります。

しかし、指定したNeighborから受信している全経路にWeight値が反映されるため、特定の経路のみ制御したい場合は不向きになります。

Neighborへの設定方法
router bgp <AS番号>
 neighbor <NeighborのIPアドレス> weight <weight値>

2つ目の「Route-mapによる設定」は、「Prefix-List」と「Route-map」を利用します。

特定の経路のみにWeight値を適用したい場合は、この方法を利用します

Route-mapによる設定
#prefix-listの定義
ip prefix-list <リスト名> permit <IP Range>/<prefix>

#route-mapの定義
route-map <マップ名> permit 10
 match ip address prefix-list <リスト名>
 set weight <weight値>

#BGPへの設定適用
router bgp <AS番号>
 neighbor <NeighborのIPアドレス> route-map <マップ名> in

動作確認

Weight値の概要を理解したところ、実機による動作確認を行っていきたいと思います。

検証構成

確認項目

No項目詳細
1NeighborによるWeight値の指定経路全体へのWeight値を指定し、前後の状態を確認する
2Route-MapによるWeight値の指定特定経路へのWeight値を指定し、前後の状態を確認する

項目①:NeighborによるWeight値の指定

NeighborによるWeight値の動作確認を行う前に事前状態を確認してみます。

今回は、AS400のルータ9にLo0の「10.40.9.1」とLo1「10.40.19.1」に設定し、他ASに広報しています。

Weight値の設定なしの時は以下の状態です。

事前確認
Router8#show ip bgp
BGP table version is 14, local router ID is 10.30.8.1
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.10.1.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1                            0 100 i
 *    10.10.2.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1              0             0 100 i
 *    10.10.3.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1                            0 100 i
 *    10.10.4.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1                            0 100 i
 *>   10.20.5.1/32     192.168.4.1                            0 200 i
 *                     192.168.3.1                            0 100 200 i
 *>   10.20.6.1/32     192.168.4.1              0             0 200 i
 *                     192.168.3.1                            0 100 200 i
 *>   10.20.7.1/32     192.168.4.1                            0 200 i
 *                     192.168.3.1                            0 100 200 i
 *>   10.30.8.1/32     0.0.0.0                  0         32768 i
 *    10.40.9.1/32     192.168.4.1                            0 200 400 i
 *>                    192.168.3.1                            0 100 400 i
 *    10.40.19.1/32    192.168.3.1                            0 100 400 i
 *>                    192.168.4.1                            0 200 400 i
Router8#show ip route 10.40.9.1
Routing entry for 10.40.9.1/32
  Known via "bgp 300", distance 20, metric 0
  Tag 100, type external
  Last update from 192.168.3.1 4d07h ago
  Routing Descriptor Blocks:
  * 192.168.3.1, from 192.168.3.1, 4d07h ago
      Route metric is 0, traffic share count is 1
      AS Hops 2
      Route tag 100
      MPLS label: none
Router8#show ip route 10.40.19.1
Routing entry for 10.40.19.1/32
  Known via "bgp 300", distance 20, metric 0
  Tag 200, type external
  Last update from 192.168.4.1 00:02:31 ago
  Routing Descriptor Blocks:
  * 192.168.4.1, from 192.168.4.1, 00:02:31 ago
      Route metric is 0, traffic share count is 1
      AS Hops 2
      Route tag 200
      MPLS label: none

設定を投入する前にConfigの事前状態を確認していきます。

Route9 Config(事前状態)
Router9#show running-config interface loopback 0
interface Loopback0
 ip address 10.40.9.1 255.255.255.255
end
Router9#show running-config interface loopback 1
interface Loopback1
 ip address 10.40.19.1 255.255.255.255
end

Router9#show run | sec bgp
router bgp 400
 bgp router-id 10.40.9.1
 bgp log-neighbor-changes
 network 10.40.9.1 mask 255.255.255.255
 network 10.40.19.1 mask 255.255.255.255
 neighbor 192.168.5.1 remote-as 100
 neighbor 192.168.5.1 update-source GigabitEthernet0/1
 neighbor 192.168.6.1 remote-as 200
 neighbor 192.168.6.1 update-source GigabitEthernet0/2
Router9#

次にRoute8のConfigは以下の状態です。

Router8 Config(事前状態)
Router8#show run | sec bgp
router bgp 300
 bgp router-id 10.30.8.1
 bgp log-neighbor-changes
 network 10.30.8.1 mask 255.255.255.255
 neighbor 192.168.3.1 remote-as 100
 neighbor 192.168.3.1 update-source GigabitEthernet0/2
 neighbor 192.168.4.1 remote-as 200
 neighbor 192.168.4.1 update-source GigabitEthernet0/1

ここに以下の設定を追加します。

投入Config(Router8)
Router8#conf t
Router8(config)#router bgp 300
Router8(config-router)#neighbor 192.168.3.1 weight 200

投入後の状態は、しっかり反映されており、192.168.3.1」がベストパスになっていることがわかります。

投入後の状態(Router8)
Router8#show ip bgp
BGP table version is 28, local router ID is 10.30.8.1
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.10.1.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1                          200 100 i
 *    10.10.2.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1              0           200 100 i
 *    10.10.3.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1                          200 100 i
 *    10.10.4.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1                          200 100 i
 *    10.20.5.1/32     192.168.4.1                            0 200 i
 *>                    192.168.3.1                          200 100 200 i
 *    10.20.6.1/32     192.168.4.1              0             0 200 i
 *>                    192.168.3.1                          200 100 200 i
 *    10.20.7.1/32     192.168.4.1                            0 200 i
 *>                    192.168.3.1                          200 100 200 i
 *>   10.30.8.1/32     0.0.0.0                  0         32768 i
 *    10.40.9.1/32     192.168.4.1                            0 200 400 i
 *>                    192.168.3.1                          200 100 400 i
 *    10.40.19.1/32    192.168.4.1                            0 200 400 i
 *>                    192.168.3.1                          200 100 400 i
Router8#show ip route 10.40.9.1
Routing entry for 10.40.9.1/32
  Known via "bgp 300", distance 20, metric 0
  Tag 100, type external
  Last update from 192.168.3.1 00:01:58 ago
  Routing Descriptor Blocks:
  * 192.168.3.1, from 192.168.3.1, 00:01:58 ago
      Route metric is 0, traffic share count is 1
      AS Hops 2
      Route tag 100
      MPLS label: none
Router8#show ip route 10.40.19.1
Routing entry for 10.40.19.1/32
  Known via "bgp 300", distance 20, metric 0
  Tag 100, type external
  Last update from 192.168.3.1 00:02:02 ago
  Routing Descriptor Blocks:
  * 192.168.3.1, from 192.168.3.1, 00:02:02 ago
      Route metric is 0, traffic share count is 1
      AS Hops 2
      Route tag 100
      MPLS label: none

項目②:Route-mapによるWeight値の指定

次にPrefix-ListやRoute-mapを利用し、特定のPrefixのみWeight値を指定する方法の確認を行います。

先程と同様に事前状態を確認していきましょう。

事前状態(Router8)
Router8#show ip bgp
BGP table version is 49, local router ID is 10.30.8.1
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.10.1.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1                            0 100 i
 *    10.10.2.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1              0             0 100 i
 *    10.10.3.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1                            0 100 i
 *    10.10.4.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1                            0 100 i
 *>   10.20.5.1/32     192.168.4.1                            0 200 i
 *                     192.168.3.1                            0 100 200 i
 *>   10.20.6.1/32     192.168.4.1              0             0 200 i
 *                     192.168.3.1                            0 100 200 i
 *>   10.20.7.1/32     192.168.4.1                            0 200 i
 *                     192.168.3.1                            0 100 200 i
 *>   10.30.8.1/32     0.0.0.0                  0         32768 i
 *    10.40.9.1/32     192.168.4.1                            0 200 400 i
 *>                    192.168.3.1                            0 100 400 i
 *    10.40.19.1/32    192.168.4.1                            0 200 400 i
 *>                    192.168.3.1                            0 100 400 i
Router8#

この2つの経路のうち、「10.40.9.1」をNexthop「192.168.4.1」に変更するように設定していきます。

投入Config(Router8)
Router8#conf t
Router8(config)#ip prefix-list Weight seq 10 permit 10.40.9.1/32
Router8(config)#route-map Weight permit 10
Router8(config-route-map)#match ip address prefix-list Weight
Router8(config-route-map)#set weight 200
Router8(config-route-map)#route-map Weight permit 20
Router8(config)#router bgp 300
Router8(config-router)#neighbor  192.168.4.1 route-map Weight in
Router8#

投入後の状態は想定通り「10.40.9.1」のみWeight値が200となっており、ベストパスが「192.168.4.1」をNexthopとしていました。

事後状態(Router8)
Router8#show ip bgp
BGP table version is 74, local router ID is 10.30.8.1
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.10.1.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1                            0 100 i
 *    10.10.2.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1              0             0 100 i
 *    10.10.3.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1                            0 100 i
 *    10.10.4.1/32     192.168.4.1                            0 200 100 i
 *>                    192.168.3.1                            0 100 i
 *>   10.20.5.1/32     192.168.4.1                            0 200 i
 *                     192.168.3.1                            0 100 200 i
 *>   10.20.6.1/32     192.168.4.1              0             0 200 i
 *                     192.168.3.1                            0 100 200 i
 *>   10.20.7.1/32     192.168.4.1                            0 200 i
 *                     192.168.3.1                            0 100 200 i
 *>   10.30.8.1/32     0.0.0.0                  0         32768 i
 *>   10.40.9.1/32     192.168.4.1                          200 200 400 i
 *                     192.168.3.1                            0 100 400 i
 *    10.40.19.1/32    192.168.4.1                            0 200 400 i
 *>                    192.168.3.1                            0 100 400 i
Router8#

最後に

この記事では、BGPのAttribute(属性)の1つ目についてまとめてみました。

これからは一つの記事を短く、わかりやすくまとめていけるようにブログを修正します。

  • URLをコピーしました!

この記事を書いた人

目次