目次
概要
BGPルートをアドバタイズするための設定について、設定ミスの切り分けと修正を行います。Well-knownコミュニティとNEXT_HOPアトリビュートへの接続性がポイントです。
ネットワーク構成
下記のネットワーク構成でBGPによってAS1の100.100.100.0/24をAS23へアドバタイズします。
設定概要
各ルータのBGPに関する設定は次の通りです。これらの設定には、一部設定ミスがあります。
R1
interface Loopback0 ip address 100.100.100.1 255.255.255.0 ! interface Ethernet0/0 ip address 10.12.12.1 255.255.255.0 ! router bgp 1 no synchronization bgp log-neighbor-changes network 100.100.100.0 mask 255.255.255.0 neighbor 10.12.12.2 remote-as 23 neighbor 10.12.12.2 send-community neighbor 10.12.12.2 route-map TO_R2 out no auto-summary ! route-map TO_R2 permit 10 set community no-advertise !
R2
interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface Ethernet0/0 ip address 10.12.12.2 255.255.255.0 ! interface Ethernet0/1 ip address 192.168.23.2 255.255.255.0 ! router ospf 1 log-adjacency-changes network 2.2.2.2 0.0.0.0 area 0 network 192.168.0.0 0.0.255.255 area 0 ! router bgp 23 no synchronization bgp log-neighbor-changes neighbor 3.3.3.3 remote-as 23 neighbor 3.3.3.3 update-source Loopback0 neighbor 10.12.12.1 remote-as 1 no auto-summary
R3
interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface Ethernet0/0 ip address 192.168.23.3 255.255.255.0 ! router ospf 1 log-adjacency-changes network 3.3.3.3 0.0.0.0 area 0 network 192.168.0.0 0.0.255.255 area 0 ! router bgp 23 no synchronization bgp log-neighbor-changes neighbor 2.2.2.2 remote-as 23 neighbor 2.2.2.2 update-source Loopback0 no auto-summary
トラブルの症状
AS1の100.100.100.0/24のBGPルートはR2までは届いていますが、R3には届いていません。この原因を調べるために、各ルータで次のshowコマンドを実行しました。
R1
show ip bgp summary
show ip bgp
show ip bgp 100.100.100.0
R2
show ip bgp summary
show ip bgp
show ip bgp 100.100.100.0
show ip bgp neighbor 3.3.3.3 advertised-routes
R3
show ip bgp summary
show ip bgp
R1 showコマンドの結果
R1#show ip bgp summary BGP router identifier 100.100.100.1, local AS number 1 BGP table version is 2, main routing table version 2 1 network entries using 117 bytes of memory 1 path entries using 52 bytes of memory 2/1 BGP path/bestpath attribute entries using 248 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 417 total bytes of memory BGP activity 1/0 prefixes, 1/0 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.12.12.2 4 23 12 13 2 0 0 00:09:45 0 R1#show ip bgp BGP table version is 2, local router ID is 100.100.100.1 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 *> 100.100.100.0/24 0.0.0.0 0 32768 i R1#show ip bgp 100.100.100.0 BGP routing table entry for 100.100.100.0/24, version 2 Paths: (1 available, best #1, table Default-IP-Routing-Table) Advertised to update-groups: 1 Local 0.0.0.0 from 0.0.0.0 (100.100.100.1) Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best
R2 showコマンドの結果
R2#show ip bgp summary BGP router identifier 2.2.2.2, local AS number 23 BGP table version is 2, main routing table version 2 1 network entries using 117 bytes of memory 1 path entries using 52 bytes of memory 2/1 BGP path/bestpath attribute entries using 248 bytes of memory 1 BGP AS-PATH entries using 24 bytes of memory 1 BGP community entries using 24 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 465 total bytes of memory BGP activity 1/0 prefixes, 1/0 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 3.3.3.3 4 23 12 12 2 0 0 00:09:53 0 10.12.12.1 4 1 14 13 2 0 0 00:10:16 1 R2#show ip bgp BGP table version is 2, local router ID is 2.2.2.2 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 *> 100.100.100.0/24 10.12.12.1 0 0 1 i R2#show ip bgp 100.100.100.0 BGP routing table entry for 100.100.100.0/24, version 2 Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to any peer) Not advertised to any peer 1 10.12.12.1 from 10.12.12.1 (100.100.100.1) Origin IGP, metric 0, localpref 100, valid, external, best Community: no-advertise R2#show ip bgp neighbor 3.3.3.3 advertised-routes Total number of prefixes 0
R3 showコマンドの結果
R3#show ip bgp summary BGP router identifier 3.3.3.3, local AS number 23 BGP table version is 1, main routing table version 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2.2.2.2 4 23 13 13 1 0 0 00:10:41 0 R3#show ip bgp
問題
- なぜR3には100.100.100.0/24のBGPルートが届いていないのですか?
- R3まで100.100.100.0/24のルートが届くようにするためには、どのように設定を修正すればよいですか?ただし、BGP、OSPFでnetworkコマンドを追加してはいけません。また、COMMUNITYアトリビュートを削除してはいけません。
解答
なぜR3には100.100.100.0/24のBGPルートが届いていないのですか?
R1で100.100.100.0/24のBGPルートにno-advertiseのWell knownコミュニティを付加している。そのため、R2はR3へ100.100.100.0/24のルートをアドバタイズしない。
また、R2でIBGPネイバーであるR3に対して100.100.100.0/24のルートのNEXT_HOPを変更していないので、R3はNEXT_HOPへの到達性が確保できずに、100.100.100.0/24のルートを受信しても利用できない。
R3まで100.100.100.0/24のルートが届くようにするためには、どのように設定を修正すればよいですか?ただし、BGP、OSPFでnetworkコマンドを追加してはいけません。また、COMMUNITYアトリビュートを削除してはいけません。
R1
route-map TO_R2 permit 10 no set community set community no-export
R2
router bgp 23 neighbor 3.3.3.3 next-hop-self
ワンポイント
- Well knownコミュニティで自動的にBGPルートをフィルタできる
- NEXT_HOPへの到達性がないとBGPルートを利用できない
解説
BGPルートのアドバタイズについて基本的な仕組みを理解できているかを確かめる問題です。AS1内の100.100.100.0/24がR3で利用できない原因は2つあります。
- Well knownコミュニティ no-advertise でBGPルートがフィルタされている
- NEXT_HOPへの到達性がないのでBGPルートを利用できない
それぞれについて、解説します。
【Well knownコミュニティ no-advertise でBGPルートがフィルタされている】
R1からR2へ100.100.100.0/24をアドバタイズするときにルートマップ「TO_R2」でWell knownコミュニティ no-advertiseが付加されています。これを確認するには、R2ででshow ip bgp 100.100.100.0/24をみるのがわかりやすいです。
R2 show ip bgp 100.100.100.0/24
R2#show ip bgp 100.100.100.0 BGP routing table entry for 100.100.100.0/24, version 2 Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to any peer) Not advertised to any peer 1 10.12.12.1 from 10.12.12.1 (100.100.100.1) Origin IGP, metric 0, localpref 100, valid, external, best Community: no-advertise
Well Knownコミュニティ no-advertise が付加されているルートは他のBGPネイバーへアドバタイズされないように自動的にフィルタがかかります。そのため、R2からR3へ100.100.100.0/24がアドバタイズされません。
条件よりコミュニティを削除してはいけないので、no-advertise 以外のコミュニティを付加するように設定を変更します。R1のルートマップ「TO_R2」を次のように変更します。
R1 ルートマップの修正
route-map TO_R2 permit 10 no set community set community no-export
no-export はEBGPネイバーにアドバタイズしないようにフィルタをかけます。R2とR3はIBGPネイバーなので、no-exportのコミュニティであれば、R2からR3へ100.100.100.0/24をアドバタイズします。
R1でルートマップ「TO_R2」を修正した後、R2でshow ip bgp 100.100.100.0/24を確認すると、次のようになります。
R2 show ip bgp 100.100.100.0/24
R2#show ip bgp 100.100.100.0 BGP routing table entry for 100.100.100.0/24, version 3 Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to EBGP peer) Flag: 0x880 Advertised to update-groups: 2 1 10.12.12.1 from 10.12.12.1 (100.100.100.1) Origin IGP, metric 0, localpref 100, valid, external, best Community: no-export
【NEXT_HOPへの到達性がないのでBGPルートを利用できない】
R1で100.100.100.0/24に付加するコミュニティ値を変更すると、R3まで100.100.100.0/24が伝わってきます。ですが、R3では100.100.100.0/24のBGPルートを利用できません。R3でshow ip bgp 100.100.100.0/24を見ると、次のようになります。
R3 show ip bgp 100.100.100.0/24
R3#show ip bgp 100.100.100.0/24 BGP routing table entry for 100.100.100.0/24, version 0 Paths: (1 available, no best path) Not advertised to any peer 1 10.12.12.1 (inaccessible) from 2.2.2.2 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, internal
BGPルート100.100.100.0/24のNEXT_HOPアトリビュートは10.12.12.1です。ですが、R3からは10.12.12.1への到達性がありません。NEXT_HOPへの到達性がないルートを利用することができないので、R3では100.100.100.0/24のルートをベストパスにできません。100.100.100.0/24のNEXT_HOPは、R3から到達可能なIPアドレスになるようにしなければいけません。そのために、R2でIBGPネイバーであるR3に対してネクストホップセルフを追加します。
R2 ネクストホップセルフの設定
router bgp 23 neighbor 3.3.3.3 next-hop-self
再びR3でshow ip bgp 100.100.100.0/24を見ると、NEXT_HOPへの到達性を確保でき、ベストパスとして利用できるようになったことがわかります。
R3 show ip bgp 100.100.100.0/24
R3#show ip bgp BGP table version is 2, local router ID is 3.3.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 *>i100.100.100.0/24 2.2.2.2 0 100 0 1 i
次の図は、トラブルの原因をまとめたものです。
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プレフィックスの交換