| 確認 |
BGP属性を使うと,ピアリングしているASに「こっちの経路を優先して使って下さい」という操作もできます。
それが,MED(multi exit discriminator)と呼ばれる属性です。
●MED属性とは?
MED属性は,接続相手のASと複数のピアでつないでいるときに,相手のASからどのピアを使ってもらうかを指定したいときに使います。
LOCAL_PREFが「自ASが相手ASに」送るパケットを操作するのに対して,MEDは「相手ASが自ASに」送るパケットを操作するわけです。
ルーターは,BGPで同じあて先の経路情報を複数受信すると,MED値が小さい方の経路情報をベストパスとして採用します。
また,MED属性を加えた経路情報が伝わるのはは隣接するASまでで,その先のASには伝わりません。
●ネットワーク構成の確認
上のネットワーク構成図を見て下さい。
AS100とAS200をつなぐ経路は二つありますが,AS100の管理者は,「10.10.10.0/24あてのパケットは,下のRouterC経由で受け取りたい」と思っているとします。
例えば,RouterAとRouterB間の帯域が,RouterAとRouterCの帯域より小さいケースです。
そこでMED属性を使って,10.10.10.0/24あてのパケットが下のRouterC経由で流れてくるようにします。
では,RouterAの太字のコマンドを入れていない状態から見ていきましょう。
●設定前の状態確認
RouterAにMEDを設定する前に,RouterBの状態を見てみましょう。
まずはRouterBのBGPテーブル。
10.10.10.0/24の経路情報に注目すると,ネクストホップが192.168.1.1の経路情報がベストパスになっています。
RouterB#show ip bgp
BGP table version is 3, 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 100 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
RouterBのルーティング・テーブルも見てみましょう。
10.10.10.0/24の経路情報は,192.168.1.1がネクストホップになっています。
BGPテーブルでベストパスだった経路情報がルーティング・テーブルに採用されているわけですね。
RouterB#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
C 2.2.2.2 is directly connected,
Loopback0
3.0.0.0/32 is subnetted,
1 subnets
O 3.3.3.3 [110/129] via
192.168.3.2,
00:12:49, Serial1
4.0.0.0/32 is subnetted,
1 subnets
O 4.4.4.4 [110/65] via
192.168.3.2,
00:12:49, Serial1
20.0.0.0/24 is subnetted,
1 subnets
B 20.20.20.0 [20/0] via
192.168.1.1,
00:11:35
O 192.168.4.0/24 [110/128]
via 192.168.3.2,
00:12:49, Serial1
10.0.0.0/24 is subnetted,
1 subnets
B 10.10.10.0 [20/0] via
192.168.1.1,
00:11:36
C 192.168.1.0/24 is directly
connected,
Serial0
O 192.168.2.0/24 [110/192]
via 192.168.3.2,
00:12:51, Serial1
C 192.168.3.0/24 is directly
connected,
Serial1
●RouterAにMEDを設定する
それでは,RouterAにMEDを設定します。
ここでは,RouterB転送用とRouterC転送用の二つのルートマップを作ります。
具体的には,RouterBに送る経路情報のMED値を100にし,RouterCに送る経路情報のMED値を50にします。
こうすればAS100内のBGPスピーカは,RouterCが広報したMED値の小さい方の経路情報を採用するはずです。
MEDの設定は,以下のようになります。
最初に,対象の経路情報である10.10.10.0/24をアクセス・リストで定義します。
RouterA(config)#access-list 1 permit 10.10.10.0 0.0.0.255
BGPの経路情報のMED値を50にするルートマップを作ります。
ルートマップ名は「MED50」にします。
RouterA(config)#route-map MED50 permit 10
RouterA(config-route-map)#match ip address 1
RouterA(config-route-map)#set metric 50
RouterA(config-route-map)#exit
RouterA(config)#route-map MED50 permit 20
RouterA(config-route-map)#set metric
続いて,BGPの経路情報のMED値を100にするルートマップを作ります。
ルートマップ名は「MED100」にします。
RouterA(config)#route-map MED100 permit 10
RouterA(config-route-map)#match ip address 1
RouterA(config-route-map)#set metric 100
RouterA(config-route-map)#exit
RouterA(config)#route-map MED100 permit 20
RouterA(config-route-map)#set metric
最後に,作ったルートマップをネイバーに適用します。
RouterAが送り出す外向きの経路情報にMED属性を加えるので,「out」と指定します。
RouterA(config)#router bgp 100
RouterA(config-router)#neighbor 192.168.2.2 route-map MED50 out
RouterA(config-router)#neighbor 192.168.1.2 route-map MED100 out
設定は以上です。
●設定後の動作確認
RouterBとRouterCが確立しているBGPピアをいったんリセットして再確立させます。
すべてのBGPピアをリセットするには,clear
ip bgp *コマンドを使います。
RouterC#clear ip bgp *
RouterC#
00:39:07: %BGP-5-ADJCHANGE: neighbor
2.2.2.2
Down User reset
00:39:07: %BGP-5-ADJCHANGE: neighbor
4.4.4.4
Down User reset
00:39:07: %BGP-5-ADJCHANGE: neighbor
192.168.2.1
Down User reset
00:39:36: %BGP-5-ADJCHANGE: neighbor
2.2.2.2
Up
00:39:37: %BGP-5-ADJCHANGE: neighbor
4.4.4.4
Up
00:39:45: %BGP-5-ADJCHANGE: neighbor
192.168.2.1
Up
三つのピアがリセットされて,しばらくすると三つとも再確立しました。
RouterBも同様に再確立させます。
RouterB#clear ip bgp *
RouterB#
00:40:08: %BGP-5-ADJCHANGE: neighbor
3.3.3.3
Down User reset
00:40:08: %BGP-5-ADJCHANGE: neighbor
4.4.4.4
Down User reset
00:40:08: %BGP-5-ADJCHANGE: neighbor
192.168.1.1
Down User reset
00:40:37: %BGP-5-ADJCHANGE: neighbor
4.4.4.4
Up
00:40:38: %BGP-5-ADJCHANGE: neighbor
3.3.3.3
Up
00:40:50: %BGP-5-ADJCHANGE: neighbor
192.168.1.1
Up
RouterBのBGPテーブルを見てみましょう。
10.10.10.0/24の経路情報のベストパスが,ネクストホップが192.168.2.1のものに変わりました。
この経路情報を見てみると,「Metric」の項目が50になっており,これがMEDです。
もう一方の経路情報のMetricは100であり,値の小さい192.168.2.1経由の経路情報を選んだわけです。
RouterB#show ip bgp
BGP table version is 3, 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
* 10.10.10.0/24 192.168.1.1 100
0 100 i
*>i
192.168.2.1
50 100 0 100 i
*> 20.20.20.0/24 192.168.1.1 0
0 100 i
* i 192.168.2.1 0 100
0 100 i
RouterBのルーティング・テーブルも見ておきましょう。
BGPテーブルでベストパスに選ばれていた192.168.2.1経由の経路情報を採用しているのがわかります。
RouterB#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
C 2.2.2.2 is directly connected,
Loopback0
3.0.0.0/32 is subnetted,
1 subnets
O 3.3.3.3 [110/129] via
192.168.3.2,
00:33:53, Serial1
4.0.0.0/32 is subnetted,
1 subnets
O 4.4.4.4 [110/65] via
192.168.3.2,
00:33:53, Serial1
20.0.0.0/24 is subnetted,
1 subnets
B 20.20.20.0 [20/0] via
192.168.1.1,
00:05:51
O 192.168.4.0/24 [110/128]
via 192.168.3.2,
00:33:53, Serial1
10.0.0.0/24 is subnetted,
1 subnets
B 10.10.10.0 [200/50] via
192.168.2.1,
00:05:52
C 192.168.1.0/24 is directly
connected,
Serial0
O 192.168.2.0/24 [110/192]
via 192.168.3.2,
00:33:54, Serial1
C 192.168.3.0/24 is directly
connected,
Serial1
RouterBにとってみると,10.10.10.0/24あてにパケットを送るときに192.168.2.1を経由するのは遠回りまです。
こうして,BGPの経路情報にMED属性を付加することで,相手ASのパケットを操作できるわけです。
ちなみに,RouterAでshow route-mapと入力すると,作ったルートマップを確認することができます。
RouterA#show route-map
route-map MED50, permit, sequence
10
Match clauses:
ip address (access-lists):
1
Set clauses:
metric 50
Policy routing matches: 0 packets,
0 bytes
route-map MED50, permit, sequence
20
Match clauses:
Set clauses:
Policy routing matches: 0 packets,
0 bytes
route-map MED100, permit, sequence
10
Match clauses:
ip address (access-lists):
1
Set clauses:
metric 100
Policy routing matches: 0 packets,
0 bytes
route-map MED100, permit, sequence
20
Match clauses:
Set clauses:
Policy routing matches: 0 packets,
0 bytes
|
|