このドキュメントでは、ボーダー ゲートウェイ プロトコル(BGP)条件付きアドバタイズメント機能の設定方法と確認方法について説明します。
次の項目に関する専門知識があることが推奨されます。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
ボーダー ゲートウェイ プロトコル(BGP)条件付きアドバタイズメント機能を使用すると、BGP テーブルの中に別のプレフィックスが存在しているかどうかに応じて、ルート アドバタイズメントの新たな制御が可能になります。
このドキュメントで説明されているBGP条件付きアドバタイズメント機能は、Cisco IOS®ソフトウェアリリース11.1および11.2で導入され、以降のリリースで使用できます。
通常、ルートは異なるパスの有無にはかかわらず伝搬されます。BGP 条件付きアドバタイズメント機能では、neighbor advertise-map コマンドの non-exist-map および advertise-map キーワードを使用して、ルート プレフィックスごとにルートを追跡します。ルートプレフィクスが non-exist-map コマンドの出力結果に存在しない場合は、advertise-map コマンドによって指定されたルートがアナウンスされます。この機能は、マルチホーム ネットワークで、いずれかのプロバイダーからアドバタイズされたプレフィックスを、他のプロバイダーからの情報が存在しない場合にのみ提供する場合に役立ちます。
条件付き BGP アナウンスは、BGP ルータがピアに送信する通常のアナウンスと併せて送信されます。
このセクションでは、このドキュメントで説明する機能を設定するために必要な情報を提供しています。
注:このドキュメントで使用されているコマンドの詳細を調べるには、Cisco IOS Command Lookupツールを使用してください。シスコの内部ツールおよび情報にアクセスできるのは、登録されたシスコユーザのみです。
このドキュメントでは、次の図で示されるネットワーク設定を使用しています。
ここでは、R103 のループバック インターフェイスを使用して 192.168.50.0/24 を R102 にアナウンスします。R102にはBGPネットワーク172.16.16.0/24があり、デフォルトで外部BGP(eBGP)ピアであるR101とR103の両方にアナウンスされます。
ネットワーク構成
BGP 条件付きアドバタイズメント機能を使用することで、R102 で以下のタスクに対応できます。
192.168.50.0/24がR102のBGPテーブルに存在する場合は、172.16.16.0/24ネットワークをR101にアドバタイズしないでください。
192.168.50.0/24がR102のBGPテーブルに存在しない場合は、172.16.16.0/24ネットワークをR101にアドバタイズします。
Cisco IOS 12.2T以降のバージョンでは、exist-mapキーワードを使用して次のタスクも実行できます。
192.168.50.0/24がR102 BGPテーブルに存在する場合は、172.16.16.0/24ネットワークをR101にアドバタイズします。
192.168.50.0/24がR102 BGPテーブルに存在しない場合は、172.16.16.0/24ネットワークをR101にアドバタイズしないでください。
このドキュメントでは、次のコンフィギュレーションを使用します。
注:次の例では、non-exist-mapキーワードについて説明しています。exist-map キーワードを使用する方法もこれと同様です。
| R102 |
|---|
hostname R102 ! interface Loopback0 ip address 172.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 172.16.16.0 mask 255.255.255.0 network 172.31.130.0 neighbor 10.10.10.1 remote-as 1 neighbor 10.10.10.1 advertise-map ADVERTISE non-exist-map NON-EXIST !--- Advertises the routes matched in the route-map ADVERTISE (172.16.16.0/24) |
| 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 10.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 10.200.200.0 neighbor 10.10.10.2 remote-as 2 ! |
この例では、192.168.50.0/24がR102 BGPテーブルにある場合のBGPの状態を確認します。
設定の検証
最初に、192.168.50.0/24がR102 BGPテーブルに存在するかどうかを確認します。
R102#show ip bgp BGP table version is 6, local router ID is 172.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 *> 172.16.16.0/24 0.0.0.0 0 32768 i *> 172.31.130.0 0.0.0.0 0 32768 i *> 192.168.50.0 10.10.20.3 0 0 3 i *> 10.200.200.0 10.10.10.1 0 0 1 i
192.168.50.0/24はR102 BGPテーブルにあるため、R102は172.16.16.0/24をR101にアドバタイズできません。
R102#show ip bgp neighbors 10.10.10.1 advertised-routes
BGP table version is 6, local router ID is 172.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
*> 172.31.130.0 0.0.0.0 0 32768 i
*> 192.168.50.0 10.10.20.3 0 0 3 i
!--- Note 172.16.16.0/24 is not advertised to neighbor 10.10.10.1.
R102#show ip bgp 172.16.16.0
BGP routing table entry for 172.16.16.0/24, version 6
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
!--- This is not advertised to R101.
10.10.20.3
Local
0.0.0.0 from 0.0.0.0 (172.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 10.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 !--- Output suppressed. 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 !--- Output suppressed.
出力には、条件付きアドバタイズメントが「withdrawn」であり、ルートマップ「ADVERTISE」に一致するネットワークがピア10.10.10.1にアナウンスされないことが示されます。
ルートマップADVERTISEに一致するルートがR101にアナウンスされないことを確認するには、R101のBGPテーブルを確認します。
R101#show ip bgp 172.16.16.0 % Network not in table
この例では、ネットワーク 192.168.50.0/24 が R102 の BGP テーブルに存在しない場合の BGP 情報の内容を確認します。
192.168.50.0/24がR102 BGPテーブルに存在しない
手順は次のとおりです。
1. R103のループバックインターフェイス0をシャットダウンし、R103が192.168.50.0/24をR102にアナウンスしないようにします。
R103(config)#interface loopback 0 R103(config-if)#shutdown R103(config-if)# 03:29:36: %LINK-5-CHANGED: Interface Loopback0, changed state to administratively down
2. R102が192.168.50.0/24を学習していないこと、およびネットワークがR102 BGPテーブルに含まれていないことを確認します。
R102#show ip bgp BGP table version is 8, local router ID is 172.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 *> 172.16.16.0/24 0.0.0.0 0 32768 i *> 172.31.130.0 0.0.0.0 0 32768 i *> 10.200.200.0 10.10.10.1 0 0 1 i !--- Note 192.168.50.0/24 is not present.
3. 条件付きアドバタイズメントの開始にかかる時間を確認します。
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 172.16.16.0/24 matches ADV MAP ADVERTISE: bump version to 12 *Mar 1 02:40:05.187: BGP(0): nettable_walker 172.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 172.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) 172.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 neighbors 10.10.10.1 BGP neighbor is 10.10.10.1, remote AS 1, external link BGP version 4, remote router ID 10.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 !--- Output suppressed. 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 !--- Output suppressed.
次に示すように、R101のBGPテーブルとルーティングテーブルには172.16.16.0/24があります。
注:この出力例では、BGPルータがピアに送信する通常のBGPアナウンス(ネットワーク172.16.16.0/24)に加えて、条件付きBGPアナウンス(ネットワーク172.31.130.0/16)が送信されます。
R101#show ip bgp BGP table version is 18, local router ID is 10.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 *> 172.16.16.0/24 10.10.10.2 0 0 2 i *> 172.31.130.0 10.10.10.2 0 0 2 i *> 10.200.200.0 0.0.0.0 0 32768 i
R101#show ip route bgp
172.16.0.0/24 is subnetted, 1 subnets
B 172.16.16.0 [20/0] via 10.10.10.2, 00:09:32
B 172.31.130.0/16 [20/0] via 10.10.10.2, 02:48:46
この例では、BGPがAdvertiseからWithdrawに変わる様子を確認するために、R102での192.168.50.0/24ネットワークの再インストールが含まれています。
BGPがアドバタイズから撤回に変わる仕組み
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 172.16.16.0/24 matches ADV MAP ADVERTISE: bump version to 14 *Mar 1 02:52:09.499: BGP(0): nettable_walker 172.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 172.16.16.0/24 matches advertise map ADVERTISE, state: Withdraw *Mar 1 02:52:11.559: BGP(0): 10.10.10.1 send unreachable 172.16.16.0/24 *Mar 1 02:52:11.559: BGP(0): 10.10.10.1 send UPDATE 172.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は172.16.16.0/24をR101にアドバタイズしなくなりました。
R102#show ip bgp neighbors 10.10.10.1 advertised-routes BGP table version is 14, local router ID is 172.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 *> 172.31.130.0 0.0.0.0 0 32768 i *> 192.168.50.0 10.10.20.3 0 0 3 i !--- Note 172.16.16.0/24 is not advertised. 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 10.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: !--- Output supressed. 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 !--- Output supressed.
注:実際のシナリオでは、AS1とAS3はインターネットに接続されています(グローバルBGP)。 したがって、ネットワーク192.168.50.0/24は、グローバルBGPメッシュを介してAS3からAS1(R101)のBGPテーブルに伝搬される可能性があります。その場合、(AS1 と AS2 との間で同意しているポリシーによっては)AS1 がプレフィックス 192.168.50.0 を R102 に伝播することもあります。 R101がグローバルBGPメッシュから学習したAS3ルートをR102に伝搬した場合、追加のチェックがnon-exist mapに配置されていなければ、条件付きアドバタイズメントが失敗する可能性があります。
条件付きアドバタイズが失敗する理由を理解するために、次のシナリオを考えてみましょう。このシナリオでは、AS1 が global bgp mesh によって 192.168.50.0/24 を学習し、192.168.50.0/24 を AS2(R102)にアナウンスします。 R102 はその直接のピアからも(R102 から R103 へのリンクで)プレフィックス 192.168.50.0/24 を学習します。 R102とR103の間の直接リンクに障害が発生すると、プレフィックス192.168.50.0/24がR102のBGPテーブルに存在しなくなり、条件付きアドバタイズメントが作動してプレフィックス172.16.16.0/24をR101にアナウンスすると予想されます。ただし、non-exist map のプレフィックス 192.168.50.0/24 が R102 の BGP テーブルに存在しているため、このプレフィックス(R101 から学習したもの)は R102 の BGP テーブルに存在し続けます。
条件付きアドバタイズメントがキックインできるように、プレフィックス192.168.50.0/24がAS3への直接接続(R102からR103)のみから学習されるようにするには、直接接続から学習したプレフィックス192.168.50.0/24のAS_PATH(この場合はAS 3)と一致するmatch as_pathステートメントをnon-exist mapの下に追加します。 この例での正規表現は ^3 です。正規表現の詳細については、BGP での正規表現の使用方法を参照してください。プレフィックスと一致させるのではなく、as-path とだけ一致させることはできないことに注意してください。match as-path は、一致対象のプレフィックスの一致基準を補足することしかできません。つまり、特定の AS 番号からのプレフィックスが存在しなければ、プレフィックスをネイバーにアドバタイズすることはできません。
以下に、R102 での新しい設定を示します。追加部分は、太字で示されています。
| R101 |
|---|
hostname R102 ! interface Loopback0 ip address 172.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 172.16.16.0 mask 255.255.255.0 network 172.31.130.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 172.31.130.0 255.255.0.0 Null0 ! ip as-path access-list 1 permit ^3 ! access-list 60 permit 172.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 ! |
| 改定 | 発行日 | コメント |
|---|---|---|
7.0 |
15-Jul-2026
|
再認定 – 書式を更新し、カテゴリ別に寄稿しました。 |
6.0 |
25-Nov-2025
|
再認定、再フォーマット、AIコンテンツユーザーの書き込みラベルを追加。 |
5.0 |
13-Dec-2024
|
手順の再認定、再フォーマットと軽い再構築。 |
4.0 |
26-Jun-2023
|
再認定 |
1.0 |
28-Dec-2001
|
初版 |