| 確認 |
BGPには,「BGP同期」と呼ばれる機能が備わっています。
「BGPで経路情報を受信しても,その経路情報をIGPで学習するまで有効にしない」という機能です。
こうすることで,確実に到達できる経路情報のみを他のASに流すようにします。
●設定の確認
BGP同期は,IOS12.2(8)T以前のルーターで,デフォルトで有効です。
今回は,RouterCがIOS12.2(1)なので,RouterCでBGP同期が有効になっています。
そのほかのRouterAとRouterBのIOSは12.3なので,あらかじめBGP同期を無効にする「no
synchronization」コマンドが入っています。
●動作の確認
RouterAとRouterB同士,RouterBとRouterC同士で,ピアを確立した状態から見ていきましょう。
つまり上の設定で,
・RouterBでneighbor 192.168.2.2 next-hop-self
・RouterCでno synchronization
という二つのコマンドのみを,まだ入力していない状態です。
まずは,RouterCに1.1.1.0/24の経路情報がBGPで流れて来ているか確認してみます。
RouterC#show ip route
Codes: C - connected, S - static, I - IGRP,
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, E - EGP
i - IS-IS, 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.2.0/24 is directly
connected,
Serial0
BGPで学習した経路情報を示す「B」の文字がある経路情報がありません。
show ip bgpで,RouterCのBGPテーブルを見てみます。
RouterC#show ip bgp
BGP table version is 1, local
router ID is
192.168.2.2
Status codes: s suppressed, d damped, h history,
* valid, > best, i - internal
Origin codes: i - IGP, e - EGP,
? - incomplete
Network Next Hop Metric
LocPrf Weight Path
* i1.1.1.0/24 192.168.1.1 0 100 0
100 i
1.1.1.0/24のエントリはあるので,BGPで経路情報自体は流れて来ています。
ただ,ベストパスになっていないため,ルーティング・テーブルに載せられていません。
(ベストパスになると,左部分に「>」の記号が付きます。)
ベストパスになってない原因は何でしょうか?
「show ip bgp」のあとに経路情報のアドレスを入力すると,その経路情報の詳しく調べることができます。
RouterC#show ip bgp 1.1.1.0
BGP routing table entry for 1.1.1.0/24,
version
0
Paths: (1 available, no best
path)
Not advertised to any peer
100
192.168.2.1 from 192.168.2.1
(192.168.2.1)
Origin IGP, metric 0, localpref 100,
valid, internal, not synchronized
「not synchronized」という表示が見えます。
これは,「BGP同期がとれていない」ということを示しています。
つまり,1.1.1.0/24の経路情報がBGPで流れて来たけど,IGPでは学習していない状態です。
この問題を解決するには,RouterCに1.1.1.0/24の経路情報を,スタティックで追加すればOKです。
でも今回は,IOS12.3のデフォルト設定のように,BGP同期を無効にしましょう。
RouterC(config)#router bgp 200
RouterC(config-router)#no synchronization
BGPテーブルはどうなったでしょうか。再びshow
ip bgpで確認してみます。
RouterC#show ip bgp
BGP table version is 1, local
router ID is
192.168.2.2
Status codes: s suppressed, d
damped, h history,
* valid, > best, i - internal
Origin codes: i - IGP, e - EGP,
? - incomplete
Network Next Hop Metric
LocPrf Weight Path
* i1.1.1.0/24 192.168.1.1 0 100 0
100 i
むむ,さっきと変わりません。
相変らず,1.0.0.0/24の経路情報は,ベストパスになりません。
再び,show ip bgp 1.1.1.0コマンドで調べてみます。
RouterC#show ip bgp 1.1.1.0
BGP routing table entry for 1.1.1.0/24,
version
0
Paths: (1 available, no best
path)
Not advertised to any peer
100
192.168.1.1 (inaccessible) from 192.168.2.1
(192.168.2.1)
Origin IGP, metric 0, localpref
100,
valid, internal
今度は,192.168.1.1の部分に「inaccessible」と表示されています。
これは,192.168.1.1(この経路情報のネクストホップ)へ到達できないことを意味しています。
このネクストホップへの到達性がないので,まだルーティング・テーブルに載せられなかったわけです。
(IBGPではネクストホップを変えずに経路情報を通知するため,1.1.1.0/24のネクストホップは192.168.1.1(RouterA)のままRouterCに通知されます。)
「BGPの基本設定」では,RouteCに経路情報をスタティックに追加して,この問題を解決しました。
今回は,RouterBが通知する192.168.1.0/24のネクストホップを,自分のアドレスに変更しちゃいましょう。
neighborコマンドに「next-hop-self」とパラメータを付けると,ネクストホップを自身のIPアドレスに変更して通知します。
このコマンドをRouterBに設定します。
RouterB(config)#router bgp 200
RouterB(config-router)#neighbor 192.168.2.2 next-hop-self
BGPテーブルを見てみます。
RouterC#show ip bgp
BGP table version is 2, local
router ID is
192.168.2.2
Status codes: s suppressed, d
damped, h history,
* valid, > best, i - internal
Origin codes: i - IGP, e - EGP,
? - incomplete
Network Next Hop Metric
LocPrf Weight Path
*>i1.1.1.0/24 192.168.2.1 0 100 0
100 i
経路情報に,ベストパスを示す「>」マークが付きました。
ルーティング・テーブルを確認してみます。
RouterC#show ip route
Codes: C - connected, S - static,
I - IGRP,
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, E - EGP
i - IS-IS, 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
1.0.0.0/24 is subnetted,
1 subnets
B 1.1.1.0 [200/0] via 192.168.2.1,
00:01:44
C 192.168.2.0/24 is directly
connected,
Serial0
ルーティング・テーブルにBGPで受信した1.1.1.0/24の経路情報が登録されました。
ネクストホップはRouterBの192.168.1.2になっており,RouterBで入力したnext-hop-selfが効いています。
【参考URL】
●BGPで最適パスを選択するアルゴリズム
http://www.cisco.com/japanese/warp/public/3/jp/service/tac/459/25-j.html
「BGP同期は無効化するケースが多い」,「ネクストホップに到達できないとベストパスになれない」
●BGP同期のsynchronizationコマンド
http://www.cisco.com/univercd/cc/td/doc/product/software/ios123/123tcr/123tip2r/ip2_s4gt.htm#wp1165960
「BGP同期は,IOS12.2(8)T以降ではデフォルトで無効」
|
|