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でピアを張った場合のピアの数について解説します。