概要

BGPのルート集約について設定ミスの切り分けと修正を行います。suppress-mapとunsuppress-mapによる選択型集約を扱っています。

ネットワーク構成

下記のネットワーク構成で、AS123はAS4とAS5内の特定のネットワークのパケットをルーティングできるようにします。

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

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について、以下の記事をご覧ください。

pz-linkcard: Incorrect URL specification.(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 設定ミスの切り分けと修正 Part4 設定ミスのまとめ
図 BGP 設定ミスの切り分けと修正 Part4 設定ミスのまとめ


関連記事

BGPの仕組み