BGP - IBGP



◇ BGPの同期原則の最新解説は「 BGP同期 - synchronization / no synchronization 」をご参考下さい。

◆ BGPの同期規則

BGPの同期規則では、「BGPルータはIBGP経由で学習したルートは、それがローカルであるか、IGPから学習
されたものでない限り、そのルートの転送や外部ASのBGPネイバーにアドバタイズしてはならない」とあります。
※ 同期原則を無効(no sync)としている場合、IBGPで学習した経路情報を、IGPで学習していていなくてもEBGPピアにアドバタイズします。

同期規則が適用されるトランジットAS20を例に考えて見ます。AS10に 「1.1.1.0/24」 の経路が発生して、R2に
アドバタイズしたとします。同期規則が無効( no synchronization )である場合、R2はIBGPピアであるR4に対し
その経路情報をR3経由( R3ではBGPが稼動してないが、R2とR4のIBGPピアの為のIGPは稼動 )で転送します。
R4はR5に 「1.1.1.0/24」をアドバタイズします。ここまでは特に問題ありませんが、R5のルーティングテーブルに
「1.1.1.0/24」の経路があることから、R5は「1.1.1.0/24」に向かってパケットを転送し始めます。R4に着信した後
R4はR3に「1.1.1.0/24」宛のパケットを転送しますが、R3のルーティングテーブルには経路がなく破棄されます。


 




同期規則が有効(synchronization)であれば、IBGP経由でルートを学習するEBGPルータ「R4」はIGPがAS内で
そのルートをアドバタイズし終わるのを待ちそのルートをEBGPルータにアドバタイズします。この構成の場合、
「1.1.1.0/24」の経路はR2でIGPにredistributeしている分けではないので、「1.1.1.0/24」の経路がR4にBGPで
アドバタイズされても、IGPでアドバタイズされていない事からR4はR5に 1.1.1.0/24 を転送する事はないです。


しかし、そもそも、トランジットASでIBGPフルメッシュでないことはありません。

例えば、トランジットAS20がAS10の経路をAS30にアドバタイズする場合、AS20でアドバタイズするBGPルータが
AS10から受信するBGPルートを IGP経由で学習済みである必要があるという事ですが、BGP同期原則がいかに
現在の「インターネット」に適しておらず、ISPにおいて非現実的であるのかは以下のBGPの説明で理解できます。

BGPはその名の通りBorder Gateway Protocolである事から、ASの境界上で実行するよう意図されていました。
しかし、インターネットワークが拡大してくるとISPなるものが生まれ、ISPでは、ある外部ASから他の外部ASへ
トラフィックを転送するAS(トランジットAS)の位置づけとなりました。トランジットAS内の全ルートは、BGPの
外部ルートについて完全に把握している必要があります。この目的を達成させる為には、トランジットAS内にて
BGPルートをIGPに再配布させるという方法と、フルメッシュのIBGPをAS内部で実行するという方法があります。
前者は、現在のインターネットのルーティングテーブルは非常に大きい為、IGPでは処理できないレベルである
ことから非現実的なので、後者であるIBGPフルメッシュが、実用的な代替手段として検討されるに至りました。

つまり現在のISPではIBGPフルメッシュの環境にあり、外部ASの経路情報を自身のAS内にIGPに注入する事は
していない所がほとんどである事から、BGPルータでは同期原則を無効化 ( no synchronization ) しています。
IBGPフルメッシュ化は、「ルートリフレクタ」や「コンフェデレーション」の手法を併用して実現しています。





※ 万が一、トランジットASでIBGPがフルメッシュ化されていない場合、IBGPが有効でないルータでパケットがドロップされる。
※ AS20内ではR2,R3,R4ともに、AS20の内部ネットワークのIGPルートは持っています。これがなければ例えば、Loopback I/Fを使用
したIBGPピアが確立できません。あくまでも、AS10や30などの外部ASのルートをIGPで持つのは非現実的で必要ないという事です。



BGPの設定

ネットワークエンジニアとして

Copyright (C) 2002-2017 ネットワークエンジニアとして All Rights Reserved.