はじめに
このドキュメントでは、HSRPを使用してマルチホームBorder Gateway Protocol(BGP;ボーダーゲートウェイプロトコル)ネットワークの冗長性を実現する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
表記法の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
背景説明
このドキュメントでは、2 つの個別のインターネット サービス プロバイダー(ISP)に接続されたマルチホーム Border Gateway Protocol(BGP)ネットワークに冗長性をもたらす方法を説明します。片方の ISP への接続に障害が発生した場合、トラフィックは BGP set as-path {tag | prepend as-path-string} コマンドとHot Standby Router Protocol(HSRP;ホットスタンバイルータプロトコル)を使用します。
このドキュメントで説明する設定の目標は、以下のネットワーク ポリシーを実現することです。
-
ネットワーク 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は(自身のAS番号の先頭に複数回付加することによって)プレフィクス192.168.21.0/24用のR2からISP-Bへのリンクを介してより長い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属性図を参照してください。
設定
このセクションでは、このドキュメントで説明する機能を設定するために必要な情報を提供しています。
ネットワーク図
このドキュメントは、次に示すネットワーク構成を使用しています。
この図では、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 |
確認
ここでは、設定が正しく機能していることを確認するために使用する情報を示します。
コマンド出力と特定のパターンに基づいて、CLIアナライザはヘルプと追加情報を提供するリンクとツールチップを埋め込むことができます。
注:シスコの内部ツールおよび情報にアクセスできるのは、登録ユーザのみです。
どのネットワークでも冗長性を設定する際は、以下の 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.168.21.10宛てのトラフィックを引き付けます。
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であるため、R1がアクティブHSRPルータとして表示されます。R1 がアクティブなルータであるため、R1 がスタンバイ IP アドレス 192.168.21.10 を所有します。デフォルト ゲートウェイが設定されたホストから 192.168.21.10 に向かうすべての IP トラフィックは R1 経由でルーティングされます。
ルータR1のs0インターフェイスをダウンさせると、R1のHSRPがstandby track serial 0コマンドで設定されているため、HSRPアクティブルータが変わります。シリアル 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-A に向かう接続の帯域幅のほうが大きいため)、バックアップ パスは ISP-B です。したがって、R2 内の ISP-B に対してアナウンスされた BGP 更新に独自の AS 番号を付加することで、ISP-B 経由の AS パスのほうが長く見えるようにすることができます。それには、BGP ネイバー 192.168.42.4 のルートマップを設定します。そのルートマップで、set as-path prepend コマンドを使用して独自の AS を付加します。このルート マップをネイバー 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の設定」を参照してください。
関連情報