【概要】
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 |