目次
概要
BGPのルート集約について設定ミスの切り分けと修正を行います。suppress-mapとunsuppress-mapによる選択型集約を扱っています。
ネットワーク構成
下記のネットワーク構成で、AS123はAS4とAS5内の特定のネットワークのパケットをルーティングできるようにします。
R1では集約ルート5.5.0.0/16を生成します。また集約前の詳細なルートのうち5.5.0.0/24、5.5.2.0/24もR4にアドバタイズします。このために、Unsuppress-mapを利用するものとします。
R3では集約ルート4.4.0.0/16を生成します。集約前の詳細なルートのうち4.4.1.0/24と4.4.3.0/24もR5にアドバタイズします。これはSuppress-mapを利用します。
設定概要
各ルータのBGPに関する設定は次の通りです。これらの設定には、一部設定ミスがあります。
R1
interface Loopback0 ip address 192.168.0.1 255.255.255.255 ! interface Ethernet0/0 ip address 172.16.14.1 255.255.255.0 ! interface Ethernet0/1 ip address 192.168.12.1 255.255.255.0 ! router ospf 1 log-adjacency-changes network 192.168.0.0 0.0.255.255 area 0 ! router bgp 123 no synchronization bgp log-neighbor-changes aggregate-address 5.5.0.0 255.255.0.0 summary-only neighbor 172.16.14.4 remote-as 4 neighbor 172.16.14.4 unsuppress-map UNSUPP_R1 neighbor 192.168.0.2 remote-as 123 neighbor 192.168.0.2 update-source Loopback0 neighbor 192.168.0.2 next-hop-self neighbor 192.168.0.3 remote-as 123 neighbor 192.168.0.3 update-source Loopback0 neighbor 192.168.0.3 next-hop-self no auto-summary ! access-list 1 permit 5.5.0.0 access-list 1 permit 5.5.2.0 ! route-map UNSUPP_R1 deny 10 match ip address 1 ! route-map UNSUPP_R1 permit 100
R2
interface Loopback0 ip address 192.168.0.2 255.255.255.255 ! interface Ethernet0/0 ip address 192.168.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 192.168.0.0 0.0.255.255 area 0 ! router bgp 123 no synchronization bgp log-neighbor-changes neighbor 192.168.0.1 remote-as 123 neighbor 192.168.0.1 update-source Loopback0 neighbor 192.168.0.3 remote-as 123 neighbor 192.168.0.3 update-source Loopback0 no auto-summary
R3
interface Loopback0 ip address 192.168.0.3 255.255.255.255 ! interface Ethernet0/0 ip address 192.168.23.3 255.255.255.0 ! interface Ethernet0/1 ip address 172.16.35.3 255.255.255.0 ! router ospf 1 log-adjacency-changes network 192.168.0.0 0.0.255.255 area 0 ! router bgp 123 no synchronization bgp log-neighbor-changes aggregate-address 4.4.0.0 255.255.0.0 suppress-map SUPP_R3 neighbor 172.16.35.5 remote-as 5 neighbor 192.168.0.1 remote-as 123 neighbor 192.168.0.1 update-source Loopback0 neighbor 192.168.0.1 next-hop-self neighbor 192.168.0.2 remote-as 123 neighbor 192.168.0.2 update-source Loopback0 neighbor 192.168.0.2 next-hop-self no auto-summary ! access-list 1 permit 4.4.1.0 access-list 1 permit 4.4.3.0 ! route-map SUPP_R3 permit 10 match ip address 1
R4
interface Loopback0 ip address 4.4.1.4 255.255.255.0 secondary ip address 4.4.2.4 255.255.255.0 secondary ip address 4.4.3.4 255.255.255.0 secondary ip address 4.4.0.4 255.255.255.0 ! interface Ethernet0/0 ip address 172.16.14.4 255.255.255.0 ! router bgp 4 no synchronization bgp log-neighbor-changes network 4.4.0.0 mask 255.255.255.0 network 4.4.1.0 mask 255.255.255.0 network 4.4.2.0 mask 255.255.255.0 network 4.4.3.0 mask 255.255.255.0 neighbor 172.16.14.1 remote-as 123 no auto-summary
R5
interface Loopback0 ip address 5.5.1.5 255.255.255.0 secondary ip address 5.5.2.5 255.255.255.0 secondary ip address 5.5.3.5 255.255.255.0 secondary ip address 5.5.0.5 255.255.255.0 ! interface Ethernet0/0 ip address 172.16.35.5 255.255.255.0 ! router bgp 5 no synchronization bgp log-neighbor-changes network 5.5.0.0 mask 255.255.255.0 network 5.5.1.0 mask 255.255.255.0 network 5.5.2.0 mask 255.255.255.0 network 5.5.3.0 mask 255.255.255.0 neighbor 172.16.35.3 remote-as 123 no auto-summary
トラブルの症状
集約ルートの生成には問題がないようですが、集約前の詳細ルートのアドバタイズが意図したように行われていません。R4では集約前の詳細ルートとして5.5.0.0/24と5.5.2.0/24ではなく、5.5.1.0/24と5.5.3.0/24がBGPテーブルに登録されています。そして、R5では集約前の詳細ルートとして4.4.1.0/24と4.4.3.0/24ではなく、4.4.0.0/24と4.4.2.0/24がBGPテーブルに登録されています。
R4 show ip bgp
R4#show ip bgp BGP table version is 13, local router ID is 4.4.0.4 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 *> 4.4.0.0/24 0.0.0.0 0 32768 i *> 4.4.0.0/16 172.16.14.1 0 123 i *> 4.4.1.0/24 0.0.0.0 0 32768 i *> 4.4.2.0/24 0.0.0.0 0 32768 i *> 4.4.3.0/24 0.0.0.0 0 32768 i *> 5.5.0.0/16 172.16.14.1 0 0 123 i *> 5.5.1.0/24 172.16.14.1 0 123 5 i *> 5.5.3.0/24 172.16.14.1 0 123 5 i
R5 show ip bgp
R5#show ip bgp BGP table version is 9, local router ID is 5.5.0.5 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 *> 4.4.0.0/24 172.16.35.3 0 123 4 i *> 4.4.0.0/16 172.16.35.3 0 0 123 i *> 4.4.2.0/24 172.16.35.3 0 123 4 i *> 5.5.0.0/24 0.0.0.0 0 32768 i *> 5.5.0.0/16 172.16.35.3 0 123 i *> 5.5.1.0/24 0.0.0.0 0 32768 i *> 5.5.2.0/24 0.0.0.0 0 32768 i *> 5.5.3.0/24 0.0.0.0 0 32768 i
集約前の詳細ルートのアドバタイズが意図したように行われていない原因は、R1とR3の設定ミスだと考えられます。そこで、R1とR3で下記のshowコマンドでトラブルの切り分けを行います。
R1/R3
show ip protocols
show ip bgp
show route-map
show access-list
R1 showコマンドの結果
R1#show ip protocols Routing Protocol is "ospf 1" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Router ID 192.168.0.1 Number of areas in this router is 1. 1 normal 0 stub 0 nssa Maximum path: 4 Routing for Networks: 192.168.0.0 0.0.255.255 area 0 Reference bandwidth unit is 100 mbps Routing Information Sources: Gateway Distance Last Update 192.168.0.2 110 00:56:49 192.168.0.3 110 00:56:49 Distance: (default is 110) Routing Protocol is "bgp 123" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set IGP synchronization is disabled Automatic route summarization is disabled Unicast Aggregate Generation: 5.5.0.0/16 summary-only Neighbor(s): Address FiltIn FiltOut DistIn DistOut Weight RouteMap 172.16.14.4 192.168.0.2 192.168.0.3 Maximum path: 1 Routing Information Sources: Gateway Distance Last Update (this router) 200 00:55:46 192.168.0.3 200 00:56:14 172.16.14.4 20 00:56:17 Distance: external 20 internal 200 local 200 R1#show ip bgp BGP table version is 15, local router ID is 192.168.0.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 *> 4.4.0.0/24 172.16.14.4 0 0 4 i *>i4.4.0.0/16 192.168.0.3 0 100 0 i *> 4.4.1.0/24 172.16.14.4 0 0 4 i *> 4.4.2.0/24 172.16.14.4 0 0 4 i *> 4.4.3.0/24 172.16.14.4 0 0 4 i s>i5.5.0.0/24 192.168.0.3 0 100 0 5 i *> 5.5.0.0/16 0.0.0.0 32768 i s>i5.5.1.0/24 192.168.0.3 0 100 0 5 i s>i5.5.2.0/24 192.168.0.3 0 100 0 5 i s>i5.5.3.0/24 192.168.0.3 0 100 0 5 i R1#show route-map route-map UNSUPP_R1, deny, sequence 10 Match clauses: ip address (access-lists): 1 Set clauses: Policy routing matches: 0 packets, 0 bytes route-map UNSUPP_R1, permit, sequence 100 Match clauses: Set clauses: Policy routing matches: 0 packets, 0 bytes R1#show access-list Standard IP access list 1 10 permit 5.5.0.0 (1 match) 20 permit 5.5.2.0 (1 match)
R3 showコマンドの結果
R3#show ip protocols Routing Protocol is "ospf 1" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Router ID 192.168.0.3 Number of areas in this router is 1. 1 normal 0 stub 0 nssa Maximum path: 4 Routing for Networks: 192.168.0.0 0.0.255.255 area 0 Reference bandwidth unit is 100 mbps Routing Information Sources: Gateway Distance Last Update 192.168.0.1 110 00:58:03 192.168.0.2 110 00:58:03 Distance: (default is 110) Routing Protocol is "bgp 123" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set IGP synchronization is disabled Automatic route summarization is disabled Unicast Aggregate Generation: 4.4.0.0/16 suppress-map SUPP_R3 Neighbor(s): Address FiltIn FiltOut DistIn DistOut Weight RouteMap 172.16.35.5 192.168.0.1 192.168.0.2 Maximum path: 1 Routing Information Sources: Gateway Distance Last Update (this router) 200 00:57:20 192.168.0.1 200 00:56:52 172.16.35.5 20 00:57:20 Distance: external 20 internal 200 local 200 R3#show ip bgp BGP table version is 13, local router ID is 192.168.0.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 *>i4.4.0.0/24 192.168.0.1 0 100 0 4 i *> 4.4.0.0/16 0.0.0.0 32768 i s>i4.4.1.0/24 192.168.0.1 0 100 0 4 i *>i4.4.2.0/24 192.168.0.1 0 100 0 4 i s>i4.4.3.0/24 192.168.0.1 0 100 0 4 i *> 5.5.0.0/24 172.16.35.5 0 0 5 i *>i5.5.0.0/16 192.168.0.1 0 100 0 i *> 5.5.1.0/24 172.16.35.5 0 0 5 i *> 5.5.2.0/24 172.16.35.5 0 0 5 i *> 5.5.3.0/24 172.16.35.5 0 0 5 i R3#show route-map route-map SUPP_R3, permit, sequence 10 Match clauses: ip address (access-lists): 1 Set clauses: Policy routing matches: 0 packets, 0 bytes R3#show access-list Standard IP access list 1 10 permit 4.4.1.0 (2 matches) 20 permit 4.4.3.0 (2 matches)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
問題
- なぜ集約前の詳細ルートのアドバタイズが意図したように行われていないのですか?
- 詳細ルートのアドバタイズを意図したように行うためにはR1とR3でどのように設定を修正すればよいですか?
解答
なぜ集約前の詳細ルートのアドバタイズが意図したように行われていないのですか?
Unsuppress-mapおよびsuppress-mapに続くルートマップが正しくないため。
Unsuppress-mapではルートマップでpermitされた集約前の詳細ルートがアドバタイズされるが、ルートマップ「UNSUPP_R1」では5.5.0.0/24と5.5.2.0/24がdenyされている。
Suppress-mapではルートマップでdenyされた集約前ルートがアドバタイズされるが、ルートマップ「SUPP_R3」では4.4.1.0/24と4.4.3.0/24がpermitされている。
詳細ルートのアドバタイズを意図したように行うためにはR1とR3でどのように設定を修正すればよいですか?
R1
no route-map UNSUPP_R1 route-map UNSUPP_R1 permit 10 match ip address 1
R3
no route-map SUPP_R3 route-map SUPP_R3 deny 10 match ip address 1 route-map SUPP_R3 permit 100
ワンポイント
- Unsuppress-mapは指定したネイバーにルートマップでpermitされた集約前の詳細ルートを集約ルートと一緒にアドバタイズする
- Suppress-mapはすべてのネイバーにルートマップでdenyされた集約前の詳細ルートを集約ルートと一緒にアドバタイズする
suppress-mapおよびunsuppress-mapについて、以下の記事をご覧ください。
- URL=
解説
BGPでは集約ルートを生成すると、デフォルトでは集約前の詳細ルートもすべてアドバタイズします。集約前の詳細ルートの一部を選択してアドバタイズすることを選択型集約と呼びます。選択型集約の方法として、Suppress-mapとUnsuppress-mapがあります。Suppress-mapとUnsuppress-mapの設定はとても紛らわしくて間違えやすいものです。今回の問題はSuppress-mapとUnsuppress-mapの設定ミスについてです。
【R1でのUnsuppress-mapの設定ミス】
R1では、Unsuppress-mapによって集約ルート5.5.0.0/16と一緒に5.5.0.0/24、5.5.2.0/24もR4にアドバタイズします。ところが、Unsuppress-mapに関連づけているルートマップ「Unsupp_R1」とその中で使うアクセスリスト1を見ると、集約前ルート5.5.0.0/24と5.5.2.0/24がpermitされていません。
R1 show route-map/show access-lists
R1#show route-map route-map UNSUPP_R1, deny, sequence 10 Match clauses: ip address (access-lists): 1 Set clauses: Policy routing matches: 0 packets, 0 bytes route-map UNSUPP_R1, permit, sequence 100 Match clauses: Set clauses: Policy routing matches: 0 packets, 0 bytes R1#show access-lists Standard IP access list 1 10 permit 5.5.0.0 (1 match) 20 permit 5.5.2.0 (1 match)
Unsuppress-mapは、あとに続くルートマップでpermitされた集約前の詳細ルートをアドバタイズするので、この設定では問題の条件を満たすことができません。集約前の5.5.0.0/24、5.5.2.0/24がpermitされるようにルートマップを修正します。
R1 ルートマップの修正
no route-map UNSUPP_R1 route-map UNSUPP_R1 permit 10 match ip address 1
ルートマップを修正した後、R1からR4にアドバタイズしているBGPルートは次の通りです。
R1 show ip bgp neighbor 172.16.14.4 advertised-routes
R1#show ip bgp neighbors 172.16.14.4 advertised-routes BGP table version is 15, local router ID is 192.168.0.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 *>i4.4.0.0/16 192.168.0.3 0 100 0 i s>i5.5.0.0/24 192.168.0.3 0 100 0 5 i *> 5.5.0.0/16 0.0.0.0 32768 i s>i5.5.2.0/24 192.168.0.3 0 100 0 5 i Total number of prefixes 4
また、R4でBGPテーブルを確認すると次のようになっています。
R4 show ip bgp
R4#show ip bgp BGP table version is 17, local router ID is 4.4.0.4 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 *> 4.4.0.0/24 0.0.0.0 0 32768 i *> 4.4.0.0/16 172.16.14.1 0 123 i *> 4.4.1.0/24 0.0.0.0 0 32768 i *> 4.4.2.0/24 0.0.0.0 0 32768 i *> 4.4.3.0/24 0.0.0.0 0 32768 i *> 5.5.0.0/24 172.16.14.1 0 123 5 i *> 5.5.0.0/16 172.16.14.1 0 0 123 i *> 5.5.2.0/24 172.16.14.1 0 123 5 i
【R3でのSuppress-mapの設定ミス】
R3では、Suppress-mapによって集約ルート4.4.0.0/16と一緒に4.4.1.0/24、4.4.3.0/24もR5にアドバタイズします。ところが、Suppress-mapに関連づけているルートマップ「SUPP_R3」とその中で使うアクセスリスト1を見ると、集約前ルート4.4.1.0/24と4.4.3.0/24がpermitされていません。
R3 show route-map/show access-lists
R3#show route-map route-map SUPP_R3, permit, sequence 10 Match clauses: ip address (access-lists): 1 Set clauses: Policy routing matches: 0 packets, 0 bytes R3#show access-lists Standard IP access list 1 10 permit 4.4.1.0 (2 matches) 20 permit 4.4.3.0 (2 matches)
Suppress-mapはあとに続くルートマップでdenyされた集約前の詳細ルートを集約ルートと一緒にアドバタイズします。4.4.1.0/24、4.4.3.0/24をアドバタイズするために次のようにルートマップ「SUPP_R3」を修正します。
R3 ルートマップの修正
no route-map SUPP_R3 route-map SUPP_R3 deny 10 match ip address 1 route-map SUPP_R3 permit 100
ルートマップを修正した後、R3からR5にアドバタイズしているBGPルートを確認します。
R3 show ip bgp neighbor 172.16.35.5 advertised-routes
R3#show ip bgp neighbors 172.16.35.5 advertised-routes BGP table version is 13, local router ID is 192.168.0.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 *> 4.4.0.0/16 0.0.0.0 32768 i *>i4.4.1.0/24 192.168.0.1 0 100 0 4 i *>i4.4.3.0/24 192.168.0.1 0 100 0 4 i *>i5.5.0.0/16 192.168.0.1 0 100 0 i Total number of prefixes 4
また、R5のBGPテーブルを確認すると、次のように意図したとおりに集約前ルートを受信していることがわかります。
R5 show ip bgp
R5#show ip bgp BGP table version is 21, local router ID is 5.5.0.5 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 *> 4.4.0.0/16 172.16.35.3 0 0 123 i *> 4.4.1.0/24 172.16.35.3 0 123 4 i *> 4.4.3.0/24 172.16.35.3 0 123 4 i *> 5.5.0.0/24 0.0.0.0 0 32768 i *> 5.5.0.0/16 172.16.35.3 0 123 i *> 5.5.1.0/24 0.0.0.0 0 32768 i *> 5.5.2.0/24 0.0.0.0 0 32768 i *> 5.5.3.0/24 0.0.0.0 0 32768 i
【まとめ】
R1とR3での設定ミスについてまとめたものが次の図です。
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プレフィックスの交換