WEIGHTとは
WEIGHTは、そのルータ1台の中だけで経路の優先度を決めるシスコ独自のパラメータです。RFCで定義されたパス属性ではなく、UPDATEに載る場所が無いので隣のルータには伝わりません(BGPパス属性とベストパス選択)。
| 項目 | 内容 |
|---|---|
| Type code | なし(BGPのパス属性ではない) |
| 分類 | シスコ独自のローカル値 |
| 値 | 16ビットの符号なし整数(0〜65535)。大きいほうが優先 |
| 既定値 | 受信した経路は0、自分で生成した経路は32768 |
| 伝わる範囲 | そのルータの中だけ。広告には載らない |
| 定義 | Understand the Importance of BGP Weight Path Attribute(シスコ) |
大きいほうが優先で、LOCAL_PREFと同じ向きです。IOS XRのshow bgpではWeight列に出ます。
広告には載らない
iBGPピアにもeBGPピアにも伝わらないので、WEIGHTは「このルータから出ていくトラフィックの向きを、このルータだけで変えたい」場面の道具です。AS全体で出口をそろえるならLOCAL_PREFを使います。
既定値は0、自分で生成した経路は32768
| 経路 | 既定のWEIGHT |
|---|---|
| BGPピアから受信した経路 | 0 |
自分で生成した経路(network文、redistribute、集約) | 32768 |
同じプレフィックスを自分でも生成しピアからも受け取っている場合、何もしなければ自分で生成したほうが勝ちます。 ベストパス選択の3番目にも「自分で生成した経路」がありますが、1番目のWEIGHTで先に決まります。
ベストパス選択での位置づけ
WEIGHTはベストパス選択の1番目です。
| 順位 | 条件 |
|---|---|
| 1 | WEIGHTが大きい |
| 2 | LOCAL_PREFが大きい |
| 3 | 自分で生成した経路 |
| 4 | AS_PATHが短い |
| 5 | ORIGINが小さい(IGP < EGP < incomplete) |
| 6 | MEDが小さい |
| 7 | eBGP > iBGP |
| … | … |
WEIGHTに差を付けた時点で、下の条件は一切見られません。 効きすぎるので、対象プレフィックスを絞るなどの注意が要ります。
LOCAL_PREFとの使い分け
WEIGHTとLOCAL_PREFはどちらも大きいほうが優先で出口を決めますが、効く範囲が違います。
| 項目 | WEIGHT | LOCAL_PREF |
|---|---|---|
| BGPのパス属性か | いいえ(シスコ独自) | はい(well-known discretionary、Type 5) |
| 広告に載るか | 載らない | iBGPピアへは載る(eBGPピアへは載らない) |
| 効く範囲 | 設定したルータ1台 | AS全体 |
| ベストパス選択の順位 | 1番目 | 2番目 |
| 既定値 | 0 / 自局生成は32768 | 100 |
WEIGHTはAS内の他のルータに伝わらないため、AS内でベストパスの判断が食い違い、経路がループする形になりうる点に注意が要ります。
設定方法
IOS XRでは2つの入れ方があります。ネイバー単位で入れるとshow bgp neighborにDefault weight 200と出ます。
ネイバー単位(そのピアから受け取る経路すべてに同じ値)
router bgp 65001
neighbor 10.1.4.4
address-family ipv4 unicast
weight 200ルートポリシー(プレフィックスを絞って値を変える)
route-policy SET-WEIGHT
if destination in (192.168.5.0/24) then
set weight 200
endif
pass
end-policy
!
router bgp 65001
neighbor 10.1.4.4
address-family ipv4 unicast
route-policy SET-WEIGHT in実機での検証
XRd 26.1.1を6台使い、8つのSTEPで確認します。
| AS | ルータ | 役割 |
|---|---|---|
| 65001 | R1・R2 | AS境界。R3とiBGPフルメッシュ(Loopback0、next-hop-self)+OSPF area 0 |
| 65001 | R3 | AS内部。eBGPピアを持たない |
| 65002 | R4 | R1・R2・R5とeBGP |
| 65003 | R5 | R4・R6とeBGP。192.168.5.0/24を広告 |
| 65004 | R6 | R5・R1とeBGP。192.168.6.0/24を広告 |
STEP 0〜3の観測対象はR1から見た 192.168.5.0/24 で、3方向からAS_PATH長2で届きます。
- R4から(
65002 65003) - R6から(
65004 65003) - R2からiBGPで(
65002 65003)
STEP 4〜7は192.168.6.0/24に切り替え、R6が広告するプレフィックスをR1自身にも生成させて32768の効き方を見ます。
| STEP | 操作 | 見たいこと |
|---|---|---|
| 0 | ポリシーなし | 全パスがWeight 0。自局生成の192.168.1.0/24だけ32768 |
| 1 | R1のR4向けにweight 200 | R1のベストがR4経由へ。R3は変わらない(ルータローカル) |
| 2 | R1のR6向け入方向にLOCAL_PREF 200 | LOCAL_PREFで優遇してもWEIGHTが勝つ |
| 3 | weight 200を撤去 | ここで初めてLOCAL_PREFが効く |
| 4 | R1に192.168.6.0/24のstatic+networkを追加 | 自局生成の32768が受信経路に勝つ |
| 5 | networkにset weight 0を付ける | WEIGHTを下げても自局生成が勝ったまま |
| 6 | R1のR6向けにweight 40000 | R6経由が勝ち、自局経路が「浮いた」状態になる |
| 7 | R6のLoopback1をshutdown(最終状態) | 自局経路が浮上してベストに戻る |
STEP 0:初期状態
R1のBGPテーブルのWeight列を見ます。
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0/24 0.0.0.0 0 32768 i
*>i192.168.2.0/24 10.0.0.2 0 100 0 i
*>i192.168.3.0/24 10.0.0.3 0 100 0 i
* i192.168.4.0/24 10.0.0.2 0 100 0 65002 i
*> 10.1.4.4 0 0 65002 i
* 10.1.6.6 0 65004 65003 65002 i
* i192.168.5.0/24 10.0.0.2 100 0 65002 65003 i
* 10.1.4.4 0 65002 65003 i
*> 10.1.6.6 0 65004 65003 i
*> 192.168.6.0/24 10.1.6.6 0 0 65004 i
Processed 6 prefixes, 10 paths自分で広告している192.168.1.0/24だけが32768で、受け取った経路はすべて0です。192.168.5.0/24は3パスのうちR6経由がベストですが、これは下位の条件によるものです。
STEP 1:R1のR4向けに weight 200 を入れる
R4(10.1.4.4)から受け取る経路にWEIGHT 200を付けます。
router bgp 65001
neighbor 10.1.4.4
address-family ipv4 unicast
weight 200Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0/24 0.0.0.0 0 32768 i
*>i192.168.2.0/24 10.0.0.2 0 100 0 i
*>i192.168.3.0/24 10.0.0.3 0 100 0 i
* i192.168.4.0/24 10.0.0.2 0 100 0 65002 i
*> 10.1.4.4 0 200 65002 i
* 10.1.6.6 0 65004 65003 65002 i
* i192.168.5.0/24 10.0.0.2 100 0 65002 65003 i
*> 10.1.4.4 200 65002 65003 i
* 10.1.6.6 0 65004 65003 i
*> 192.168.6.0/24 10.1.6.6 0 0 65004 i
Processed 6 prefixes, 10 pathsR4からの2経路が200になり、192.168.5.0/24のベストがR4経由に移りました。AS_PATH長もLOCAL_PREFも変えていません。 routes(入方向ポリシー適用後)とreceived routes(適用前)を並べると、受信時に付く値であることが分かります。
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.4.0/24 10.1.4.4 0 200 65002 i
*> 192.168.5.0/24 10.1.4.4 200 65002 65003 i
Processed 2 prefixes, 2 pathsStatus codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 192.168.4.0/24 10.1.4.4 0 0 65002 i
* 192.168.5.0/24 10.1.4.4 0 65002 65003 i
Processed 2 prefixes, 2 pathsR3から見ると何も変わっていない
同じAS内のR3のBGPテーブルです。
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i192.168.1.0/24 10.0.0.1 0 100 0 i
*>i192.168.2.0/24 10.0.0.2 0 100 0 i
*> 192.168.3.0/24 0.0.0.0 0 32768 i
*>i192.168.4.0/24 10.0.0.1 0 100 0 65002 i
* i 10.0.0.2 0 100 0 65002 i
*>i192.168.5.0/24 10.0.0.1 100 0 65002 65003 i
* i 10.0.0.2 100 0 65002 65003 i
*>i192.168.6.0/24 10.0.0.1 0 100 0 65004 i
Processed 6 prefixes, 8 pathsR3の192.168.5.0/24は0のままで、R1の200は伝わっていません。
UPDATEにWEIGHTは載っていない
ベストがR4経由に変わったことでR1がR3へ再広告したUPDATEが、R1-R3間キャプチャーのNo.111です。
Border Gateway Protocol - UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 64
Type: UPDATE Message (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 41
Path attributes
Path Attribute - MP_REACH_NLRI
Flags: 0x90, Optional, Extended-Length, Non-transitive, Complete
<snip>
Type Code: MP_REACH_NLRI (14)
Length: 13
Address family identifier (AFI): IPv4 (1)
Subsequent address family identifier (SAFI): Unicast (1)
Next hop: 10.0.0.1
IPv4 Address: 10.0.0.1
Number of Subnetwork points of attachment (SNPA): 0
Network Layer Reachability Information (NLRI)
192.168.5.0/24
MP Reach NLRI prefix length: 24
MP Reach NLRI IPv4 prefix: 192.168.5.0
Path Attribute - ORIGIN: IGP
Flags: 0x40, Transitive, Well-known, Complete
<snip>
Type Code: ORIGIN (1)
Length: 1
Origin: IGP (0)
Path Attribute - AS_PATH: 65002 65003
Flags: 0x40, Transitive, Well-known, Complete
<snip>
Type Code: AS_PATH (2)
Length: 10
AS Path segment: 65002 65003
Segment type: AS_SEQUENCE (2)
Segment length (number of ASN): 2
AS4: 65002
AS4: 65003
Path Attribute - LOCAL_PREF: 100
Flags: 0x40, Transitive, Well-known, Complete
<snip>
Type Code: LOCAL_PREF (5)
Length: 4
Local preference: 100属性はMP_REACH_NLRI・ORIGIN・AS_PATH・LOCAL_PREFの4つだけで、WEIGHTに相当するものはありません。
STEP 2:LOCAL_PREF 200 を入れてもWEIGHTが勝つ
R6(10.1.6.6)から受け取る192.168.5.0/24にLOCAL_PREF 200を付けます。
route-policy LP-200
if destination in (192.168.5.0/24) then
set local-preference 200
endif
pass
end-policy
!
router bgp 65001
neighbor 10.1.6.6
address-family ipv4 unicast
route-policy LP-200 inRP/0/RP0/CPU0:R1#show bgp 192.168.5.0/24
Tue Sep 8 10:24:35.554 UTC
BGP routing table entry for 192.168.5.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 11 11
Last Modified: Sep 8 10:24:08.774 for 00:00:26
Paths: (5 available, best #2)
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.3 0.4
Path #1: Received by speaker 0
Not advertised to any peer
65002 65003, (received & used)
10.0.0.2 (metric 3) from 10.0.0.2 (10.0.0.2)
Origin IGP, localpref 100, valid, internal
Received Path ID 0, Local Path ID 0, version 0
Path #2: Received by speaker 0
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.3 0.4
65002 65003
10.1.4.4 from 10.1.4.4 (10.0.0.4)
Origin IGP, localpref 100, weight 200, valid, external, best, group-best
Received Path ID 0, Local Path ID 1, version 10
Origin-AS validity: (disabled)
Path #3: Received by speaker 0
Not advertised to any peer
65002 65003, (received-only)
10.1.4.4 from 10.1.4.4 (10.0.0.4)
Origin IGP, localpref 100, valid, external
Received Path ID 0, Local Path ID 0, version 0
Origin-AS validity: (disabled)
Path #4: Received by speaker 0
Not advertised to any peer
65004 65003
10.1.6.6 from 10.1.6.6 (10.0.0.6)
Origin IGP, localpref 200, valid, external, group-best
Received Path ID 0, Local Path ID 0, version 0
Origin-AS validity: (disabled)
Path #5: Received by speaker 0
Not advertised to any peer
65004 65003, (received-only)
10.1.6.6 from 10.1.6.6 (10.0.0.6)
Origin IGP, localpref 100, valid, external
Received Path ID 0, Local Path ID 0, version 0
Origin-AS validity: (disabled)Path #4(R6経由)がlocalpref 200、Path #2(R4経由)がlocalpref 100, weight 200で、ベストはPath #2のままです。1番目で決着しているため2番目は見られません。(received-only)のPath #3・#5は入方向ポリシー適用前のコピーで、選択の対象ではありません。
STEP 3:WEIGHTを外すとLOCAL_PREFが効く
weight 200だけを撤去します。
router bgp 65001
neighbor 10.1.4.4
address-family ipv4 unicast
no weight 200RP/0/RP0/CPU0:R1#show bgp 192.168.5.0/24
Tue Sep 8 10:28:08.555 UTC
BGP routing table entry for 192.168.5.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 13 13
Last Modified: Sep 8 10:27:04.774 for 00:01:03
Paths: (3 available, best #2)
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.3 0.4
Path #1: Received by speaker 0
Not advertised to any peer
65002 65003, (received & used)
10.1.4.4 from 10.1.4.4 (10.0.0.4)
Origin IGP, localpref 100, valid, external, group-best
Received Path ID 0, Local Path ID 0, version 0
Origin-AS validity: (disabled)
Path #2: Received by speaker 0
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.3 0.4
65004 65003
10.1.6.6 from 10.1.6.6 (10.0.0.6)
Origin IGP, localpref 200, valid, external, best, group-best
Received Path ID 0, Local Path ID 1, version 13
Origin-AS validity: (disabled)
Path #3: Received by speaker 0
Not advertised to any peer
65004 65003, (received-only)
10.1.6.6 from 10.1.6.6 (10.0.0.6)
Origin IGP, localpref 100, valid, external
Received Path ID 0, Local Path ID 0, version 0
Origin-AS validity: (disabled)ベストがR6経由(Path #2)に移り、localpref 200が効いています。
STEP 4:R1でも 192.168.6.0/24 を生成する
R6が広告している192.168.6.0/24を、R1でもNull0へのstaticとnetwork文で生成します。R6が落ちたときの受け皿としてよくある構成です。
router static
address-family ipv4 unicast
192.168.6.0/24 Null0
!
!
router bgp 65001
address-family ipv4 unicast
network 192.168.6.0/24RP/0/RP0/CPU0:R1#show bgp 192.168.6.0/24
Tue Sep 8 10:31:04.448 UTC
BGP routing table entry for 192.168.6.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 14 14
Last Modified: Sep 8 10:30:36.774 for 00:00:27
Paths: (2 available, best #1)
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.3 0.4
Path #1: Received by speaker 0
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.3 0.4
Local
0.0.0.0 from 0.0.0.0 (10.0.0.1)
Origin IGP, metric 0, localpref 100, weight 32768, valid, local, best, group-best
Received Path ID 0, Local Path ID 1, version 14
Path #2: Received by speaker 0
Not advertised to any peer
65004, (received & used)
10.1.6.6 from 10.1.6.6 (10.0.0.6)
Origin IGP, metric 0, localpref 100, valid, external, group-best
Received Path ID 0, Local Path ID 0, version 0
Origin-AS validity: (disabled)自局生成のPath #1がweight 32768でベストになり、R6からのPath #2(WEIGHT 0)は1番目で負けています。R1が外へ広告する内容も変わります。
RP/0/RP0/CPU0:R1#show bgp neighbors 10.1.4.4 advertised-routes
Tue Sep 8 10:31:07.589 UTC
Network Next Hop From AS Path
192.168.1.0/24 10.1.4.1 Local 65001i
192.168.2.0/24 10.1.4.1 10.0.0.2 65001i
192.168.3.0/24 10.1.4.1 10.0.0.3 65001i
192.168.4.0/24 10.1.4.1 10.1.4.4 65001 65002i
192.168.5.0/24 10.1.4.1 10.1.6.6 65001 65004 65003i
192.168.6.0/24 10.1.4.1 Local 65001i
Processed 6 prefixes, 6 paths192.168.6.0/24がFrom Local、AS_PATH 65001になりました(STEP 3までは中継で65001 65004)。一方でRIBには注意が要ります。
RP/0/RP0/CPU0:R1#show route
Tue Sep 8 10:31:02.368 UTC
Codes: C - connected, S - static, R - RIP, B - BGP, (>) - Diversion path
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - ISIS, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, su - IS-IS summary null, * - candidate default
U - per-user static route, o - ODR, L - local, G - DAGR, l - LISP
A - access/subscriber, a - Application route
M - mobile route, r - RPL, t - Traffic Engineering, (!) - FRR Backup path
s - local SRv6 route, z - local IID route
Gateway of last resort is not set
L 10.0.0.1/32 is directly connected, 00:18:58, Loopback0
O 10.0.0.2/32 [110/3] via 10.1.3.3, 00:18:18, GigabitEthernet0/0/0/0
O 10.0.0.3/32 [110/2] via 10.1.3.3, 00:18:24, GigabitEthernet0/0/0/0
C 10.1.3.0/24 is directly connected, 00:18:52, GigabitEthernet0/0/0/0
L 10.1.3.1/32 is directly connected, 00:18:52, GigabitEthernet0/0/0/0
C 10.1.4.0/24 is directly connected, 00:18:52, GigabitEthernet0/0/0/1
L 10.1.4.1/32 is directly connected, 00:18:52, GigabitEthernet0/0/0/1
C 10.1.6.0/24 is directly connected, 00:18:52, GigabitEthernet0/0/0/2
L 10.1.6.1/32 is directly connected, 00:18:52, GigabitEthernet0/0/0/2
O 10.2.3.0/24 [110/2] via 10.1.3.3, 00:18:24, GigabitEthernet0/0/0/0
O 10.2.4.0/24 [110/3] via 10.1.3.3, 00:18:18, GigabitEthernet0/0/0/0
C 192.168.1.0/24 is directly connected, 00:18:58, Loopback1
L 192.168.1.1/32 is directly connected, 00:18:58, Loopback1
B 192.168.2.0/24 [200/0] via 10.0.0.2, 00:16:58
B 192.168.3.0/24 [200/0] via 10.0.0.3, 00:16:58
B 192.168.4.0/24 [20/0] via 10.1.4.4, 00:03:58
B 192.168.5.0/24 [20/0] via 10.1.6.6, 00:03:58
S 192.168.6.0/24 is directly connected, 00:00:27, Null0staticのAD(1)はeBGP(20)より小さいので、RIBはNull0のstaticのままで、R1自身は192.168.6.0/24宛てを転送できません。以降のSTEPで動くのはBGPテーブルと広告の側です。
STEP 5:自局生成のWEIGHTを 0 に下げてみる
network文にルートポリシーを付けてset weight 0し、自局生成を弱めてみます。
route-policy SET-WEIGHT-0
set weight 0
pass
end-policy
!
router bgp 65001
address-family ipv4 unicast
network 192.168.6.0/24 route-policy SET-WEIGHT-0RP/0/RP0/CPU0:R1#show bgp 192.168.6.0/24
Tue Sep 8 10:33:51.523 UTC
BGP routing table entry for 192.168.6.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 15 15
Last Modified: Sep 8 10:33:17.774 for 00:00:33
Paths: (2 available, best #1)
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.3 0.4
Path #1: Received by speaker 0
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.3 0.4
Local
0.0.0.0 from 0.0.0.0 (10.0.0.1)
Origin IGP, metric 0, localpref 100, valid, local, best, group-best
Received Path ID 0, Local Path ID 1, version 15
Path #2: Received by speaker 0
Not advertised to any peer
65004, (received & used)
10.1.6.6 from 10.1.6.6 (10.0.0.6)
Origin IGP, metric 0, localpref 100, valid, external, group-best
Received Path ID 0, Local Path ID 0, version 0
Origin-AS validity: (disabled)WEIGHTは落ちましたが、ベストはPath #1のままです。並んだ後の条件(3番目の「自分で生成した経路」、4番目のAS_PATH長0対1)がどちらも自局生成に有利だからです。WEIGHTは0が下限なので、受信経路を選ばせるには受信側を32768より上に持ち上げるしかありません。
STEP 6:R6向けに weight 40000 を入れる
R1のR6向けネイバーにWEIGHT 40000を設定します。
router bgp 65001
neighbor 10.1.6.6
address-family ipv4 unicast
weight 40000RP/0/RP0/CPU0:R1#show bgp 192.168.6.0/24
Tue Sep 8 10:37:03.692 UTC
BGP routing table entry for 192.168.6.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 18 18
Last Modified: Sep 8 10:36:36.774 for 00:00:27
Paths: (3 available, best #2)
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.3 0.4
Path #1: Received by speaker 0
Not advertised to any peer
Local
0.0.0.0 from 0.0.0.0 (10.0.0.1)
Origin IGP, metric 0, localpref 100, valid, local, group-best
Received Path ID 0, Local Path ID 0, version 0
Path #2: Received by speaker 0
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.3 0.4
65004
10.1.6.6 from 10.1.6.6 (10.0.0.6)
Origin IGP, metric 0, localpref 100, weight 40000, valid, external, best, group-best
Received Path ID 0, Local Path ID 1, version 18
Origin-AS validity: (disabled)
Path #3: Received by speaker 0
Not advertised to any peer
65004, (received-only)
10.1.6.6 from 10.1.6.6 (10.0.0.6)
Origin IGP, metric 0, localpref 100, valid, external
Received Path ID 0, Local Path ID 0, version 0
Origin-AS validity: (disabled)R6からのPath #2がweight 40000でベストになり、自局生成のPath #1はテーブルに居るがベストでない状態になりました。広告も65001 65004の中継に戻ります。
ネイバー単位のWEIGHTはそのピアからの全プレフィックスに効くので、192.168.4.0/24と192.168.5.0/24もR6経由に変わります。絞るなら入方向ルートポリシーのset weightを使います。
STEP 7:R6の Loopback1 を落とす(最終状態)
R6のLoopback1をshutdownします。
interface Loopback1
shutdownRP/0/RP0/CPU0:R1#show bgp 192.168.6.0/24
Tue Sep 8 10:39:59.616 UTC
BGP routing table entry for 192.168.6.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 19 19
Last Modified: Sep 8 10:39:28.774 for 00:00:30
Paths: (1 available, best #1)
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.3 0.4
Path #1: Received by speaker 0
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.3 0.4
Local
0.0.0.0 from 0.0.0.0 (10.0.0.1)
Origin IGP, metric 0, localpref 100, valid, local, best, group-best
Received Path ID 0, Local Path ID 1, version 19R6からのパスが消え、自局生成の経路がベストに浮上しました。
RP/0/RP0/CPU0:R1#show bgp neighbors 10.1.4.4 advertised-routes
Tue Sep 8 10:40:02.832 UTC
Network Next Hop From AS Path
192.168.1.0/24 10.1.4.1 Local 65001i
192.168.2.0/24 10.1.4.1 10.0.0.2 65001i
192.168.3.0/24 10.1.4.1 10.0.0.3 65001i
192.168.4.0/24 10.1.4.1 10.1.6.6 65001 65004 65003 65002i
192.168.5.0/24 10.1.4.1 10.1.6.6 65001 65004 65003i
192.168.6.0/24 10.1.4.1 Local 65001i
Processed 6 prefixes, 6 paths広告もLocal / 65001に戻りました。普段はR6経由を使い、R6が落ちたときだけ自分の経路が出る、フローティングスタティックと同じ考え方をWEIGHTで作れます。ただしR1のRIBはNull0のままで、R1自身は転送しません。使えるのは集約経路のアンカーのように「広告を出すこと自体が目的」の場合です。
検証Configおよびshow結果
各STEPで6台すべてから、次の3種類をルータごとに取得しています。検証Configはこの..._run.txtです(最終状態はSTEP 7)。
| ファイル | 内容 |
|---|---|
..._show.txt | show version / show interface description / show route / show bgp / show bgp neighbors <ピア> advertised-routes・routes・received routes など |
..._log.txt | そのSTEPの範囲に絞ったshow logging(logmsgのマーカー時刻をshow logging startに指定) |
..._run.txt | そのSTEP時点のshow running-config |
最終状態のR1には、192.168.6.0/24のNull0 static、network 192.168.6.0/24 route-policy SET-WEIGHT-0、R6向けのweight 40000、192.168.5.0/24にLOCAL_PREF 200を付けるLP-200が入っています。R6はLoopback1がshutdownされた状態です。
STEP 0:初期状態
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
| R6 | show | log | run |
STEP 1:R1のR4向けに weight 200
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
| R6 | show | log | run |
STEP 2:R1のR6向け入方向に LOCAL_PREF 200
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
| R6 | show | log | run |
STEP 3:weight 200 を撤去
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
| R6 | show | log | run |
STEP 4:R1に 192.168.6.0/24 のstatic+network を追加
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
| R6 | show | log | run |
STEP 5:network に set weight 0 を付ける
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
| R6 | show | log | run |
STEP 6:R1のR6向けに weight 40000
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
| R6 | show | log | run |
STEP 7:R6の Loopback1 を shutdown(最終状態)
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
| R6 | show | log | run |
R1-R3間(iBGP)のキャプチャー全体です。
検証で取得したキャプチャー全体(bgp-weight.pcap)をダウンロード参考
| 資料 | タイトル | 概要 |
|---|---|---|
| Cisco | Understand the Importance of BGP Weight Path Attribute | WEIGHTがシスコ独自でローカルにしか効かないこと、既定値が0、自局生成では32768になることを説明した文書。 |
| Cisco | Select BGP Best-path Algorithm | ベストパス選択の13ステップ。WEIGHTが1番目にあることを確認できる。 |
| Cisco | Configure and Verify BGP Path Selection in IOS-XR | IOS XRでのベストパス選択の確認方法。 |
関連記事
- BGP(Border Gateway Protocol)
- BGPメッセージ
- BGPネイバーの状態遷移
- iBGPとeBGPの違い
- BGP next-hop-self
- BGPルートリフレクタ
- BGPパス属性とベストパス選択
- BGP ORIGIN属性
- BGP AS_PATH属性
- BGP NEXT_HOP属性
- BGP LOCAL_PREF属性
- BGP MED属性
- BGP WEIGHT属性
- BGP COMMUNITY属性
- BGP経路集約(aggregate-address)
- MP-BGP(マルチプロトコル拡張)
- BGP Extended Community(拡張コミュニティ)
- BGPマルチパス(maximum-paths)
- BGPの4バイトAS番号(RFC 6793)
- BGPのプライベートAS番号の除去(remove-private-AS)
- BGPのADD-PATH(RFC 7911)
- BGP PIC(Prefix Independent Convergence)
- BGP Best External(ベストでない外部経路の広告)