iBGPで学習した経路は他のiBGPへ流さない
ここでは、「iBGPで学習した経路は他のiBGPへ流さない」ということを検証します。
iBGPでは、ルーティングループを防ぐために、iBGPで学習した経路は他のiBGPへ流しません。
その為、iBGPでは、フルメッシュでピアを張ることが基本となっています。
しかし、iBGPでネットワークを構築した場合、ルータの数が増えれば増えるほど、ピアの数が膨大になってしまうというデメリットがあります。
それでは、AS内は、OSPFやEIGRPなどのスケーラブルなIGPで構成したら良いのでは?
と思われるかもしれません。
しかし、eBGPが扱う経路情報、数十万とも言われています。その数十万の経路情報をIGPに再配送するとIGPがメルトダウンを起こしかねません。
そこで、iBGPが一役買っているのです。
iBGPで構築するには、フルメッシュで構築することから、ピアの数がどうしても多くなりがちですが、以下の方法でピアの数を減らすこともできます。
- ルートリフレクション
- コンフェデレーション
「ルートリフレクタ」、「コンフェデレーション」は、この後のコンテンツで紹介していきます。
前置きが、少し長くなってしまいました。
それでは、「iBGPで学習した経路は他のiBGPへ流さない」ということを検証していきましょう。
使用するネットワークは、下図になります。

Router_A ・・・ iBGPで「10.10.10.0/24」を通知する。
Router_C ・・・ iBGPで「20.20.20.0/24」を通知する。
それでは、各ルータを設定していきます。各ルータの設定は、以下のようになります。
強制的にインターフェイスをUPさせるために、Router_A、Router_CのE0インターフェイスで「no keepalive」コマンドを設定しておきます。
●Router_Aの設定
!
version 11.2
no service udp-small-servers
no service tcp-small-servers
!
hostname Router_A
!
enable password cisco
!
ip subnet-zero
!
interface Ethernet0
ip address 10.10.10.1 255.255.255.0
no keepalive
!
interface Serial0
ip address 172.16.0.1 255.255.0.0
clockrate 64000
!
router bgp 100
no synchronization
network 10.10.10.0 mask 255.255.255.0
neighbor 172.16.0.2 remote-as 100
!
ip classless
!
line con 0
line aux 0
line vty 0 4
password cisco
login
!
end
●Router_Bの設定
!
version 11.2
no service udp-small-servers
no service tcp-small-servers
!
hostname Router_B
!
enable password cisco
!
ip subnet-zero
!
interface Serial0
ip address 172.16.0.2 255.255.0.0
!
interface Serial1
ip address 172.17.0.1 255.255.0.0
clockrate 64000
!
router bgp 100
no synchronization
neighbor 172.16.0.1 remote-as 100
neighbor 172.17.0.2 remote-as 100
no auto-summary
!
ip classless
!
line con 0
exec-timeout 0 0
line aux 0
line vty 0 4
password cisco
login
!
end
●Router_Cの設定
!
version 11.2
no service udp-small-servers
no service tcp-small-servers
!
hostname Router_C
!
enable password cisco
!
ip subnet-zero
!
interface Ethernet0
ip address 20.20.20.1 255.255.255.0
no keepalive
!
interface Serial0
ip address 172.17.0.2 255.255.0.0
!
interface Serial1
ip address 172.18.0.1 255.255.0.0
clockrate 64000
!
router bgp 100
no synchronization
network 20.20.20.0 mask 255.255.255.0
neighbor 172.17.0.1 remote-as 100
no auto-summary
!
ip classless
!
line con 0
exec-timeout 0 0
line aux 0
line vty 0 4
password cisco
login
!
end
Router_AのBGPテーブルを確認してみます。
Router_A#show ip bgp
BGP table version is 2, local router ID is 172.16.0.1
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
*> 10.10.10.0/24 0.0.0.0 0 32768 i
「10.10.10.0/24」のiBGPルートがありません。
Router_BのBGPテーブルを確認してみます。
Gateway of last resort is not set
D 10.0.0.0/8 [90/2195456] via 172.16.0.1, 00:01:16, Serial0
C 172.16.0.0/16 is directly connected, Serial0
C 172.17.0.0/16 is directly connected, Serial1
AS200の「20.20.20.0/24」のルートがありません。
Router_CのBGPテーブルを確認してみます。
Router_B#show ip bgp
BGP table version is 3, local router ID is 172.17.0.1
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
*>i10.10.10.0/24 172.16.0.1 0 100 0 i
*>i20.20.20.0/24 172.17.0.2 0 100 0 i
「10.10.10.0/24」のiBGPルートがありません。
つまり、Router_BがiBGPで学習した経路は他のiBGPへ流していないことになります。
・Router_B → Router_C :「10.10.10.0/24」を流していない。
・Router_B → Router_A :「20.20.20.0/24」を流していない。
ことが確認できました。
これで、「iBGPで学習した経路は他のiBGPへ流さない」ということが検証できました。
次の「BGP(iBGPはフルメッシュでピアを張る)」では、iBGPでピアを張った場合のピアの数について解説します。
