iBGPの特徴(BGPスプリットホライゾン)


【概要】
iBGPはフルメッシュで構成する必要がある。
なぜなら、ルーティングループを防ぐためiBGPで学習した経路は他のiBGPへ流さない為である。
これをBGPスプリットホライゾンと呼ぶ。

しかしながら、ルータ数が増えると、それに伴い、iBGPピアの数も増えます。
ルータがn台の場合、フルメッシュでのiBGPピア数はn(n-1)÷2となります。
ピア数の増加は、維持するためにルータに負荷がかかるのと、設定数も増える為に運用上の負荷もかかります。

その問題を解決するためには、以下の2つの方法があります。
・ルートリフレクタ
・BGPコンフェデレーションズ
一般的にはルートリフレクタが多く使用されます。これらについては別途説明いたします。

【実践】
まずは、フルメッシュでピアを貼らないケースを説明します。

↑上図の構成にて経路情報を確認すると、以下の出力となりますが、
RAとRBにはある10.10.10.0の経路情報がRCにはありません。
RAは、10.10.10.0の経路情報をRBへiBGPで伝えますが、RBはRCには伝えません。RBはiBGPで学習した経路をRCには流さない為です。

RAの状態RBの状態RCの状態
1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 1.1.1.0/24 is directly connected, Ethernet0/0
L 1.1.1.1/32 is directly connected, Ethernet0/0
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.10.10.0/24 is directly connected, Ethernet0/1
L 10.10.10.1/32 is directly connected, Ethernet0/1
1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 1.1.1.0/24 is directly connected, Ethernet0/0
L 1.1.1.2/32 is directly connected, Ethernet0/0
2.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 2.2.2.0/24 is directly connected, Ethernet0/1
L 2.2.2.1/32 is directly connected, Ethernet0/1
10.0.0.0/24 is subnetted, 1 subnets
B 10.10.10.0 [200/0] via 1.1.1.1
2.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 2.2.2.0/24 is directly connected, Ethernet0/1
L 2.2.2.2/32 is directly connected, Ethernet0/1
RA#show running-config
interface Ethernet0/0
ip address 1.1.1.1 255.255.255.0
duplex auto
!
interface Ethernet0/1
ip address 10.10.10.1 255.255.255.0
duplex auto
!
router bgp 100
bgp log-neighbor-changes
network 10.10.10.0
network 10.10.10.0 mask 255.255.255.0
neighbor 1.1.1.2 remote-as 100
RB#show running-config
interface Ethernet0/0
ip address 1.1.1.2 255.255.255.0
duplex auto
!
interface Ethernet0/1
ip address 2.2.2.1 255.255.255.0
duplex auto
!
router bgp 100
bgp log-neighbor-changes
neighbor 1.1.1.1 remote-as 100
neighbor 2.2.2.2 remote-as 100
RC#show running-config
interface Ethernet0/1
ip address 2.2.2.2 255.255.255.0
duplex auto
!
router bgp 100
bgp log-neighbor-changes
neighbor 2.2.2.1 remote-as 100

次に、フルメッシュでピアを貼ったケースです。
各ルータが、10.10.10.0の経路を学習したのがわかります。

RAの状態RBの状態RCの状態
RA#show running-config
interface Ethernet0/0
ip address 1.1.1.1 255.255.255.0
duplex auto
!
interface Ethernet0/1
ip address 10.10.10.1 255.255.255.0
duplex auto
!
interface Ethernet0/2
ip address 3.3.3.1 255.255.255.0
duplex auto
!
router bgp 100
bgp log-neighbor-changes
network 10.10.10.0 mask 255.255.255.0
neighbor 1.1.1.2 remote-as 100
neighbor 3.3.3.2 remote-as 100
!
RB#show running-config
interface Ethernet0/0
ip address 1.1.1.2 255.255.255.0
duplex auto
!
interface Ethernet0/1
ip address 2.2.2.1 255.255.255.0
duplex auto
!
router bgp 100
bgp log-neighbor-changes
neighbor 1.1.1.1 remote-as 100
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 next-hop-self
!
RC#show running-config
interface Ethernet0/1
ip address 2.2.2.2 255.255.255.0
duplex auto
!
interface Ethernet0/2
ip address 3.3.3.2 255.255.255.0
duplex auto
!
router bgp 100
bgp log-neighbor-changes
neighbor 2.2.2.1 remote-as 100
neighbor 3.3.3.1 remote-as 100
!
RA#show ip route
Gateway of last resort is not set
1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 1.1.1.0/24 is directly connected, Ethernet0/0
L 1.1.1.1/32 is directly connected, Ethernet0/0
3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 3.3.3.0/24 is directly connected, Ethernet0/2
L 3.3.3.1/32 is directly connected, Ethernet0/2
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.10.10.0/24 is directly connected, Ethernet0/1
L 10.10.10.1/32 is directly connected, Ethernet0/1

RA1#
RB#show ip route
1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 1.1.1.0/24 is directly connected, Ethernet0/0
L 1.1.1.2/32 is directly connected, Ethernet0/0
2.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 2.2.2.0/24 is directly connected, Ethernet0/1
L 2.2.2.1/32 is directly connected, Ethernet0/1
10.0.0.0/24 is subnetted, 1 subnets
B 10.10.10.0 [200/0] via 1.1.1.1, 5d02h
RC# show ip route
2.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 2.2.2.0/24 is directly connected, Ethernet0/1
L 2.2.2.2/32 is directly connected, Ethernet0/1
3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 3.3.3.0/24 is directly connected, Ethernet0/2
L 3.3.3.2/32 is directly connected, Ethernet0/2
10.0.0.0/24 is subnetted, 1 subnets
B 10.10.10.0 [200/0] via 3.3.3.1, 00:26:42