IP : IP ルーティング

BGP 条件付きアドバタイズメント機能の設定と確認

2004 年 2 月 23 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2005 年 8 月 10 日) | フィードバック

目次

概要
前提条件
       要件
       使用するコンポーネント
       背景理論
       表記法
設定
       ネットワーク ダイアグラム
      条件付きアドバタイズメント機能の設定
設定の検証
      例 1
      例 2
      例 3
既知の問題
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

BGP 条件付きアドバタイズメント機能を使用すると、BGP テーブルの中に別のプレフィクスが存在しているかどうかに応じて、ルート アドバタイズメントの新たな制御が可能になります。

前提条件

要件

この文書の前提条件は特にありません。

使用するコンポーネント

この文書で説明する BGP 条件付きアドバタイズメント機能は、Cisco IOS(R) ソフトウェア リリース 11.1CC および 11.2 で導入され、以降のリリースで利用可能です。

背景理論

通常、ルートは異なるパスの有無にはかかわらず伝搬されます。 BGP 条件付きアドバタイズメント機能は、non-exist-map および advertise-map 設定コマンドを使用して、ルート プレフィクスでルートを追跡します。 ルートプレフィクスが non-exist-map コマンドの出力結果に存在しない場合は、advertise-map コマンドによって指定されたルートがアナウンスされます。 この機能は、あるプロバイダーからの情報が欠落している(同位セッションでの障害または不完全な到達可能性を示す)場合にだけ、その他のプロバイダーの 1 つにプレフィクスがアドバタイズされる、マルチホーム ネットワークに有効です。

条件付き BGP アナウンスメントは、BGP ルータからピアに送信される、正規のアナウンスに追加して送信されます。

表記法

文書表記の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。

設定

このセクションでは、この文書で説明する機能を設定するための情報を記載します。

注:この文書で使用するコマンドに関する追加情報を探すには、IOS Command Lookup ツールを使用してください。

ネットワーク ダイアグラム

この文書では、次の図に示すネットワーク設定を使用します。

R103 のループバック インターフェイスは、R102 に 192.168.50.0/24 をアナウンスするために使用されています。 R102 には BGP ネットワーク、128.16.16.0/24 があり、デフォルトでは両方の外部 BGP(eBGP)ピアである R101 と R103 にアナウンスされます。

cond_adv_01.gif

BGP 条件付きアドバタイズメント機能を使用すると、R102 では次のことが可能になります。

  • R102 の BGP テーブルに 192.168.50.0/24 が存在する場合は、R101 に 128.16.16.0/24 をアドバタイズしません。

  • R102 の BGP テーブルに 192.168.50.0/24 が存在しない場合は、R101 に 128.16.16.0/24 をアドバタイズします。

条件付きアドバタイズメント機能の設定

この文書では、次の設定を使用します。

R102

hostname R102 
   ! 
   interface Loopback0 
    ip address 128.16.16.1 255.255.255.0 
   ! 
   interface Serial8/0 
    ip address 10.10.10.2 255.255.255.0 
   ! 
   interface Serial9/0 
    ip address 10.10.20.2 255.255.255.0 
   ! 
   router bgp 2 
    bgp log-neighbor-changes 
    network 128.16.16.0 mask 255.255.255.0 
    network 130.130.0.0 
    neighbor 10.10.10.1 remote-as 1 
    neighbor 10.10.10.1 advertise-map ADVERTISE non-exist-map NON-EXIST 
    neighbor 10.10.20.3 remote-as 3 
   ! 
   ip route 130.130.0.0 255.255.0.0 Null0 
   ! 
   access-list 60 permit 128.16.16.0 0.0.0.255 
   access-list 65 permit 192.168.50.0 0.0.0.255 
   ! 
   route-map NON-EXIST permit 10 
    match ip address 65 
   !  
   route-map ADVERTISE permit 10 
    match ip address 60 
   !

R103

hostname R103 
   ! 
   interface Loopback0 
    ip address 192.168.50.1 255.255.255.0 
   ! 
   interface Serial9/0 
    ip address 10.10.20.3 255.255.255.0 
   !  
   router bgp 3 
    bgp log-neighbor-changes 
    network 192.168.50.0 
    neighbor 10.10.20.2 remote-as 2 
   !

R101

hostname R101 
   ! 
   interface Loopback0 
    ip address 200.200.200.1 255.255.255.0 
   ! 
   interface Serial8/0 
    ip address 10.10.10.1 255.255.255.0 
   !  
   router bgp 1 
    bgp log-neighbor-changes 
    network 200.200.200.0 
    neighbor 10.10.10.2 remote-as 2 
   !

設定の検証

例 1

次の例では、R102 の BGP テーブルに 192.168.50.0/24 が存在する場合の BGP の状態を示します。

cond_adv_01.gif

最初に、R102 の BGP テーブルに 192.168.50.0/24 が存在するかどうかをチェックします。

R102# show ip bgp
   BGP table version is 6, local router ID is 128.16.16.1
   Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
   Origin codes: i - IGP, e - EGP, ? - incomplete
      Network          Next Hop            Metric LocPrf Weight Path
   *> 128.16.16.0/24   0.0.0.0                  0         32768 i
   *> 130.130.0.0      0.0.0.0                  0         32768 i
   *> 192.168.50.0     10.10.20.3               0             0 3 i
   *> 200.200.200.0    10.10.10.1               0             0 1 i
   

R102 の BGP テーブルに 192.168.50.0/24 が存在するため、R102 は R101 には 128.16.16/24 をアドバタイズしません。

R102# show ip bgp n 10.10.10.1 advertised-routes 
   BGP table version is 6, local router ID is 128.16.16.1
   Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
   Origin codes: i - IGP, e - EGP, ? - incomplete
      Network          Next Hop            Metric LocPrf Weight Path
   *> 130.130.0.0      0.0.0.0                  0         32768 i
   *> 192.168.50.0     10.10.20.3               0             0 3 i
   
   !-- 近隣ルータ 10.10.10.1 に 128.16.16.0/24 がアドバタイズされません。
   
   R102# show ip bgp 128.16.16.0
   BGP routing table entry for 128.16.16.0/24, version 6
   Paths: (1 available, best #1, table Default-IP-Routing-Table)
     Advertised to non peer-group peers:
   
   !-- これは R101 にアドバタイズされません。
     
   10.10.20.3     
     Local
       0.0.0.0 from 0.0.0.0 (128.16.16.1)
         Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best
   

次に、R102 の条件付きアドバタイズメントのステータスをチェックします。

R102# show ip bgp neighbors 10.10.10.1
   BGP neighbor is 10.10.10.1,  remote AS 1, external link
     BGP version 4, remote router ID 200.200.200.1
     BGP state = Established, up for 02:27:07
     Last read 00:00:07, hold time is 180, keepalive interval is 60 seconds
    [...]
    For address family: IPv4 Unicast
     BGP table version 6, neighbor version 6
     Index 1, Offset 0, Mask 0x2
     Condition-map NON-EXIST, Advertise-map ADVERTISE, status: Withdraw
     1 accepted prefixes consume 36 bytes
     Prefix advertised 3, suppressed 0, withdrawn 1
     Number of NLRIs in the update sent: max 1, min 0
    [...]
   

出力結果には、条件付きアドバタイズメントが「withdrawn」であり、ルート マップ「ADVERTISE」にマッチするネットワークがピア 10.10.10.1 にアナウンスされないことが示されます。

ルート マップ「ADVERTISE」にマッチするルートが R101 にアナウンスされないことを確認するには、R101 の BGP テーブルをチェックします。

R101# show ip bgp 128.16.16.0
   % Network not in table
   

例 2

次の例では、R102 の BGP テーブルにネットワーク 192.168.50.0/24 が存在しない場合の BGP の状態を示します。

cond_adv_02.gif

最初に、R103 のループバック インターフェイス 0 をシャット ダウンして、R103 が R102 に 192.168.50.0/24 をアナウンスすることを停止します。

R103(config)# interface loopback 0
   R103(config-if)# shut
   R103(config-if)# shutdown 
   R103(config-if)#
   03:29:36: %LINK-5-CHANGED: Interface Loopback0, changed state to administratively down
   

次に、R102 で 192.168.50.0/24 が学習されないことと、R102 の BGP テーブルに 192.168.50.0/24 が存在しないことを確認します。

R102# show ip bgp 
   BGP table version is 8, local router ID is 128.16.16.1
   Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
   Origin codes: i - IGP, e - EGP, ? - incomplete
      Network          Next Hop            Metric LocPrf Weight Path
   *> 128.16.16.0/24   0.0.0.0                  0         32768 i
   *> 130.130.0.0      0.0.0.0                  0         32768 i
   *> 200.200.200.0    10.10.10.1               0             0 1 i
   
   !-- 192.168.50.0/24 が存在しません。
   
   

次に、条件付きアドバタイズメントの始動にかかる時間を示します。

R102# debug ip bgp updates
   *Mar  1 02:39:18.059: BGP(0): 10.10.20.3 rcv UPDATE about 192.168.50.0/24 
   -- withdrawn
   *Mar  1 02:39:18.059: BGP(0): no valid path for 192.168.50.0/24
   *Mar  1 02:39:18.079: BGP(0): nettable_walker 192.168.50.0/24 no best path
   *Mar  1 02:39:18.219: BGP(0): 10.10.10.1 computing updates, afi 0, neighbor 
   version 10, table version 11, starting at 0.0.0.0
   *Mar  1 02:39:18.219: BGP(0): 10.10.10.1 send unreachable 192.168.50.0/24
   *Mar  1 02:39:18.219: BGP(0): 10.10.10.1 send UPDATE 192.168.50.0/24 
   -- unreachable
   *Mar  1 02:39:18.219: BGP(0): 10.10.10.1 1 updates enqueued (average=27, maximum=27)
   *Mar  1 02:39:18.219: BGP(0): 10.10.10.1 update run completed, afi 0, ran for 0ms, 
   neighbor version 10, start version 11, throttled to 11
   *Mar  1 02:40:04.747: BPG(0): Condition NON-EXIST changes to Advertise
   *Mar  1 02:40:04.747: BGP(0): net 128.16.16.0/24 matches ADV MAP ADVERTISE: 
   bump version to 12
   *Mar  1 02:40:05.187: BGP(0): nettable_walker 128.16.16.0/24 route sourced 
   locally
   *Mar  1 02:40:05.187: BGP(0): 10.10.10.1 computing updates, afi 0, neighbor 
   version 11, table version 12, starting at 0.0.0.0
   *Mar  1 02:40:05.187: BGP(0): 10.10.10.1 128.16.16.0/24 matches advertise map 
   ADVERTISE, state: Advertise
   *Mar  1 02:40:05.187: BGP(0): 10.10.10.1 send UPDATE (format) 128.16.16.0/24, 
   next 10.10.10.2, metric 0, path 
   *Mar  1 02:40:05.187: BGP(0): 10.10.10.1 1 updates enqueued (average=52, maximum=52)
   *Mar  1 02:40:05.187: BGP(0): 10.10.10.1 update run completed, afi 0, ran for 0ms, 
   neighbor version 11, start version 12, throttled to 12
   

条件付きアドバタイズメントのプロセスは、60 秒ごとに実行される BGP スキャナ プロセスによってトリガされます。 これは、条件付きアドバタイズメントが有効になるまでの時間が、最大 60 秒であることを意味します。しかし、これもトラッキングされるルートが BGP テーブルから削除された時間と、BGP スキャナの次のインスタンスが実行される時間によって、短くなる場合があります。 近隣ルータ 10.10.10.1 に対する、R102 の条件付きアドバタイズメントの状態を確認するには、R102 で次のことを実行します。

R102# show ip bgp nei 10.10.10.1
   BGP neighbor is 10.10.10.1,  remote AS 1, external link
     BGP version 4, remote router ID 200.200.200.1
     BGP state = Established, up for 02:45:27
     Last read 00:00:27, hold time is 180, keepalive interval is 60 seconds
     [...]
    For address family: IPv4 Unicast
     BGP table version 12, neighbor version 12
     Index 1, Offset 0, Mask 0x2
     Condition-map NON-EXIST, Advertise-map ADVERTISE, status: Advertise
     1 accepted prefixes consume 36 bytes
     Prefix advertised 6, suppressed 0, withdrawn 4
     Number of NLRIs in the update sent: max 1, min 0
     [...]
   

次に示すように、R101 の BGP テーブルとルーティング テーブルには 128.16.16.0/24 が存在します。

R101# show ip bgp
   BGP table version is 18, local router ID is 200.200.200.1
   Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
   Origin codes: i - IGP, e - EGP, ? - incomplete
      Network          Next Hop            Metric LocPrf Weight Path
   *> 128.16.16.0/24   10.10.10.2               0             0 2 i
   *> 130.130.0.0      10.10.10.2               0             0 2 i
   *> 200.200.200.0    0.0.0.0                  0         32768 i
  
   

注意:上記の出力結果では、条件付き BGP アナウンスメント(ネットワーク 128.16.16.0/24)は、BGP ルータからピアに送信される、正規の BGP アナウンスメント(ネットワーク 130.130.0.0/16)に追加して送信されています。

R101#show ip route bgp
        128.16.0.0/24 is subnetted, 1 subnets
   B       128.16.16.0 [20/0] via 10.10.10.2, 00:09:32
   B    130.130.0.0/16 [20/0] via 10.10.10.2, 02:48:46
   

例 3

次の例では、R102 に 192.168.50.0/24 ネットワークを再インストールして、BGP が「advertise」から「withdraw」に変わることを示します。

cond_adv_01.gif

192.168.50.0/24 を再インストールするには、no shutdown コマンドを実行して、R103 上のインターフェイス ループバック 0 を「アップ」にします。

R103(config)# interface loopback 0
   R103(config-if)# no shutdown
   R103(config-if)#
   03:49:06: %LINK-3-UPDOWN: Interface Loopback0, 
   changed state to up
   03:49:07: %LINEPROTO-5-UPDOWN: Line protocol on 
   Interface Loopback0, changed state to up
   R102 kicks in conditional Advertisement the moment the 
   conditional network is received again.
   *Mar  1 02:51:42.227: BGP(0): 10.10.20.3 rcvd UPDATE w/ attr: 
   nexthop 10.10.20.3, origin i, metric 0, path 3
   *Mar  1 02:51:42.227: BGP(0): 10.10.20.3 rcvd 192.168.50.0/24
   *Mar  1 02:51:42.247: BGP(0): Revise route installing 192.168.50.0/24 -> 
   10.10.20.3 to main IP table
   *Mar  1 02:51:42.379: BGP(0): 10.10.10.1 computing updates, afi 0, 
   neighbor version 12, table version 13, starting at 0.0.0.0
   *Mar  1 02:51:42.379: BGP(0): 10.10.10.1 send UPDATE (format) 
   192.168.50.0/24, next 10.10.10.2, metric 0, path 3
   *Mar  1 02:51:42.379: BGP(0): 10.10.10.1 1 updates enqueued 
   (average=47, maximum=47)
   *Mar  1 02:51:42.379: BGP(0): 10.10.10.1 update run completed, afi 0, 
   ran for 0ms, neighbor version 12, start version 13, throttled to 13
   *Mar  1 02:52:09.159: BPG(0): Condition NON-EXIST changes to Withdraw
   *Mar  1 02:52:09.159: BGP(0): net 128.16.16.0/24 matches ADV MAP 
   ADVERTISE: bump version to 14
   *Mar  1 02:52:09.499: BGP(0): nettable_walker 128.16.16.0/24 route 
   sourced locally
   *Mar  1 02:52:11.559: BGP(0): 10.10.10.1 computing updates, afi 0, 
   neighbor version 13, table version 14, starting at 0.0.0.0
   *Mar  1 02:52:11.559: BGP(0): 10.10.10.1 128.16.16.0/24 matches advertise 
   map ADVERTISE, state: Withdraw
   *Mar  1 02:52:11.559: BGP(0): 10.10.10.1 send unreachable 128.16.16.0/24
   *Mar  1 02:52:11.559: BGP(0): 10.10.10.1 send UPDATE 128.16.16.0/24 -- unreachable
   *Mar  1 02:52:11.559: BGP(0): 10.10.10.1 1 updates enqueued (average=27, maximum=27)
   *Mar  1 02:52:11.559: BGP(0): 10.10.10.1 update run completed, afi 0, ran for 0ms, 
   neighbor version 13, start version 14, throttled to 14
   

R102 では、R101 への 128.16.16.0/24 のアドバタイズが停止します。

R102# show ip bgp neighbors 10.10.10.1 advertised-routes 
   BGP table version is 14, local router ID is 128.16.16.1
   Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
   Origin codes: i - IGP, e - EGP, ? - incomplete
      Network          Next Hop            Metric LocPrf Weight Path
   *> 130.130.0.0      0.0.0.0                  0         32768 i
   *> 192.168.50.0     10.10.20.3               0             0 3 i
   
   !-- 128.16.16.0/24 はアドバタイズされません。
   
   R102# show ip bgp neighbors 10.10.10.1
   BGP neighbor is 10.10.10.1,  remote AS 1, external link
     BGP version 4, remote router ID 200.200.200.1
     BGP state = Established, up for 03:01:32
     Last read 00:00:31, hold time is 180, keepalive interval is 60 seconds
     Neighbor capabilities:
     [...]
    For address family: IPv4 Unicast
     BGP table version 14, neighbor version 14
     Index 1, Offset 0, Mask 0x2
     Condition-map NON-EXIST, Advertise-map ADVERTISE, status: Withdraw
     1 accepted prefixes consume 36 bytes
     Prefix advertised 7, suppressed 0, withdrawn 5
     Number of NLRIs in the update sent: max 1, min 0
     [...]
   

注:実際のシナリオの場合は、AS1 と AS3 はインターネット(グローバル BGP)に接続されています。 したがって、ネットワーク 192.168.50.0/24 は通常、AS3 から AS1(R101)BGP テーブルへグローバル BGP メッシュを介して伝搬されます。 逆に AS1 はプレフィクス 192.168.50.0 を R102 に伝搬する可能性があります(これは AS1 と AS2 で同意が得られたポリシーによって決まります)。 R101 がグローバル BGP メッシュから学習した AS3 ルートを R102 に伝搬すると、non-exist map で追加チェックが指定されていなければ、条件付きアドバタイズメントが失敗することがあります。

条件付きアドバタイズメントが失敗する理由をさらに深く理解するため、次のシナリオを検討してください。 AS1 は、global bgp mesh から 192.168.50.0/24 を学習し、それを AS2(R102)にアナウンスします。 R102 は、R103 への(R102 から R103 へのリンクを介して)ダイレクト ピアリングから、プレフィクス 192.168.50.0/24 も学習します。 R102 と R103 の間のダイレクト リンクで障害が発生すると、プレフィクス 192.168.50.0/24 は R102 の BGP テーブル内に存在しなくなり、条件付きアドバタイズメントのキックインが実行され、プレフィクス 128.16.16.0/24 が R101 にアナウンスされる可能性が高くなります。 ただし、プレフィクス 192.168.50.0/24 は(R101 から学習した)R102 の BGP テーブル内に存在し続け、non-exist map のプレフィクスがこれまでと同様、R102 BGP テーブル内に存在しているため、条件付きアドバタイズメントは中断されます。 条件付きアドバタイズメントがキックインできるように、プレフィクス 192.168.50.0/24 が AR3(R102 から R103)への直接接続からだけ学習されるようにするため、直接接続から学習したプレフィクス 192.168.50.0/24 の AS_PATH と一致する non-exist map の下(この場合は AS3)に、match as_path ステートメントを追加します。 この場合、これに対する正規表現は ^3 です。 正規表現の詳細については、「BGP での正規表現の使用」を参照してください。

R102 の新しい設定を次に示します。 追加部分は太字で示されています。

R101

hostname R102  
   !  
   interface Loopback0  
    ip address 128.16.16.1 255.255.255.0  
   !  
   interface Serial8/0  
    ip address 10.10.10.2 255.255.255.0  
   !  
   interface Serial9/0  
    ip address 10.10.20.2 255.255.255.0  
   !  
   router bgp 2  
    bgp log-neighbor-changes  
    network 128.16.16.0 mask 255.255.255.0  
    network 130.130.0.0  
    neighbor 10.10.10.1 remote-as 1  
    neighbor 10.10.10.1 advertise-map ADVERTISE non-exist-map NON-EXIST  
    neighbor 10.10.20.3 remote-as 3  
   !  
   ip route 130.130.0.0 255.255.0.0 Null0 
   ! 
   ip as-path access-list 1 permit ^3 
   !  
   access-list 60 permit 128.16.16.0 0.0.0.255  
   access-list 65 permit 192.168.50.0 0.0.0.255  
   !  
   route-map NON-EXIST permit 10  
    match ip address 65  
     match as-path 1 
   !  
   route-map ADVERTISE permit 10  
    match ip address 60  
   !

既知の問題

BGP および条件付きアドバタイズメントに関連する、既知の不具合がいくつかあります。 詳細については、Bug Toolkit の Bug CSCdp18563登録ユーザのみ)と CSCdp20320登録ユーザのみ)を参照してください。

一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 16137