今回は,BGP編のまとめとして,パスアトリビュートの変更を含めた詳細な設定方法と,設定の確認方法を学習しましょう。
Next_Hopアトリビュートを活用する
Next_Hopアトリビュートは,パケットを送る次のルーター(ネクストホップ)を決めるアトリビュートです。このアトリビュートとして記載される情報は,iBGPの場合はアドバタイズを送信してきたルータのアドレス,eBGPの場合はASの境界ルータのアドレスになります。ただし,AS間がマルチアクセスネットワークで接続されている場合,これとは動作が異なります。第3回の図2で取り上げた図をもう一度掲載します(図1)。
図1 Next_Hopアトリビュート
ただし,フレームリレーのようなNBMA(ノンブロードキャストマルチアクセス)環境では問題が発生します。フレームリレーではPVCの設定によって接続先ルータ(ネクストホップ)を指定します。この接続先ルータのアドレスとBGPテーブルに記載されたネクストホップが一致しない場合,通信できなくなってしまいます(図2)。
図2 NBMA(ノンブロードキャストマルチアクセス)環境で発生する問題
この問題を解決するためには,上図の場合ではルータAがNext_Hopアトリビュートを変更して通知する必要があります。Next_Hopアトリビュートを変更するには,next-hop-selfコマンドを使います(図3)。
- (config-router)# neighbor [ピアのIPアドレス] next-hop-self
- [ピアのIPアドレス]
- ネクストホップアトリビュートを変更してアドバタイズする先のピアのIPアドレス
- [ピアのIPアドレス]
図3 Next_Hopアトリビュートの変更
また,next-hop-selfコマンドを使うことにより,あるASから受け取った経路情報を別のASへ流すことができるようになります(トランジットマルチホームAS)(図4)。
図4 Next_Hopアトリビュートの変更(その2)
パス選択アトリビュート
BGPでよく使われるアトリビュートとしては,Local_Preference,MED,Weightの3つがあります。このうち,Local_Preference値の設定例を見てみましょう。Local_Preferenceの変更は,bgp default local-preferenceコマンドを使用します。
- (config-router)# bgp default local-preference [値]
- [値]
- 設定されるLocal_Preference値。32ビット
- [値]
以下のようなネットワーク構成で,ルータBとルータCにLocal_Preferece値を設定した場合のBGPテーブルを見てみましょう(図5と6)。
図5 Local_Prefereceの設定
図6 ルータDのBGPテーブル
bgp default local-preferenceの設定どおり,Local_Preferenceが200と500が通知されています。それにより,1.0.0.0へのパスはルータC経由,さらに2.0.0.0へのパスもルータCを経由するパスが選択されていることがわかります。2.0.0.0は本来ならば,ルータBに直結されているため,ルータB経由が優先されるパスですが,Local_Preference値を変えたことにより,ルータC経由(ルータC→ルータA)が選択されています。