はじめに
こんにちは。ネットワークエンジニアの「だいまる」です。
今回は、BGPシリーズの一環でAttribute(属性)の1つである「Weight」についてまとめていきます。

ここからBGPっぽくなってきます!
Weight値とは?
概要
先程述べた通り、Ciscoであり、Ciscoルータの中では最も優先されるAttribute(属性)になります。
一般的に、AS内部から外部向けへの経路を制御するためのAttribute(属性)であり、値が大きい程優先度が高くなります。
このAttribute(属性)は自分自身のみで保持するため、複数の宛先がある際に利用します。
設定方法(Cisco IOS)
Weight値の設定には、「Neighborへの設定」と「Route-Mapへの設定」の2パターン存在します。
1つ目の「Neighborへの設定」は、通常のNeighbor設定の直後に指定するため、簡単な設定となります。
しかし、指定したNeighborから受信している全経路にWeight値が反映されるため、特定の経路のみ制御したい場合は不向きになります。
router bgp <AS番号>
neighbor <NeighborのIPアドレス> weight <weight値>
2つ目の「Route-mapによる設定」は、「Prefix-List」と「Route-map」を利用します。
特定の経路のみにWeight値を適用したい場合は、この方法を利用します
#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 | 項目 | 詳細 |
|---|---|---|
| 1 | NeighborによるWeight値の指定 | 経路全体へのWeight値を指定し、前後の状態を確認する |
| 2 | Route-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の事前状態を確認していきます。
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#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
ここに以下の設定を追加します。
Router8#conf t
Router8(config)#router bgp 300
Router8(config-router)#neighbor 192.168.3.1 weight 200
投入後の状態は、しっかり反映されており、「192.168.3.1」がベストパスになっていることがわかります。
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#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」に変更するように設定していきます。
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#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つ目についてまとめてみました。
これからは一つの記事を短く、わかりやすくまとめていけるようにブログを修正します。


