簡介
本檔案將說明如何使用HSRP在多宿主邊界閘道通訊協定(BGP)網路中提供備援。
必要條件
需求
思科建議您瞭解以下主題:
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
背景資訊
本文件說明在分別連線至兩個網際網路服務提供者 (ISP) 的情況下,如何提供多宿邊界閘道通訊協定 (BGP) 的備援。若其中一個 ISP 發生連線故障,可透過另一個 ISP 的 BGP set as-path {tag | prepend as-path-string} 指令和 | prepend as-path-string} 命令和熱待命路由器協定(HSRP)。
本文中的設定目標是達成此網路原則:
-
所有源自網路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旨在滿足這些要求。如需詳細資訊,請參閱了解熱待命路由器通訊協定特性和功能。
第二個目標可以通過BGP set as-path prepend 命令實現,該命令允許BGP通過R2到ISP-B的鏈路(字首192.168.21.0/24)傳播更長的AS路徑(通過多次預置其自己的AS編號的方式)。因此,所有發往192.168.21.0/24且來自AS 100外部的流量都採用通過ISP-A到R1鏈路的較短AS路徑。如果主路徑(從ISP-A到R1)發生故障,所有流量都需要較長的AS路徑(從ISP-B到R2)才能到達網路192.168.21.0/24。要瞭解有關BGP set as-path prepend 命令的更多資訊,請參閱檢查邊界網關協定案例研究文檔中的AS_PATH屬性圖。
設定
本節提供用於設定本文件中所述功能的資訊。
網路圖表
本檔案使用下列網路設定:
在此圖中,路由器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 |
驗證
本節提供的資訊可用於確認您的組態是否正常運作。
根據您的命令輸出和特定模式,CLI Analyzer可以嵌入提供幫助和其他資訊的連結和工具提示。
注意:只有註冊的思科使用者才能訪問內部思科工具和資訊。
在任何網路中配置冗餘時,必須考慮以下兩點:
-
為從本地網路傳輸到目的網路的資料包建立冗餘路徑。
-
為從目的地傳回本地網路的資料包建立冗餘路徑。
從本地網路傳輸到目的地的資料包
在本示例中,本地網路是192.168.21.0/24。路由器R1和R2在連線到介面Ethernet1的乙太網段上運行HSRP。R1配置為HSRP活動路由器,備用優先順序為105,R2配置為100。R1上的standby 1 track Serial0(s0)命令允許HSRP進程監控該介面。如果介面狀態關閉,則HSRP優先順序會降低。當介面s0的線路協定關閉時,HSRP優先順序降低到95(優先順序降低的預設值是10)。這使另一個HSRP路由器R2具有更高的優先順序(優先順序100)。R2成為HSRP活動路由器,吸引發往活動HSRP地址192.168.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。從配置了預設網關的主機到192.168.21.10的所有IP流量通過R1路由。
如果關閉路由器R1的s0介面,則HSRP活動路由器將更改,因為R1上的HSRP配置了standby track serial 0 命令。當Serial 0介面協定關閉時,HSRP將R1的優先順序降低10(預設值)至95。R1將其狀態更改為Standby。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。
相關資訊