| 確認 |
MED属性を加えた経路情報が伝わるのはは隣接するASまでで,その先のASには伝わりません。
その先のASに優先順位情報を伝えるためには,「AS
PATHプリペンド」という方法を使います。
●AS PATH属性とは?
AS PATH属性は,経由してきたASを記録しておくためのものです。
ASを経由するごとにAS PATHにAS番号が追加され,記録されたAS番号の数が少ない方の経路情報を採用します。
他の属性を設定していないときは,この属性によってベストパスが決まります。
ASを「1個のルーター」とみなした場合の,「ホップ数」というイメージです。
また,「AS PATHの中に自分のAS番号が入ってきたら破棄し,経路情報のループを防ぐという役割もあります。
●ネットワーク構成の確認
上のネットワーク構成図を見て下さい。
AS100が外部にBGPピアを2個持っています。
でもAS100では,10.10.10.0/24あてのパケットは,192.168.2.1側のルート(下側のルート)からトラフィックが入ってくるようにしたいと思っています。
そこでASパス属性を使って,10.10.10.0/24あてのパケットが192.168.2.1に流れてくるようにします。
では,RouterAの太字のコマンドを入れていない状態から見ていきましょう。
●設定前の状態確認
RouterDのBGPテーブルを見てみましょう。
10.10.10.0/24あての経路情報は,192.168.3.1(RouterB)経由になっています。
RouterD#show ip bgp
BGP table version is 2, local
router ID is
192.168.4.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.4.1 0
60 100 i
*> 192.168.3.1 0
50 100 i
RouterDのルーティング・テーブルも見てみましょう。
ベストパスだった192.168.3.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
C 192.168.4.0/24 is directly
connected,
Serial1
10.0.0.0/24 is subnetted,
1 subnets
B 10.10.10.0 [20/0] via
192.168.3.1,
00:12:44
C 192.168.3.0/24 is directly
connected,
Serial0
●RouterAにAS PATHプリペンドの設定をする
それでは,RouterAにAS PATH属性を設定します。
どういう方法をとるかというと,「RouterBに送出するBGPの経路情報には,AS
PATH番号『100 100』を追加する」という方法を取ります。
通常ならばRouterAが他ASのBGPスピーカに経路情報を配信するときには,自分のAS
PATH属性「100」を1個だけ追加して送ります。
ですがここでは,意図的にAS番号「100」を2個追加して,「こっちの経路は遠いぞ」と通知してやるわけです。
このように意図的にAS番号を追加することを,「AS
PATHプリペンド」と言います。
AS PATHプリペンドの設定は,以下のようになります。
最初に,対象の経路情報である10.10.10.0/24をアクセス・リストで定義します。
RouterA(config)#access-list 1 permit 10.10.10.0 0.0.0.255
次に,ルートマップを定義します。
「アクセスリスト1番にマッチした経路情報は,AS
PATHに『100 100』をプリペンドする」と設定します
RouterA(config)#route-map ADDASPATH permit 10
RouterA(config-route-map)#match ip address 1
RouterA(config-route-map)#set as-path prepend 100 100
RouterA(config-route-map)#route-map ADDASPATH permit 20
RouterA(config-route-map)#set as-path prepend
そして定義したルートマップを,ネイバーに適用します。
RouterAが送り出す外向きの経路情報にMED属性を加えるので,「out」と指定します。
RouterA(config)#router bgp 100
RouterA(config-router)#neighbor 192.168.1.2 route-map ADDASPATH
out
●設定後の動作確認
RouterAのBGPピアをいったんリセットして再確立させます。
clear ip bgp *コマンドを使います。
RouterA#clear ip bgp *
RouterA#
*Mar 1 00:33:24.839: %BGP-5-ADJCHANGE:
neighbor
192.168.1.2 Down User reset
*Mar 1 00:33:24.843: %BGP-5-ADJCHANGE:
neighbor
192.168.2.2 Down User reset
*Mar 1 00:34:04.431: %BGP-5-ADJCHANGE:
neighbor
192.168.1.2 Up
*Mar 1 00:34:08.071: %BGP-5-ADJCHANGE:
neighbor
192.168.2.2 Up
RouterDのBGPテーブルを見てみましょう。
RouterD#show ip bgp
BGP table version is 5, local
router ID is
192.168.4.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.4.1 0
60 100 i
* 192.168.3.1 0
50 100 100 100 i
10.10.10.0/24あてのベストパスが,192.168.4.1(RouterC)に変更されました。
「Path」の項目に注目してください。
192.168.3.1(RouterB)から受信した経路情報のAS
PATHが「50 100 100 100」となっています。
PATHプリペンドで,「100 100」とASパス番号を2個追加したことが確認できます。
ルーターはこの情報を,「ここまでに経由してきたASは,100→100→100→50の4個」と読み取ります。
なのでRouterDは,この経路情報は「遠い」と判断して,ベストパスを他の経路情報にしたわけです。
RouterDのルーティング・テーブルも見てみましょう。
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
C 192.168.4.0/24 is directly
connected,
Serial1
10.0.0.0/24 is subnetted,
1 subnets
B 10.10.10.0 [20/0] via
192.168.4.1,
00:01:08
C 192.168.3.0/24 is directly
connected,
Serial0
BGPテーブルでベストパスだった経路情報が採用され,10.10.10.0/24あてのネクストホップが192.168.4.1(RouterC)になりました。
最後に,RouterAのルートマップを確認してみましょう。
RouterA#show route-map
route-map ADDASPATH, permit,
sequence 10
Match clauses:
ip address (access-lists):
1
Set clauses:
as-path prepend 100 100
Policy routing matches: 0 packets,
0 bytes
route-map ADDASPATH, permit,
sequence 20
Match clauses:
Set clauses:
Policy routing matches: 0 packets,
0 bytes
AS PATHプリペンドで,AS PATHに「100 100」を追加して送っていることがわかります。
|
|