| 確認 |
BGPの特徴は,BGPパケットに属性値をセットして,パケットの経路を柔軟に操作できるところです。
ここでは,AS内のBGPスピーカに対して経路情報の優先度を知らせる,local
preference(LOCAL_PREF)属性を使ってみましょう。
●LOCAL_PREF属性とは?
LOCAL_PREF属性は,IBGP専用の属性で,AS内のBGPスピーカーに,経路情報の優先度を知らせる用途で使います。
「低速回線のピアよりも高速回線のピアを使いたい」などという場合に使います。
IBGPで同じあて先の経路情報を複数取得したとき,LOCAL_PREF値の大きい方をベストパスとして採用します。
設定できる値は0〜4294967295で,何も設定しなければデフォルトで100が設定されます。
●ネットワーク構成の確認
上のネットワーク構成図を見て下さい。
ここで操作するのは,10.10.10.0/24の経路情報です。
AS200から見ると,10.10.10.0/24あての経路は,上(192.168.1.1)経由と下(192.168.2.1)経由の二つあります。
ここでは,RouterCに入ってきた10.10.10.0/24の経路情報のLOCAL_PREFを,デフォルトの100から200に変更して,AS200内に伝達するようにします。
こうすることにより,AS200内では10.10.10.0/24あてのパケットは,下(192.168.2.1)の経路を経由するようにします。
では,RouterCの太字のコマンドを入れていない状態から見ていきましょう。
●設定前の状態確認
RouterCにLOCAL_PREFを設定する前の,RouterDのBGPテーブルを見てみます。
10.10.10.0/24あてのパケットは,192.168.1.1を経由するようになっています。
RouterD#show ip bgp
BGP table version is 5, local
router ID is
4.4.4.4
Status codes: s suppressed, d
damped, h history,
* valid, > best, i - internal,
r RIB-failure,
S Stale
Origin codes: i - IGP, e - EGP,
? - incomplete
Network Next Hop Metric
LocPrf Weight Path
*>i10.10.10.0/24 192.168.1.1 0 100 0
100 i
* i 192.168.2.1 0 100 0
100 i
*>i20.20.20.0/24 192.168.1.1 0 100 0
100 i
* i 192.168.2.1 0 100 0
100 i
RouterDのルーティング・テーブルも見てみましょう。
10.10.10.0/24の経路情報は,BGPテーブルでベストパスだった192.168.1.1経由になっています。
RouterD#show ip route
Codes: C - connected, S - static,
R - RIP,
M - mobile, B - BGP
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
i - IS-IS, su - IS-IS
summary, L1
- IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area,
* - candidate
default, U - per-user static
route
o - ODR, P - periodic
downloaded static
route
Gateway of last resort is not
set
2.0.0.0/32 is subnetted,
1 subnets
O 2.2.2.2 [110/65] via
192.168.3.1,
00:02:10, Serial0
3.0.0.0/32 is subnetted,
1 subnets
O 3.3.3.3 [110/65] via
192.168.4.1,
00:02:10, Serial1
4.0.0.0/32 is subnetted,
1 subnets
C 4.4.4.4 is directly connected,
Loopback0
20.0.0.0/24 is subnetted,
1 subnets
B 20.20.20.0 [200/0] via
192.168.1.1,
00:02:04
C 192.168.4.0/24 is directly
connected,
Serial1
10.0.0.0/24 is subnetted,
1 subnets
B 10.10.10.0 [200/0] via
192.168.1.1,
00:02:05
O 192.168.1.0/24 [110/128]
via 192.168.3.1,
00:02:11, Serial0
O 192.168.2.0/24 [110/128]
via 192.168.4.1,
00:02:11, Serial1
C 192.168.3.0/24 is directly
connected,
Serial0
●RouterCにLOCAL_PREFを設定する
RouterCにLOCAL_PREFを設定して配布するようにしましょう。
BGP属性を変更してアドバタイズするには,ルートマップを使います。
ルートマップは,「経路情報が〜の条件にマッチしたら〜せよ」というように,経路情報を細かく操作できます。
今回はRouterCに,「10.10.10.10/24の経路情報が入ってきたら,LOCAL_PREF属性を200にして配布せよ」と設定します。
コマンドは,以下のようになります。
RouterC(config)#route-map LOCALPREF permit 10
RouterC(config-route-map)#match ip address 1
RouterC(config-route-map)#set local-preference 200
RouterC(config-route-map)#exit
RouterC(config)#route-map LOCALPREF permit 20
RouterC(config-route-map)#set local-preference 100
RouterC(config-route-map)#exit
RouterC(config)#access-list 1 permit 10.10.10.0 0.0.0.255
RouterC(config)#router bgp 200
RouterC(config-router)#neighbor 192.168.2.1 route-map LOCALPREF
in
ルートマップ名「LOCALPREF」
10:経路情報が10.10.10.0/24だったらLOCAL_PREF値に200をセット
20:それ以外だったらLOCAL_PREF値に100をセット(デフォルトと同じ動き)
→このルートマップを,ネイバー192.168.2.1から入ってきた経路情報に対して適用する
という感じです。
●設定後の動作確認
設定を反映させるため,RouterCのBGPピアをリセットして再確立させます。
二つのピアがダウンして,しばらくすると二つのピアが再確立されました。
RouterC#clear ip bgp *
RouterC#
01:36:01: %BGP-5-ADJCHANGE: neighbor
4.4.4.4
Down User reset
01:36:01: %BGP-5-ADJCHANGE: neighbor
192.168.2.1
Down User reset
01:36:30: %BGP-5-ADJCHANGE: neighbor
4.4.4.4
Up
01:36:45: %BGP-5-ADJCHANGE: neighbor
192.168.2.1
Up
RouterDのBGPテーブルを見てみましょう。
すると,ベストパスを示す「>」のステータス・コードが,ネクストホップが192.168.2.1の経路情報の方に変わりました(赤字の部分)。
この経路情報のLocPrefの項目を見ると,「200」になっています。
つまりRouterDは,LOCAL_PREF値が大きいこちらの方の経路情報を,ベストパスに選んだわけです。
RouterD#show ip bgp
BGP table version is 8, local
router ID is
4.4.4.4
Status codes: s suppressed, d
damped, h history,
* valid, > best, i - internal,
r RIB-failure,
S Stale
Origin codes: i - IGP, e - EGP,
? - incomplete
Network Next Hop Metric
LocPrf Weight Path
* i10.10.10.0/24 192.168.1.1 0 100 0
100 i
*>i 192.168.2.1 0 200 0
100 i
*>i20.20.20.0/24 192.168.1.1 0 100 0
100 i
* i 192.168.2.1 0 100 0
100 i
RouterDのルーティング・テーブルも見てみましょう。
10.10.10.0/24の経路情報のネクストホップが,192.168.2.1に変わりました。
RouterD#show ip route
Codes: C - connected, S - static,
R - RIP,
M - mobile, B - BGP
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
i - IS-IS, su - IS-IS
summary, L1
- IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area,
* - candidate
default, U - per-user static
route
o - ODR, P - periodic
downloaded static
route
Gateway of last resort is not
set
2.0.0.0/32 is subnetted,
1 subnets
O 2.2.2.2 [110/65] via
192.168.3.1,
00:09:06, Serial0
3.0.0.0/32 is subnetted,
1 subnets
O 3.3.3.3 [110/65] via
192.168.4.1,
00:09:06, Serial1
4.0.0.0/32 is subnetted,
1 subnets
C 4.4.4.4 is directly connected,
Loopback0
20.0.0.0/24 is subnetted,
1 subnets
B 20.20.20.0 [200/0] via
192.168.1.1,
00:09:01
C 192.168.4.0/24 is directly
connected,
Serial1
10.0.0.0/24 is subnetted,
1 subnets
B 10.10.10.0 [200/0] via
192.168.2.1,
00:01:34
O 192.168.1.0/24 [110/128]
via 192.168.3.1,
00:09:07, Serial0
O 192.168.2.0/24 [110/128]
via 192.168.4.1,
00:09:07, Serial1
C 192.168.3.0/24 is directly
connected,
Serial0
念のため,RouterBのBGPテーブルも見てみましょう。
RouterB#show ip bgp
BGP table version is 4, local
router ID is
2.2.2.2
Status codes: s suppressed, d
damped, h history,
* valid, > best, i - internal,
r RIB-failure,
S Stale
Origin codes: i - IGP, e - EGP,
? - incomplete
Network Next Hop Metric
LocPrf Weight Path
*>i10.10.10.0/24 192.168.2.1 0 200
0 100 i
* 192.168.1.1 0 0
100 i
* i20.20.20.0/24 192.168.2.1 0 100 0
100 i
*> 192.168.1.1 0 0
100 i
LOCAL_PREFが200の経路情報を受信して,それがベストパスになっています。
RouterBが10.10.10.0/24あてにパケットを送るときは,RouterD,RouterCという遠回りの経路を採用するようになったわけです。
このように,BGPパケットのLOCAL_PREF属性を操作することで,AS内で特定のパス優先的に通せるわけです。
|
|