はじめに
このドキュメントでは、ネットワーク フェールオーバー シナリオにおけるボーダー ゲートウェイ プロトコル(BGP)の重みパス属性の重要性について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- ボーダー ゲートウェイ プロトコル(BGP)
- ルーティングプロトコルの再配布
- Cisco IOS® を実行している Cisco ルータ
使用するコンポーネント
このドキュメントの情報は、Cisco IOS®バージョン15.6(2)を搭載したCiscoルータに基づくものです
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
BGPは、Interior Gateway Protocol(IGP;内部ゲートウェイプロトコル)を介してLanエリアネットワーク(LAN)から受信したネットワークプレフィックスをWanエリアネットワーク(WAN)にアドバタイズしたり、その逆を行うために一般的に使用されます。適切に設定されていないと、ネットワークがリンク障害から回復した後に、BGP が、WAN を介した元のルーティングパスの復元に失敗する可能性があります。
フェールオーバーシナリオで展開されたルータでは、ルートがスタックする可能性があり、そのために障害およびリカバリ ネットワーク イベントの後にトラフィックがバックアップパスを介してリダイレクトされる場合があります。この問題は、BGP 重みパス属性の性質が原因で発生する可能性があります。
このネットワークでは、ネットワーク障害が発生(通常は WAN リンクで)すると、ネットワーク コンバージェンスが発生し、IGP を介して受信した利用可能なバックアップパスを使用できるようになります。
ただし、プライマリパスが回復しても、ルータが引き続きバックアップパスを使用し、WAN リンクを介した元のルートが復元されない場合があります。
その結果、非対称のルーティングパスや最適とは言えないルーティングパスが発生する可能性があります。
2 つの WAN ルータを使用した冗長性シナリオでは、これらのルータが、BGP を使用して、ネットワークプレフィックスを WAN と交換することができます。Enhanced Interior Gateway Routing Protocol(EIGRP)などの IGP を使用すると、ネットワークプレフィックスを LAN ネットワークデバイスと交換することができます。通常、完全なネットワーク接続を実現するためには、これらのプロトコル間の相互再配布が必要です。
注:このドキュメントでは、プレフィックスとルートという用語を同じ意味で使用しています。
この概要設計は、次のトポロジで確認できます。
ローカル発信ルートで設定される BGP 重みパス属性
このシナリオでは、フェールオーバー発生時の BGP 重みパス属性の動作について説明します。
ステップ 1:ルートがBGP経由で受信されます。
図のように、WAN RTR という名前のルータが、BGP を介して 192.168.1.0/24 ネットワークを受信します。
20 のアドミニストレーティブ ディスタンス(AD)でルートがルーティングテーブルに登録されます。
BGP テーブル:
WAN_RTR |
WAN_RTR#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0 10.1.2.2 0 0 2 i
|
ルーティングテーブルには、BGP によって登録されたルートが示されます。
WAN_RTR |
WAN_RTR#show ip route
<snip>
B 192.168.1.0/24 [20/0] via 10.1.2.2, 00:00:42
|
ステップ 2:ルートはEIGRPを介して受信されます。
リンク障害のために BGP セッションがダウンします。ネットワーク コンバージェンスによって、同じルート 192.168.1.0/24 が、今度は EIGRP を介して受信されます。
重要な点は、BGPが(次のルータ設定を利用して)EIGRPルートをアドバタイズまたは再配布できることです。その場合、今度は EIGRP ルートが BGP テーブルに追加されます。
注:ルータがローカルでネットワークプレフィックスを発信する場合、BGP Weightパス属性はデフォルトで32768に設定されます。
BGP 設定:
WAN_RTR |
WAN_RTR#show running-config | begin router bgp
<snip> router bgp 1
redistribute eigrp 1
neighbor 10.1.2.2 remote-as 2
! |
注:BGPコマンドnetwork 192.168.1.0 mask 255.255.255.0でも同じ結果が表示される場合があります。
BGP テーブル:
WAN_RTR |
WAN_RTR#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0 10.1.3.3 156160 32768 ?
|
ルーティングテーブルには、EIGRP によって登録されたルートが示されます。
WAN_RTR |
WAN_RTR#show ip route
<snip>
D 192.168.1.0/24 [90/156160] via 10.1.3.3, 00:00:02, FastEthernet0/1
WAN_RTR# |
ステップ 3:BGP経由でルートを再度受信しました。
今度は EIGRP によってルートが BGP に再配布されます。元のルートが BGP を介して再度受信されると、BGP テーブルに 192.168.1.0/24 ネットワークの 2 つのエントリが存在するようになります。
BGP テーブル:
WAN_RTR |
WAN_RTR#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
* 192.168.1.0 10.1.2.2 0 0 2 i
*> 10.1.3.3 156160 32768 ?
|
BGP テーブルは、次のようになります。
- ステップ 2 で BGP に再配布された EIGRP ルートによって作成されたエントリが、引き続き存在する可能性があります。
- BGP セッションの再確立によって元のルートが再び追加されます。
BGPベストパス選択の観点から見ると、次のようになります。
- BGPに再配布されるEIGRPルートのWeightパスアトリビュートの値は、BGPの観点からはルータ内でローカルに発信されるため、32768に設定されます。
- WANとのBGPセッションを介して受信された元のルートのWeightパスアトリビュートの値が0である。
- 1 つ目のルートの重みが最も高いため、BGP テーブルでベストパスとして選択されます。
- これにより、ルーティングテーブルが元の状態に収束せず、EIGRP ルートエントリが保持されます。
注:BGPウェイトパスアトリビュートは、Cisco IOSルータのBGPテーブルでベストパスを選択する際にBGPがチェックする最初のパスアトリビュートです。BGP は、最も高い重みを持つエントリのパスを優先します。重みはシスコ固有のパラメータであり、設定されているルータにおいてローカルでのみ有効です。詳細については、次のドキュメントを参照してください:『BGP で最適パスを選択するアルゴリズム』
ルーティング テーブル:
WAN_RTR |
WAN_RTR#show ip route
<snip>
D 192.168.1.0/24 [90/156160] via 10.1.3.3, 00:08:55, FastEthernet0/1
|
BGP 重みパス属性の変更
BGP 重みパス属性のデフォルト値は、weight コマンドまたは route-map コマンドを使用して、設定された BGP ピアごとに変更できます。
次のコマンドでは、BGP ピアから受信するすべてのルートの重みパス属性が 40000 に設定されます。
例 1
weight コマンドの使用 |
router bgp 1
neighbor 10.1.2.2 weight 40000 |
例 2
route-map コマンドによる重みパス属性の設定 |
route-map FROM-WAN permit 10
set weight 40000
!
router bgp 1
neighbor 10.1.2.2 route-map FROM-WAN in
!
clear ip bgp * soft in |
例 3
route-map コマンドによる特定ルートの重みパス属性の設定 |
ip prefix-list NETWORKS permit 192.168.1.0/24
!
route-map FROM-WAN permit 10
match ip address prefix NETWORKS
set weight 40000
route-map FROM-WAN permit 100
!
router bgp 1
neighbor 10.1.2.2 route-map FROM-WAN in
!
clear ip bgp * soft in |
重みパス属性の値を大きくすると、次の場合のように、BGP を介して受信した元のルートが優先されます。
ステップ 1:ルートがBGP経由で受信されます。
BGP テーブルには、BGP を介して受信したルートの重み値が 0 ではなく40000 になっていることが示されています。
BGP テーブル:
WAN_RTR |
WAN_RTR#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0 10.1.2.2 0 40000 2 i
WAN_RTR# |
ルーティング テーブル:
WAN_RTR |
WAN_RTR#show ip route
<snip>
B 192.168.1.0/24 [20/0] via 10.1.2.2, 00:09:53
|
ステップ 2:ルートはEIGRPを介して受信されます。
BGP テーブルでは、ローカル発信ルートの値は依然として 32768 です。
BGP テーブル:
WAN_RTR |
WAN_RTR#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0 10.1.3.3 156160 32768 ?
|
ルーティング テーブル:
WAN_RTR |
WAN_RTR#show ip route
<snip>
D 192.168.1.0/24 [90/156160] via 10.1.3.3, 00:01:41, FastEthernet0/1
|
ステップ 3:BGP経由でルートを再度受信しました。
重み40000を使用すると、BGP経由で受信されたルートは、ローカルで発信されたルートよりも選択されるようになります。これにより、ネットワークは元の状態に適切に収束します。
BGP テーブル:
WAN_RTR |
WAN_RTR#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0 10.1.2.2 0 40000 2 i
|
ルーティング テーブル:
WAN_RTR |
WAN_RTR#show ip route
<snip>
B 192.168.1.0/24 [20/0] via 10.1.2.2, 00:00:25
|
具体的なシナリオ
次のシナリオを例に説明します。
ステップ 1:元のネットワークの状態。
コアレイヤ3スイッチは、WAN RTR AおよびWAN RTR BからEIGRP経由で192.168.1.0/24ルートを受信します。WAN RTR A上のパスが選択されます。
次の出力には、CORE スイッチが両方の WAN ルータとの EIGRP 隣接関係を維持し、192.168.1.0/24 ネットワークに到達するために WAN RTR A が選択されている様子が示されています。
コア |
CORE#show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 10.1.2.2 (WAN_RTR_A) Fa0/0 10 00:05:15 79 1066 0 10
1 10.1.3.3 (WAN_RTR_B) Fa0/1 12 00:06:22 76 456 0 5
CORE#show ip route
<snip>
D EX 192.168.1.0/24 [170/28416] via 10.1.2.2, 00:00:32, FastEthernet0/0
CORE#show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(1)/ID(10.10.10.10)
<snip>
P 192.168.1.0/24, 1 successors, FD is 28416, tag is 4
via 10.1.2.2 (28416/2816), FastEthernet0/0
via 10.1.3.3 (281856/2816), FastEthernet0/1 |
ステップ 2:プライマリWANリンクの障害
リンク障害が発生し、CORE スイッチは、次善の EIGRP パスである WAN RTR B を介したルートを登録しています。
コア |
CORE#show ip route
<snip>
D EX 192.168.1.0/24 [170/281856] via 10.1.3.3, 00:00:05, FastEthernet0/1
CORE#show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(1)/ID(10.10.10.10)
<snip>
P 192.168.1.0/24, 1 successors, FD is 28416, tag is 4
via 10.1.3.3 (281856/2816), FastEthernet0/1 |
ステップ 3:プライマリWANリンクの復元。
プライマリ WAN リンクが復元されました。ただし、次の出力に示されているように、CORE スイッチは引き続きバックアップパスを介してルーティングしています。
コア |
CORE#show ip route
<snip>
D EX 192.168.1.0/24 [170/281856] via 10.1.3.3, 00:06:09, FastEthernet0/1
CORE#show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(1)/ID(10.10.10.10)
<snip>
P 192.168.1.0/24, 1 successors, FD is 28416, tag is 4
via 10.1.3.3 (281856/2816), FastEthernet0/1 |
この動作の理由は、前述したように、BGPウェイトパスのアトリビュートにあります。
現状では、WAN RTR A は EIGRP を介したルーティングテーブルのルートを示しています。このルートは、EIGRP から再配布された BGP テーブルでは、重みパス属性の値が最大であるために、再確立した WAN リンクから BGP を介して受信されるルートの重み値よりも優先されています。
WAN_RTR_A |
WAN_RTR_A#show ip bgp
<snip>
Network Next Hop Metric LocPrf Weight Path
* 192.168.1.0 10.2.4.4 0 0 4 i
*> 10.1.2.1 284416 32768 ?
WAN_RTR_A#show ip bgp summary
BGP router identifier 10.20.20.20, local AS number 2
<snip>
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.2.4.4 4 4 12 12 16 0 0 00:03:54 (UP) 4
WAN_RTR_A#show ip route
<snip>
D EX 192.168.1.0/24 [170/284416] via 10.1.2.1, 00:08:22, FastEthernet0/0
|
このドキュメントで説明する動作は、フィールドで広く見られています。ネットワークのトポロジと初期症状は、説明した例とは異なる場合があります。ただし、根本原因は、このドキュメントで説明されているように、多くの場合その可能性があります。ご使用のネットワーク展開において、この条件を発生させる変数を、設定およびシナリオが満たすかどうかを確認することが重要です。