IP : ボーダー ゲートウェイ プロトコル(BGP)

HSRP を使用してマルチホーム BGP ネットワークを冗長構成にする方法

2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2010 年 8 月 10 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

このドキュメントは、2 つの異なる Internet Service Provider(ISP; インターネット サービス プロバイダー)に接続している、マルチホーム Border Gateway Protocol(BGP)ネットワークを、冗長構成にする方法を説明します。 片方の ISP への接続に障害が発生した場合、トラフィックは BGP set as-path {tag | prepend as-path-string} コマンドと Hot Standby Router Protocol(HSRP; ホットスタンバイ ルータ プロトコル)でもう一方の ISP 経由でダイナミックに再ルーティングされます。

前提条件

要件

このドキュメントの読者は次のトピックについて理解している必要があります。

使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

背景説明

このドキュメントの設定の目的は、次のネットワーク ポリシーを実現することです。

  • ネットワーク 192.168.21.0/24 上のホストから送信されて、インターネットを宛先とするすべての発信トラフィックは、R1 から ISP-A までをルーティングされる必要があります。 ただし、そのリンクに障害があったり、R1 に障害があったりした場合、すべての発信トラフィックは手動による介入なしに R2 から ISP-B まで(その後、インターネットへ)再ルーティングされる必要があります。

  • インターネットから自律システム AS 100 を宛先とするすべての着信トラフィックは、R1 を使用してルーティングされる必要があります。 ISP-A から R1 へのリンクに障害が発生した場合、着信トラフィックは ISP-B から R2 へと自動的に再ルーティングされる必要があります。

これらの要件は、2 つのテクノロジー、 BGP および HSRP で満たすことができます。

十分に冗長性のある発信パスの第 1 の目的は、HSRP で実現できます。 通常、PC にはルーティング情報の収集と交換を行う機能がありません。 デフォルト ゲートウェイの IP アドレスは、PC 上にスタティックに設定されて、ゲートウェイ ルータがダウンした場合には、PC はローカル ネットワーク セグメントよりも先のデバイスへの接続を失います。 これは、代替ゲートウェイが存在する場合でも同様です。 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登録ユーザ専用)を使用してください。

ネットワーク構成図

このドキュメントは、次に示すネットワーク構成を使用しています。

この図では、ルータ 1(R1)とルータ 2(R2)が AS 100 内にあり、ここでは、それぞれに ISP-A(AS 300)と ISP-B(AS 400)への外部 BGP(eBGP)ピアリングを実現します。 ルータ 6(R6)は AS 600 の一部であり、これは ISP-A および ISP-B と eBGP ピアリングを実現します。 R2 は iBGP ピアリングを実現し、これは最適なルーティングを確実にするために必要です。 たとえば、AS 400 内部ルートに到達しようとするとき、R1 は AS 300 に対して長めのパスを採用しません。 R1 は、その代わりに R2 へのトラフィックを転送します。

R1 と R2 は、共通するイーサネット セグメント経由で HSRP 向けにも設定されます。 同一のイーサネット セグメント上のホストには、HSRP スタンバイ IP アドレス 192.168.21.10 をポイントするデフォルト ルートがあります。

hsrp_bgp-01.gif

設定

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 宛てのトラフィックを引き付けます。

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 インターフェイスがダウンしている場合、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-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 番号を付加して、通知されたルートが優先されないようにします。

次に示すのは、R1 から ISP-A へと R2 から ISP-B への間の 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-B からの AS パス {400 100 100 } と比較すると AS パスの長さが短いので、ISP-A 経由の最適なパスとして AS {300 100} を選択します。 ISP-B からの AS パス長でより長いものがある理由は、R2 における AS パスの付加設定のためです。

R1 と ISP-A の間の接続が失われると、R6 は ISP-B を経由する代替パスを選択して、AS 100 のネットワーク 192.168.21.0/24 に到達する必要があります。

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 の設定例』を参照してください。

トラブルシューティング

現在のところ、この設定に関する特定のトラブルシューティング情報はありません。

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 13768