BGP(同期化とは)

 ルーティングには、必ずルーティングループの問題が付きまとってきます。

BGPにおいても同様です。

 BGPでは、iBGPにおいて、スプリットホライズンが実装されており、また、ここで紹介する、BGP同期という仕組みで、 ルーティングループの問題に対処しています。

 BGPは、AS間でルーティングさせるプロトコルです。

 BGP同期を説明する前に、「通過AS」と「スタブAS」を理解しておく必要があります。

ASの種類説明
通過AS 複数の自律システムに接続された自律システムのことです。1つの自律システムで学習した経路を別の自律システムに渡します。
上図では、AS200が該当します。
スタブAS 出入り口が1つしかないASです。上図では、AS100とAS300が該当します。

 上図では、AS100、AS300が、スタブASに、AS200が通過ASになっています。通過ASは、別のASから学習した情報を別のASに通過させます。

もしも、通過ASが、間違えた経路情報を別のASに通過させたらどうでしょうか?

ルーティングループの原因になりますね!

間違えた経路を通過させないようにする仕組みがBGP同期なのです。

 BGP同期とは、iBGPピアから学習した経路をeBGPピアにアドバタイズする前に、その経路がIGPと同期していなければならないというルールです。

つまり、

BGPで経路情報を受信しても、その経路情報をIGPで学習するまで有効にしない。

と言うことです。

iBGPとIGPの両方で、同じルートのアドバタイズを受けた時のみ、ルーティングテーブルに載せます。

BGP同期をさせるには、IGPにおいても、iBGP経路を持っていなければなりません。

解決策に、BGP経路をIGPに再配布させるという方法があります。

しかし、問題があります。

 上の図は、小さなネットワーク図なのでさほど問題に感じないかもしれませんが、BGPは、インターネット上の様々なAS間をルーティングさせるため、数十万以上の経路を扱います。その経路をIGPに再配送するとなると、IGPは、メルトダウンを起こしかねません。

その為、BGP同期という機能がありながら、一般的には、BGP同期は無効にされています。

 Cisco IOSにおいては、Version 12.2(8)以降では、BGP同期は、デフォルトで無効にされています。それより前のバージョンでは有効になっています。

BGP同期を無効にするには、「no synchronization」コマンドを使います。

Router(config-router)#no synchronization

BGP同期を有効にするには、「synchronization」コマンドを使います。

Router(config-router)#synchronization

 BGPの実機演習を行う際には、IOSのバージョンを気に留めておいて下さい。バージョンによって、BGP同期の扱いが異なります。

次の「BGP(同期化の設定 その1)」では、BGP同期について検証していきます。