今回は,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アドレス

 図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の設定
Local_Prefereceの設定

 図6 ルータDのBGPテーブル
ルータ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)が選択されています。