概要

BGPの同期とルートリフレクタについて、設定ミスの切り分けと修正を行います。

ネットワーク構成

R1~R6で次の図のようにAS1を構成しています。

図 BGP 設定ミスの切り分けと修正 Part6 ネットワーク構成
図 BGP 設定ミスの切り分けと修正 Part6 ネットワーク構成

AS1内では、R1とR2をルートリフレクタとしています。R3~R6はR1、R2との間でIBGPネイバーを確立します。AS1内のIGPとしてOSPFを利用しています。また、R3~R6はLoopback1のルート(172.16.Y.0/24)をBGPルートとして生成しています。

設定概要

R1

interface Loopback0
 ip address 10.1.1.1 255.255.255.255
!
interface Serial0/0
 ip address 192.168.13.1 255.255.255.0
!
interface Serial0/1
 ip address 192.168.14.1 255.255.255.0
!
interface Serial0/2
 ip address 192.168.15.1 255.255.255.0
!
interface Serial0/3
 ip address 192.168.16.1 255.255.255.0
!
router ospf 1
 log-adjacency-changes
 network 10.0.0.0 0.255.255.255 area 0
 network 192.168.0.0 0.0.255.255 area 0
!
router bgp 1
 synchronization
 bgp log-neighbor-changes
 neighbor 10.3.3.3 remote-as 1
 neighbor 10.3.3.3 update-source Loopback0
 neighbor 10.4.4.4 remote-as 1
 neighbor 10.4.4.4 update-source Loopback0
 neighbor 10.5.5.5 remote-as 1
 neighbor 10.5.5.5 update-source Loopback0
 neighbor 10.6.6.6 remote-as 1
 neighbor 10.6.6.6 update-source Loopback0
 no auto-summary

R2

interface Loopback0
 ip address 10.2.2.2 255.255.255.255
!
interface Serial0/0
 ip address 192.168.23.2 255.255.255.0
!
interface Serial0/1
 ip address 192.168.24.2 255.255.255.0
!
interface Serial0/2
 ip address 192.168.25.2 255.255.255.0
!
interface Serial0/3
 ip address 192.168.26.2 255.255.255.0
!
router ospf 1
 log-adjacency-changes
 network 10.0.0.0 0.255.255.255 area 0
 network 192.168.0.0 0.0.255.255 area 0
!
router bgp 1
 no synchronization
 bgp log-neighbor-changes
 neighbor 10.3.3.3 remote-as 1
 neighbor 10.3.3.3 update-source Loopback0
 neighbor 10.3.3.3 route-reflector-client
 neighbor 10.4.4.4 remote-as 1
 neighbor 10.4.4.4 update-source Loopback0
 neighbor 10.4.4.4 route-reflector-client
 neighbor 10.5.5.5 remote-as 1
 neighbor 10.5.5.5 update-source Loopback0
 neighbor 10.5.5.5 route-reflector-client
 neighbor 10.6.6.6 remote-as 1
 neighbor 10.6.6.6 update-source Loopback0
 neighbor 10.6.6.6 route-reflector-client
 no auto-summary

R3

interface Loopback0
 ip address 10.3.3.3 255.255.255.255
!
interface Loopback1
 ip address 172.16.3.3 255.255.255.0
!
interface Serial0/0
 ip address 192.168.13.3 255.255.255.0
!

interface Serial0/1
 ip address 192.168.23.3 255.255.255.0
!
router ospf 1
 log-adjacency-changes
 network 10.0.0.0 0.255.255.255 area 0
 network 192.168.0.0 0.0.255.255 area 0
!
router bgp 1
 no synchronization
 bgp log-neighbor-changes
 network 172.16.3.0 mask 255.255.255.0
 neighbor 10.1.1.1 remote-as 1
 neighbor 10.1.1.1 update-source Loopback0
 neighbor 10.2.2.2 remote-as 1
 neighbor 10.2.2.2 update-source Loopback0
 no auto-summary

R4

interface Loopback0
 ip address 10.4.4.4 255.255.255.255
!
interface Loopback1
 ip address 172.16.4.4 255.255.255.0
!
interface Serial0/0
 ip address 192.168.14.4 255.255.255.0
!
interface Serial0/1
 ip address 192.168.24.4 255.255.255.0
!
router ospf 1
 log-adjacency-changes
 network 10.0.0.0 0.255.255.255 area 0
 network 192.168.0.0 0.0.255.255 area 0
!
router bgp 1
 no synchronization
 bgp log-neighbor-changes
 network 172.16.4.0 mask 255.255.255.0
 neighbor 10.1.1.1 remote-as 1
 neighbor 10.1.1.1 update-source Loopback0
 neighbor 10.2.2.2 remote-as 1
 neighbor 10.2.2.2 update-source Loopback0
 no auto-summary

R5

interface Loopback0
 ip address 10.5.5.5 255.255.255.255
!
interface Loopback1
 ip address 172.16.5.5 255.255.255.0
!
interface Serial0/0
 ip address 192.168.15.5 255.255.255.0
!
interface Serial0/1
 ip address 192.168.25.5 255.255.255.0
!
router ospf 1
 log-adjacency-changes
 network 10.0.0.0 0.255.255.255 area 0
 network 192.168.0.0 0.0.255.255 area 0
!
router bgp 1
 no synchronization
 bgp log-neighbor-changes
 network 172.16.5.0 mask 255.255.255.0
 neighbor 10.1.1.1 remote-as 1
 neighbor 10.1.1.1 update-source Loopback0
 neighbor 10.2.2.2 remote-as 1
 neighbor 10.2.2.2 update-source Loopback0
 no auto-summary

R6

interface Loopback0
 ip address 10.6.6.6 255.255.255.255
!
interface Loopback1
 ip address 172.16.6.6 255.255.255.0
!
interface Serial0/0
 ip address 192.168.16.6 255.255.255.0
!
interface Serial0/1
 ip address 192.168.26.6 255.255.255.0
!
router ospf 1
 log-adjacency-changes
 network 10.0.0.0 0.255.255.255 area 0
 network 192.168.0.0 0.0.255.255 area 0
!
router bgp 1
 no synchronization
 bgp log-neighbor-changes
 network 172.16.6.0 mask 255.255.255.0
 neighbor 10.1.1.1 remote-as 1
 neighbor 10.1.1.1 update-source Loopback0
 neighbor 10.2.2.2 remote-as 1
 neighbor 10.2.2.2 update-source Loopback0
 no auto-summary

トラブルの症状

R3~R6で他のルータのLo1のルート(172.16.Y.0/24)のルートが2つずつ見えるようになっていません。たとえば、R3では本来、次のようなBGPテーブルになるはずです。

R3 show ip bgp (正常な状態)

R3#show ip bgp 
BGP table version is 8, local router ID is 172.16.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 172.16.3.0/24    0.0.0.0                  0         32768 i
*>i172.16.4.0/24    10.4.4.4                 0    100      0 i
* i                 10.4.4.4                 0    100      0 i
*>i172.16.5.0/24    10.5.5.5                 0    100      0 i
* i                 10.5.5.5                 0    100      0 i
*>i172.16.6.0/24    10.6.6.6                 0    100      0 i
* i                 10.6.6.6                 0    100      0 i

ところが、R3のBGPテーブルには他のルータのLoopback1のルートが1つしか存在していません。

R3 show ip bgp

R3#show ip bgp 
BGP table version is 5, local router ID is 172.16.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 172.16.3.0/24    0.0.0.0                  0         32768 i
*>i172.16.4.0/24    10.4.4.4                 0    100      0 i
*>i172.16.5.0/24    10.5.5.5                 0    100      0 i
*>i172.16.6.0/24    10.6.6.6                 0    100      0 i

この原因を調べるために、R1とR2でBGPルート 172.16.4.0/24 の詳細を確認しました。

R1 show ip bgp 172.16.4.0

R1#show ip bgp 172.16.4.0
BGP routing table entry for 172.16.4.0/24, version 2
Paths: (1 available, no best path)
  Not advertised to any peer
  Local
    10.4.4.4 (metric 65) from 10.4.4.4 (172.16.4.4)
      Origin IGP, metric 0, localpref 100, valid, internal, not synchronized

R2 show ip bgp 172.16.4.0

R2#show ip bgp 172.16.4.0
BGP routing table entry for 172.16.4.0/24, version 4
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to update-groups:
     1         
  Local, (Received from a RR-client)
    10.4.4.4 (metric 65) from 10.4.4.4 (172.16.4.4)
      Origin IGP, metric 0, localpref 100, valid, internal, best

問題

  • なぜR3のBGPテーブルは正常なあるべき状態ではないのですか。
  • R3~R6のBGPテーブルを正常なあるべき状態にするためには、どのように設定を修正すればよいですか。

解答

なぜR3のBGPテーブルは正常なあるべき状態ではないのですか。

R1で同期が有効化されいて、IBGPルートは同期条件を満たしていないためベストパスにならないから。

また、R1でルートリフレクタの設定が抜けているので、受信したIBGPルートを他のIBGPネイバーへアドバタイズしていないから。

R3~R6のBGPテーブルを正常なあるべき状態にするためには、どのように設定を修正すればよいですか。

R1

router bgp 1
 no synchronization
 neighbor 10.3.3.3 route-reflector-client
 neighbor 10.4.4.4 route-reflector-client
 neighbor 10.5.5.5 route-reflector-client
 neighbor 10.6.6.6 route-reflector-client

ワンポイント

  • デフォルトでBGPの同期は無効化されている
  • ルートリフレクタのルータでneighbor route-reflector-clientコマンドでクライアントを指定する

解説

R3で他のBGPルータのルートの詳細を確認してみます。たとえば、R4の172.16.4.0/24のBGPルートの詳細を確認すると、次のようになります。

R3 show ip bgp 172.16.4.0

R3#show ip bgp 172.16.4.0
BGP routing table entry for 172.16.4.0/24, version 4
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Flag: 0x820
  Not advertised to any peer
  Local
    10.4.4.4 (metric 129) from 10.2.2.2 (10.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Originator: 172.16.4.4, Cluster list: 10.2.2.2

R3はR2から172.16.4.0/24のBGPルートを受信していることがわかります。R1はルートリフレクタのはずですが、その役割を果たせていないことがわかります。つまり、R1に何らかの問題があると推測できます。そこで、R1でBGPルートの詳細を確認します。

R1 show ip bgp 172.16.4.0

R1#show ip bgp 172.16.4.0
BGP routing table entry for 172.16.4.0/24, version 3
Paths: (1 available, no best path)
  Not advertised to any peer
  Local
    10.4.4.4 (metric 65) from 10.4.4.4 (172.16.4.4)
      Origin IGP, metric 0, localpref 100, valid, internal, not synchronized

R1でBGPルートの詳細を確認すると、「not synchronized」となり、同期条件を満たせていないことがわかります。そのため、ベストパスにならずにネイバーへアドバタイズしていません。現在のIOSでは、デフォルトで同期は無効化されていますが、R1では同期が有効になってしまっていることがわかります。R1で、IBGPルートを利用できるようにするために同期を無効化します。

R1 同期の無効化

router bgp 1
 no synchronization

同期を無効化すると、IBGPルートをベストパスとして利用できるようになります。R1でBGPルートの詳細を見ると、次のようになっています。

R1 show ip bgp 172.16.4.0

R1#show ip bgp 172.16.4.0
BGP routing table entry for 172.16.4.0/24, version 5
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Flag: 0x820
  Not advertised to any peer
  Local
    10.4.4.4 (metric 65) from 10.4.4.4 (172.16.4.4)
      Origin IGP, metric 0, localpref 100, valid, internal, best

しかし、ベストパスになっているものの、ネイバーにはアドバタイズしていません。R1はルートリフレクタのはずですが、ルートリフレクタとなっていません。ルートリフレクタクライアントから受信したBGPルートの詳細を見ると、クライアントから受信していることが表示されるはずですが、表示されていないことからわかります。R1をルートリフレクタとして、R3~R4をクライアントに指定します。

R1 ルートリフレクタの設定

router bgp 1
 neighbor 10.3.3.3 route-reflector-client
 neighbor 10.4.4.4 route-reflector-client
 neighbor 10.5.5.5 route-reflector-client
 neighbor 10.6.6.6 route-reflector-client

R1を正しくルートリフレクタとして設定すれば、クライアントから受信したIBGPルートを他のIBGPネイバーへアドバタイズできるようになることがわかります。

R1 show ip bgp 172.16.4.0

R1#show ip bgp 172.16.4.0
BGP routing table entry for 172.16.4.0/24, version 13
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to update-groups:
     1         
  Local, (Received from a RR-client)
    10.4.4.4 (metric 65) from 10.4.4.4 (172.16.4.4)
      Origin IGP, metric 0, localpref 100, valid, internal, best

そして、R3であらためてBGPテーブルを見ると、本来、あるべきBGPテーブルになっています。

R3 show ip bgp

R3#show ip bgp 
BGP table version is 8, local router ID is 172.16.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 172.16.3.0/24    0.0.0.0                  0         32768 i
*>i172.16.4.0/24    10.4.4.4                 0    100      0 i
* i                 10.4.4.4                 0    100      0 i
*>i172.16.5.0/24    10.5.5.5                 0    100      0 i
* i                 10.5.5.5                 0    100      0 i
*>i172.16.6.0/24    10.6.6.6                 0    100      0 i
* i                 10.6.6.6                 0    100      0 i

次の図は、R1での設定ミスの内容をまとめたものです。

図 BGP 設定ミスの切り分けと修正 Part5 設定ミスのまとめ
図 BGP 設定ミスの切り分けと修正 Part5 設定ミスのまとめ


BGPの仕組み