この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、ボーダーゲートウェイプロトコル(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.
出力には、条件付きアドバタイズメントが撤回され、ルートマップ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テーブルに存在しない
まず、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
次に、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.
条件付きアドバタイズメントの開始にかかる時間を確認します。
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がAdvertiseからWithdrawに変わる仕組み
192.168.50.0/24を再インストールするには、 no shutdown コマンドを実行してR103上のループバックインターフェイス0を「UP」にします。
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 (GC)から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にアナウンスします。ただし、(R101から学習した)プレフィクス192.168.50.0/24はR102 BGPテーブルに存在し続けるため、non-exist mapのプレフィクスはR102 BGPテーブルにまだ存在しているため、条件付きアドバタイズメントは中断します。条件付きアドバタイズメントを起動するために、プレフィックス192.168.50.0/24がAS3への直接接続(R102 ~ R103)のみから学習されるようにするには、直接接続から学習したプレフィックス192.168.50.0/24のAS_PATH(この場合はAS 3)と一致するnon-exist map(NON-EXIST MAP)の下に match as_pathステートメントを追加します。この例での正規表現は ^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 ! |
関連情報
改定 | 発行日 | コメント |
---|---|---|
4.0 |
26-Jun-2023 |
再認定 |
1.0 |
28-Dec-2001 |
初版 |