目次
概要
BGPの同期とルートリフレクタについて、設定ミスの切り分けと修正を行います。
ネットワーク構成
R1~R6で次の図のようにAS1を構成しています。
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の仕組み
- BGPの概要 ~AS間でルート情報を交換~
- BGPの動作
- BGPの基本設定と確認コマンド
- BGPピアグループ(Peer Group) ~ネイバーの設定をまとめよう~
- BGPネイバーの状態
- BGPコンフェデレーションの設定
- BGPコンフェデレーションの設定例
- BGPネイバー認証
- BGP Well Known Mandatory アトリビュート -ORIGIN/AS_PATH/NEXT_HOP-
- 図解!BGPベストパス選択アルゴリズム
- BGP 基本的な設定についての演習[Cisco]
- BGPの基本的な設定についての演習 ~トラブルシュート~
- BGP KEEPALIVEタイマ/ホールドタイムの設定
- BGPルート 最小送信間隔の設定
- BGPルートダンプニング
- マルチホーム – インターネット接続の冗長化 –
- マルチホームAS BGPルートフィルタのポイント
- マルチホームAS ベストパス選択のポイント
- マルチホームAS IGPとBGPの連携のポイント
- マルチホームAS BGPの設定例
- IP-VPNでのBGPの利用 設定例
- BGPルートフィルタの種類
- BGPルートフィルタ -ディストリビュートリスト-
- BGPルートフィルタ -ディストリビュートリスト設定例-
- BGPルートフィルタ -プレフィクスリスト-
- BGPルートフィルタ -プレフィクスリスト設定例-
- BGPルートフィルタ -フィルタリスト(AS_PATH ACL)-
- BGPルートフィルタ -フィルタリスト(AS_PATH ACL)設定例-
- BGPルートフィルタ -ルートマップ(route-map)-
- BGPルートフィルタ -ルートマップ(route-map)設定例-
- BGP neighbor allowas-inコマンド
- BGP neighbor as-overrideコマンド
- BGPルート RIB Failure
- BGPルート アドミニストレイティブディスタンスの制御
- BGPルートの負荷分散
- BGPルート 条件付き生成
- BGPルート 条件付きアドバタイズ
- BGP ルート集約 自動集約
- BGPルート集約 networkコマンドによる集約
- BGPルート集約 networkコマンドによる集約 設定例
- BGP ルート集約 aggregate-addressコマンドによる集約
- aggregate-addressコマンドのオプション summary-only
- aggregate-addressコマンドのオプション attribute-map
- aggregate-addressコマンドのオプション as-set
- aggregate-addressコマンドのオプション advertise-map
- aggregate-addressコマンド as-set/attribute-map/advertise-map 設定例
- BGP選択型集約の概要
- BGP選択型集約 suppress-map
- BGP選択型集約 unsuppress-map
- BGP 選択型集約 suppress-map/unsuppress-map 設定例
- BGP local-as ~ネイバーに他のASのように見せる~
- BGP neighbor remove-private-ASコマンド
- bgp fast external-fallover
- BGP プレフィクス数の制限
- BGP COMMUNITYアトリビュートの使い方
- BGP Well-known COMMUNITYのルートフィルタ設定例
- BGP プライベートCOMMUNITYによるルート制御の設定例
- [演習]BGP応用 Part1:BGP基本設定
- [演習]BGP応用 Part2:ルート集約
- [演習]BGP応用 Part3:ポリシーベースルーティング
- [演習]BGP応用 Part4:トラブルシューティング
- BGP 設定ミスの切り分けと修正 Part1
- BGP 設定ミスの切り分けと修正 Part2
- BGP 設定ミスの切り分けと修正 Part3
- BGP 設定ミスの切り分けと修正 Part4
- BGP 設定ミスの切り分けと修正 Part5
- BGP 設定ミスの切り分けと修正 Part6
- BGP 設定ミスの切り分けと修正 Part7
- IPv6 BGPの設定例 Part1
- IPv6 BGPの設定例 Part2
- 2021年10月4日 Facebookに何が起こったか?
- IPv4 BGPネイバーでのIPv6プレフィックスの交換