目錄

簡介

必要條件

需求

採用元件

慣例

背景資訊

設定

網路圖表

組態

驗證

從本地網路傳輸到目的地的資料包

從目的網路發往本地網路的資料包

疑難排解

相關資訊

簡介

本文件說明在分別連線至兩個網際網路服務提供者 (ISP) 的情況下，如何提供多宿邊界閘道通訊協定 (BGP) 的備援。 若其中一個 ISP 發生連線故障，可透過另一個 ISP 的 BGP set as-path {tag | prepend as-path-string} 指令和 熱待命路由器通訊協定 (HSRP)，將流量重新動態路由。

必要條件

需求

本文檔的讀者應瞭解以下主題：

- Cisco HSRP

- 配置HSRP

- BGP 最佳路徑選取演算法

- 設定 BGP

採用元件

本文件所述內容不限於特定軟體和硬體版本。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

慣例

如需文件慣例的詳細資訊，請參閱思科技術提示慣例。

背景資訊

本文中的設定目標是達成此網路原則：

- 所有源自網路192.168.21.0/24上主機且發往Internet的出站流量都必須通過R1路由到ISP-A。但是，如果該鏈路發生故障或R1發生故障，所有出站流量必須通過R2重新路由到ISP-B（然後路由到Internet），無需人工干預。

- 從Internet發往自治系統(AS 100)的所有入站流量必須通過R1路由。如果從ISP-A到R1的鏈路出現故障，入站流量必須通過ISP-B自動重新路由到R2。

可以使用以下兩種技術滿足這些要求：BGP和HSRP。

HSRP可實現完全冗餘出站路徑的第一個目標。通常PC無法收集和交換路由資訊。預設網關的IP地址在PC上靜態配置，如果網關路由器關閉，PC將失去與其本地網段以外任何裝置的連線。即使存在備用網關也是如此。HSRP旨在滿足這些要求。有關詳細資訊，請參閱HSRP特性和功能。

第二個目標可以通過BGP set as-path prepend命令實現，該命令允許BGP通過R2到ISP-B鏈路傳播更長的AS路徑（通過多次預置其自己的AS編號），字首為192.168.21.0/24。因此，所有從AS 100外部發往192.168.21.0/24的流量都採用更短的AS路徑，通過ISP-A到R1鏈路。如果主路徑（從ISP-A到R1）失敗，則所有流量都需要較長的AS路徑（從ISP-B到R2）才能到達網路192.168.21.0/24。要瞭解有關BGP set as-path prepend命令的更多資訊，請參閱BGP案例研究文檔中的AS_PATH屬性圖。

設定

本節提供用於設定本文件中所述功能的資訊。

註：使用Command Lookup Tool(僅限註冊客戶)查詢有關本文檔中使用的命令的更多資訊。

網路圖表

本檔案使用下列網路設定：

在此圖中，路由器1(R1)和路由器2(R2)位於AS 100中，其中外部BGP(eBGP)分別與ISP-A(AS 300)和ISP-B(AS 400)對等。路由器6(R6)是AS 600的一部分，AS 600與ISP-A和ISP-B具有eBGP對等關係。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命令，此工具可讓您檢視show命令輸出的分析。

在任何網路中配置冗餘時，必須考慮以下兩點：

- 為從本地網路傳輸到目的網路的資料包建立冗餘路徑。

- 為從目的地傳回本地網路的資料包建立冗餘路徑。

從本地網路傳輸到目的地的資料包

在本示例中，本地網路是192.168.21.0/24。路由器R1和R2在連線到介面Ethernet1的乙太網段上運行HSRP。R1被配置為HSRP活動路由器，備用優先順序為105,R2被配置為100。standby 1 track Serial0(s0)命令允許HSRP進程監視該介面。如果介面狀態關閉，則HSRP優先順序會降低。當介面s0的線路協定關閉時，HSRP優先順序降低到95（優先順序降低的預設值是10）。 這使另一個HSRP路由器R2具有更高的優先順序（優先順序100）。R2成為HSRP活動路由器，吸引發往活動HSRP地址192.169.21.10的流量。

發出show standby命令，以便在R1的介面s0啟動時檢視活動HSRP路由器：

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顯示為活動HSRP路由器，因為優先順序較高，為105。由於R1是活動路由器，因此R1擁有備用IP地址192.168.21.10。所有來自配置了預設網關的主機的IP流量都通過R1路由。

如果關閉路由器R1的s0介面，則HSRP活動路由器將更改，因為R1上的HSRP配置了standby track serial 0命令。當Serial 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命令，請觀察R1上介面s0關閉後的備用優先順序：

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上變為活動狀態，將流量傳送到Internet的主機使用R2和ISP-B，為出站流量提供備用路徑。

有關HSRP standby track 命令的詳細資訊，請參閱如何使用standby preempt和standby track命令。

從目的網路發往本地網路的資料包

根據背景資訊部分中定義的網路策略，因為ISP-A是您的主要路徑，而ISP-B是流向192.168.21.0/24的流量的備份路徑（由於向ISP-A連線頻寬較大的原因），您可以在R2中向ISP-B通告的BGP更新中附加您自己的AS編號，以使通過ISP-B的AS路徑顯示更長。為此，請為BGP鄰居192.168.42.4配置一個路由對映。在該路由對映中，使用set as-path prepend命令追加您自己的AS。將此路由對映應用於到鄰居192.168.42.4的出站更新。

注意：在生產中，必須多次附加AS編號，以確保已通告的路由變得不是首選路由。

這是R1到ISP-A和R2到ISP-B的BGP連線開啟時，R6中網路192.168.21.0的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必須選擇通過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

這是R6中用於網路192.168.21.0/24的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設定的詳細資訊，請參閱使用兩個不同服務提供商（多宿主）的BGP組態範例。

疑難排解

目前尚無適用於此組態的具體疑難排解資訊。

相關資訊

- 在單宿和多宿環境中使用 BGP 進行負載共用:配置示例

- BGP 路由器如何使用多出口鑑別器執行最佳路徑選取

- 使用HSRP分擔負載

- HSRP技術支援頁

- BGP技術支援頁面

- IP路由技術支援頁面

- 技術支援與文件 - Cisco Systems