このドキュメントでは、2 つの個別のインターネット サービス プロバイダー(ISP)に接続されたマルチホーム Border Gateway Protocol(BGP)ネットワークに冗長性をもたらす方法を説明します。 1 つの ISP への接続で障害が発生すると、BGP set as-path {tag | prepend as-path-string} コマンドと Hot Standby Router Protocol(HSRP)を使用して、もう 1 つの ISP へトラフィックが動的に再ルーティングされます。
このドキュメントの読者は次のトピックについて理解している必要があります。
このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
本書の情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。 稼働中のネットワークで作業を行う場合、コマンドの影響について十分に理解したうえで作業してください。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
このドキュメントで説明する設定の目標は、以下のネットワーク ポリシーを実現することです。
ネットワーク 192.168.21.0/24 上のホストから発信されてインターネットを宛先とするすべての発信トラフィックは R1 経由で ISP-A にルーティングすること。 ただし、そのリンクまたは R1 で障害が発生した場合は、手動による介入なしでトラフィックを R2 経由で ISP-B に再ルーティングすること。
インターネットから発信されて自律システム(AS 100)を宛先とするすべての着信トラフィックは、R1 経由でルーティングされること。 ISP-A から R1 へのリンクで窓外が発生した場合は、着信トラフィックを自動的に ISP-B 経由で R2 に再ルーティングすること。
これらの要件を満たすためのテクノロジーは、 BGP と HSRP の 2 つです。
最初の完全冗長アウトバウンド パスの目標は、HSRP によって実現できます。 通常、PC にはルーティング情報を収集して交換する機能はありません。 デフォルト ゲートウェイの IP アドレスは PC 上で静的に設定されており、ゲートウェイ ルータがダウンした場合、PC はローカル ネットワーク セグメントの外部にあるすべてのデバイスへの接続性を失います。 これは、代替ゲートウェイが存在するとしても同じです。 HSRP は、完全冗長アウトバウンド パスの要件を満たすように設計されています。 詳細については、HSRP の特徴および機能を参照してください。
第 2 の目的は、BGP set as-path prepend コマンドで実現できることであり、これは、BGP がプレフィクス 192.168.21.0/24 向けに R2 から ISP-B へのリンクを経由する長めの AS パス(それ自体の AS 番号を複数回追加することで)にデータを入力できます。 したがって、AS 100 の外部から送信されて 192.168.21.0/24 を宛先とするすべてのトラフィックは、ISP-A 経由で R1 リンクに到達する短いほうの AS パスを使用します。 プライマリ パス(ISP-A から R1 へのパス)で障害が発生すると、すべてのトラフィックはネットワーク 192.168.21.0/24 に到達するために長いほうの AS パス(ISP-B から R2 へのパス)を使用します。 BGP set as-path prepend コマンドの詳細を学習するには、『BGP ケース スタディ』ドキュメントの AS_PATH 属性図を参照してください。
この項では、このドキュメントで説明する機能の設定に必要な情報を提供します。
注: このドキュメントで使用されているコマンドの詳細を調べるには、Command Lookup Tool(登録ユーザ専用)を使用してください。
このドキュメントは、次に示すネットワーク構成を使用しています。
この図では、AS 100 内のルータ 1(R1)とルータ 2(R2)には、AS 100 の外部 BGP(eBGP)ピアリングによって、それぞれ ISP-A(AS 300)、ISP-B(AS 400)がピアとして設定されています。 AS 600 内のルータ 6(R6)には、AS 100 の eBGP ピアリングによって ISP-A と ISP-B の両方がピアとして設定されています。 R1、 R2 の iBGP ピアリングは、最適なルーティングを保証するために必要です。 たとえば、AS 400 の内部ルータに到達しようとする場合、R1 は AS 300 経由の長いほうのパスを使用しません。 代わりに、R1 はトラフィックを R2 に転送します。
R1 と R2 は、共通イーサネット セグメントで HSRP にも対応するように設定されています。 同じイーサネット セグメント上のホストは、HSRP スタンバイ IP アドレス 192.168.21.10 を指すデフォルト ルートを使用します。
R1 |
---|
Current configuration hostname R1 ! interface serial 0 ip address 192.168.31.1 255.255.255.0 ! interface Ethernet1 ip address 192.168.21.1 255.255.255.0 standby 1 priority 105 standby 1 preempt delay minimum 60 standby 1 ip 192.168.21.10 standby 1 track Serial0 !--- The standby track serial command tracks the state of !--- the Serial0 interface and brings down the !--- priority of standby group 1, if the interface goes down. !--- The standby preempt delay minimum 60 command makes sure that !--- R1 preempts and takes over as active router again. This command also ensures that !--- the router waits 60 seconds before doing so in order to give BGP time enough !--- to converge and populate the routing table. This avoids !--- traffic being sent to R1 before it is ready to forward it. ! ! router bgp 100 no synchronization network 192.168.21.0 neighbor 192.168.21.2 remote-as 100 neighbor 192.168.21.2 next-hop-self neighbor 192.168.31.3 remote-as 300 no auto-summary ! |
R2 |
---|
Current configuration: hostname R2 ! interface serial 0 ip address 192.168.42.2 255.255.255.0 ! interface Ethernet1 ip address 192.168.21.2 255.255.255.0 standby 1 priority 100 standby 1 preempt standby 1 ip 192.168.21.10 ! ! router bgp 100 no synchronization network 192.168.21.0 neighbor 192.168.21.1 remote-as 100 neighbor 192.168.21.1 next-hop-self neighbor 192.168.42.4 remote-as 400 neighbor 192.168.42.4 route-map foo out !--- It appends AS 100 to the BGP updates sent to AS 400 !--- in order to make it a backup for the ISP-A to R1 path. no auto-summary ! access-list 1 permit 192.168.21.0 route-map foo permit 10 match ip address 1 set as-path prepend 100 end |
このセクションでは、設定が正常に動作しているかどうかを確認する際に役立つ情報を提供しています。
特定の show コマンドは、Output Interpreter Tool(登録ユーザ専用)によってサポートされています。このツールを使用すると、show コマンド出力の分析を表示できます。
どのネットワークでも冗長性を設定する際は、以下の 2 つの点を考慮する必要があります。
ローカル ネットワークから宛先ネットワークへと向かう冗長パスの作成
宛先ネットワークからローカル ネットワークへと戻る冗長パスの作成
この例でのローカル ネットワークは 192.168.21.0/24 です。 ルータ R1 と R2 は、インターフェイス Ethernet1 に接続されたイーサネット セグメントで HSRP を実行しています。 R1 はスタンバイ プライオリティ 105 の HSRP アクティブ ルータとして設定され、R2 のスタンバイ プライオリティは 100 に設定されています。 R1 で standby 1 track Serial0 (s0) コマンドを使用することで、HSRP プロセスでそのインターフェイスをモニタできます。 インターフェイスがダウンすると、HSRP プライオリティが引き下げられます。 インターフェイス s0 の回線プロトコルがダウンすると、HSRP プライオリティが 95 に下げられます(プライオリティを減らす際のデフォルト値は 10 です)。 これにより、もう一方の HSRP ルータ R2 のプライオリティ(100)のほうが高くなります。 したがって、R2 が HSRP アクティブ ルータになり、アクティブ HSRP アドレス 192.169.21.10 を宛先とするトラフィックは R2 に取り込まれます。
R1 上でインターフェイス s0 がアップしているときに、アクティブ HSRP ルータを確認するために show standby コマンドを実行します。
R1#show standby Ethernet1 - Group 1 Local state is Active, priority 105, may preempt Hellotime 3 sec, holdtime 10 sec Next hello sent in 0.338 Virtual IP address is 192.168.21.10 configured Active router is local Standby router is 192.168.21.2 expires in 8.280 Virtual mac address is 0000.0c07.ac01 13 state changes, last state change 00:46:10 IP redundancy name is "hsrp-Et0-1"(default) Priority tracking 1 interface, 1 up: Interface Decrement State Serial0 10 Up R2#show standby Ethernet1 - Group 1 State is Standby 56 state changes, last state change 00:05:13 Virtual IP address is 192.168.21.10 Active virtual MAC address is 0000.0c07.ac01 Local virtual MAC address is 0000.0c07.ac01 (default) Hello time 3 sec, hold time 10 sec Next hello sent in 1.964 secs Preemption enabled Active router is 192.168.21.1, priority 105 (expires in 9.148 sec) Standby router is local Priority 100 (default 100) IP redundancy name is "hsrp-Et0-1" (default) R1#show standby ethernet 1 brief P indicates configured to preempt. | Interface Grp Prio P State Active addr Standby addr Group addr Et1 1 105 P Active local 192.168.21.2 192.168.21.10 R1# R2#show standby ethernet 1 brief P indicates configured to preempt. | Interface Grp Prio P State Active Standby Virtual IP Et1 1 100 P Standby 192.168.21.1 local 192.168.21.10 R2#
show standby コマンドは、R1 が優先順位の高い 105 なので、アクティブな HSRP ルータとして R1 を示します。 R1 がアクティブなルータであるため、R1 がスタンバイ IP アドレス 192.168.21.10 を所有します。 デフォルト ゲートウェイが設定されたホストから 192.168.21.10 に向かうすべての IP トラフィックは R1 経由でルーティングされます。
ルータ R1 上のインターフェイス s0 をダウンさせると、HSRP アクティブ ルータが変更されます。R1 上の HSRP には standby track serial 0 コマンドが設定されているためです。 シリアル 0 インターフェイス プロトコルがダウンすると、HSRP が R1 のプライオリティを 10(デフォルト)減らして 95 に下げます。 これにより、R1 の状態は「スタンバイ」になります。 R2 がアクティブ ルータの役割を引き継いで、スタンバイ IP アドレス 192.168.21.10 を所有します。 そのため、192.168.21.0/24 セグメント内のホストから送信されるすべてのトラフィックは R2 を経由することになります。 debug および show コマンド出力も同じことを確認します。
R1(config)# interface s0 R1(config-if)# shut %STANDBY-6-STATECHANGE: Standby: 1: Ethernet1 state Active -> Speak %LINK-5-CHANGED: Interface Serial0, changed state to administratively down %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0, changed state to down %STANDBY-6-STATECHANGE: Standby: 1: Ethernet1 state Speak -> Standby %LINK-3-UPDOWN: Interface Serial0, changed state to down: %STANDBY-6-STATECHANGE: Standby: 1: Ethernet1 state Active -> Speak %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0, changed state to down %STANDBY-6-STATECHANGE: Standby: 1: Ethernet1 state Speak -> Standby
R1 がスタンバイ ルータになることに注意してください。
R2 がアクティブ状態になると、以下のような出力が表示されます。
R2# %STANDBY-6-STATECHANGE: Standby: 1: Ethernet1 state Standby -> Active
R1 と R2 で show standby コマンドを実行した場合、インターフェイス s0 が R1 でダウンした後にスタンバイ優先順位を確認します。
R1#show standby Ethernet1 - Group 1 Local state is Standby, priority 95 (confgd 105), may preempt Hellotime 3 sec, holdtime 10 sec Next hello sent in 0.808 Virtual IP address is 192.168.21.10 configured Active router is 192.168.21.2, priority 100 expires in 9.008 Standby router is local 15 state changes, last state change 00:00:40 IP redundancy name is "hsrp-Et0-1" (default) Priority tracking 1 interface, 0 up: Interface Decrement State Serial0 10 Down (administratively down) R1# R2#show standby Ethernet1 - Group 1 State is Active 57 state changes, last state change 00:00:33 Virtual IP address is 192.168.21.10 Active virtual MAC address is 0000.0c07.ac01 Local virtual MAC address is 0000.0c07.ac01 (bia) Hello time 3 sec, hold time 10 sec Next hello sent in 2.648 secs Preemption enabled Active router is local Standby router is 192.168.21.1, priority 95 (expires in 7.096 sec) Priority 100 (default 100) IP redundancy name is "hsrp-Et0-1" (default) R2# R2# R1#sh standby ethernet 1 brief P indicates configured to preempt. | Interface Grp Prio P State Active addr Standby addr Group addr Et0 1 95 P Standby 192.168.21.2 local 192.168.21.10 R1# R2#sh standby ethernet 1 brief P indicates configured to preempt. | Interface Grp Prio P State Active Standby Virtual IP Et0 1 100 P Active local 192.168.21.1 192.168.21.10 R2#
R1 のスタンバイ プライオリティが 105 から 95 に下がると、R2 がアクティブ ルータになります。
ISP-A と R1 間の接続障害が発生すると、HSRP は R1 上のスタンバイ グループのプライオリティを低くします。 R1 はアクティブ状態からスタンバイ状態に変わります。 R2 はスタンバイ状態からアクティブ状態に変わります。 スタンバイ IP アドレス 192.168.21.10 は R2 でアクティブになり、トラフィックをインターネットに送信するホストは R2 と ISP-B を使用して、発信トラフィックの代替パスを提供します。
HSRP standby track コマンドの詳細は、『standby preempt および standby track コマンドの使用法』を参照してください。
「背景説明」セクションで定義したネットワーク ポリシーによると、192.168.21.0/24 へやって来るトラフィックの ISP-A がプライマリ パスであり、ISP-B がバックアップ パスなので(ISP-A への大きめの帯域幅接続などの理由で)、R2 で ISP-B に対して通知された BGP アップデート内に自身の AS 番号を付加して、ISP-B 経由の AS パスをさらに長く見せることができます。 それには、BGP ネイバー 192.168.42.4 のルートマップを設定します。 そのルート マップに、自身の AS を set as-path prepend コマンドで付加します。 このルート マップをネイバー 192.168.42.4 に対するアウトバンド更新に適用します。
注: 実稼働環境では、AS 番号を複数回付加して、アナウンスされたルートが選ばれにくくする必要があります。
以下に、ISP-A の R1 と ISP-B の R2 間で BGP 接続がアップしている場合にネットワーク 192.168.21.0 に適用される R6 内の BGP テーブルを示します。
R6# show ip bgp 192.168.21.0 BGP routing table entry for 192.168.21.0/24, version 30 Paths: (2 available, best #1) Advertised to non peer-group peers: 192.168.64.4 300 100 192.168.63.3 from 192.168.63.3 (10.5.5.5) Origin IGP, localpref 100, valid, external, best, ref 2 400 100 100 192.168.64.4 from 192.168.64.4 (192.168.64.4) Origin IGP, localpref 100, valid, external
BGP は ISP-A 経由の AS パス {300 100} をベスト パスとして選択します。ISP-B からの AS パス {400 100 100 } と比べると AS パス長が短いためです。 ISP-B からの AS パスのほうが長い理由は、R2 での AS パス付加設定にあります。
R1 と ISP-A 間の接続が切断された場合、R6 は AS 100 内のネットワーク 192.168.21.0/24 に到達するために ISP-B 経由の代替パスを選択する必要があります。
R1(config)#interface s0 R1(config-if)#shut %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0, changed state to down
以下に、ネットワーク 192.168.21.0/24 に対する R6 内の BGP テーブルを示します。
R6#show ip bgp 192.168.21.0 BGP routing table entry for 192.168.21.0/24, version 31 Paths: (1 available, best #1) Advertised to non peer-group peers: 192.168.63.3 400 100 100 192.168.64.4 from 192.168.64.4 (192.168.64.4) Origin IGP, localpref 100, valid, external, best
マルチホーム ネットワークでの BGP 設定の詳細については、2 つの異なるサービス プロバイダーを使用した BGP の設定例(マルチホーム)を参照してください。
現在のところ、この設定に関する特定のトラブルシューティング情報はありません。