HSRP/VRRP,熱備份網關協議
技術背景
一個高可用性的網絡肯定會在設計之初就考慮單點故障所帶來的影響,所以都會選擇可實現冗余備份的設計,在前文中提到的STP,生成樹協議就是這樣的操作,可是當數據到達了三層,IP層面,是否也有此類的協議呢?那就是HSRP/VRRP/GLBP
部署場景
雙網關情況下部署,可以部署在路由設備上(路由器/三層交換機)
技術特性(HSRP)
HSRP:熱備份路由器協議(HSRP:Hot Standby Router Protocol),是cisco平台一種特有的技術,是cisco的私有協議。
含有多台路由器,對應一個HSRP組。該組中只有一個路由器承擔轉發用戶流量的職責,這就是活動路由器。當活動路由器失效后,備份路由器將承擔該職責,成為新的活動路由器。這就是熱備份的原理。而對於下游終端設備而言,就算是主路由和備份路由之間也現切換,也是無感知的。
1 在組中成員角色有: active 主設備
Standby 備份設備
正常情況下由active設備負責回復局域網的請求,
2 組內成員使用組播地址進行雙向通信,地址為224.0.0.2,
默認情況下時間為hello3S,dead10s ,如果想要提速可以進行修改,保證三倍關系即可
3雙方使用priority來決定誰來擔任active設備,默認優先級為100,越高越優,<1-255>
4 搶占模式,做為備份設備要開啟搶占模式,當主設備故障時,要馬上將他搶過來,作主
5 HSRP的追蹤(可以追蹤接口、狀態)
6 HSRP結合TRACK \ SLA ?
7 HSRP和三層交換機的結合時,使用SVI做雙網關,並且一定要跟隨STP的root進行設置,否則將會出現次優路徑,或其它不正常的情況。
8也是HSRP最大的特點,虛擬IP不可以和物理IP相同,(話說還是比較喜歡這一點的)
PS:如果同在一個組內的兩個設備優先級相同,那么誰會成為active呢?
書中描述,誰的IP地址大,誰就是ACTIVE
經過實際的測試,這一點和書中有所不同,(誰先起來,誰就是active)
另外hsrp支持兩個版本
V1 V2,主要體現在支持的組號上,以及組播地址的不同
版本 |
組號 |
組播地址 |
V1 |
0-255 |
224.0.0.2 |
V2 |
0-4095 |
224.0.0.102 |
HSRP實例配置(SVI)其實針對於路由器的接口而言,意思都是一樣的,而且看起來更簡單,
在我的筆記中,有可能在路由方面/華為方面再進行整理路由器的設置。當然,也有可能沒有.....看記性怎么樣吧.
需求,1、VLAN10的STP根在VS1上,備份根在VS2
VLAN20的STP根在VS2上,備份根在VS1
2、VS1做為HSRP 1(vlan10)的active,VS2做為standby
VS2做為HSRP 2(vlan20)的active,VS1做為standby
3、配置track,偵測接口狀態,關聯HSRP主備關系切換
4、配置SLA,偵測上行接口(非本地)關聯HSRP關系切換
思路,先二層后三層,
1先配置好STP,這里我們使用rapid pvst就行了,也甭起MST了,就倆VLAN,沒必要了
2 配置hsrp,(先確保兩個設備之間的SVI可以通信)
3 配置好以后,從三層交換到出口網關之間,運行IGP協議,這個隨便用吧,喜歡用哪個就用哪個,路由方面不是本文重點,后文中會對路由技術有更深的講解
4 測試相應的偵測功能
STP配置不寫了
直接上HSRP
SW1
Switch(config)#inter vlan 10
Switch(config-if)#ip add 192.168.1.1 255.255.255.0
Switch(config-if)#no shu
Switch(config)#inter vlan 20
Switch(config-if)#ip add 192.168.2.1 255.255.255.0
Switch(config-if)#no shu
SW2
Switch(config)#inter vlan 10
Switch(config-if)#ip add 192.168.1.2 255.255.255.0
Switch(config-if)#no shu
Switch(config-if)#inter vlan 20
Switch(config-if)#ip add 192.168.2.2 255.255.255.0
Switch(config-if)#no shu
開始正式配置HSRP之前,確保兩個交換機的SVI正常通信,這一步是重中之重
SW1
Switch(config-if)#inter vlan 10
Switch(config-if)#standby 1 ip 192.168.1.254
Switch(config-if)#stan 1 priority 110
Switch(config-if)#stan 1 preempt delay minimum 5
Switch(config-if)#inter vlan 20
Switch(config-if)#stan 2 ip 192.168.2.254
Switch(config-if)#stan 2 preempt
SW2
Switch(config-if)#inter vlan 10
Switch(config-if)#stan 1 ip 192.168.1.254
Switch(config-if)#stan 1 preempt
Switch(config-if)#inter vlan 20
Switch(config-if)#stan 2 ip 192.168.2.254
Switch(config-if)#stan 2 priority 110
Switch(config-if)#stan 2 preempt de min 5
經過一番計算之后,得出這樣的結果
Show stan br
接口 \組號 \優先級\ 搶占功能\ 狀態\ 主設備是誰 \ 備份設備是誰\ 虛擬IP是多少
VS2設備上看到的應該是正好相反就對了
沒有任何的問題
下面配置上行的三層環境,這里先不寫了,
因為這不是重點
只要保證PC的GW為虛擬網關即可
PC2
分別進行測試,這里主要拿vlan10做吧,兩邊都做沒有意義,意思明白就可以了
首先,根據 STP以及HSRP的定義,數據應該是這樣走的
vlan10--SW--vs1--r3
情況1 ,假設現在VS1上的VLAN10down掉 ,會發生什么呢?
由於開啟了搶占功能,當ACTIVE設備發生故障時,standby設備直接搶過來,並且現在可以看到在SW2上並不知道STANDBY,這是因為原來的ACTIVE(丟了)
而這個過程對於PC而言,是無法感知的,他唯一能夠知道的,就是自己斷了一會兒然后又連上了,
看圖
為了省地兒,我少切了一點,中間的timeout丟包可不只一個哦~
這個主要取決於hsrp的hello 和dead時間,3/10S
顯然這有些慢,按照王多魚的話兒,“給冰山提提速”
把兩側的timer調小,1/3S
VS1(config)#interface vlan 10
VS1(config-if)#stan 1 timers 1 3
這個配置要保證兩側一樣
丟了兩個包就OK了
此時的數據是怎么走的呢?
直接走的VS2
好的內部是沒有問題了,
假設,現在VS1的G0/0口出現故障,HSRP可以檢測到嗎?
答案是不能的,因為沒有做任何的關聯
那么如何關聯呢?
Track
(使用track時,由於各IOS版本有所有同,命令也會有所不同,但這並不影響使用,比如在路由器中,hsrp可以直接tarck接口,而在SVI中無法實現,只能單獨使用track)
VS1(config)#track 1 interface g0/0 line-protocol
VS1(config-track)#inter vlan 10
VS1(config-if)#stan 1 track 1 decrement 50
這樣一來呢?先測試一下
首先是看到track up--down
再就是HSRP的狀態也發生了聯動
到底怎么回事兒呢?
可以通過查看HSRP的詳細信息查看
配置的priority為110,當前為60,是因為通過track的檢測減去了50
優先級低了,自然權限就跑到別人那里嘍~
再或者,比如VS1和R3之間有中繼設備,如果斷了的話,HSRP能感知嗎?
肯定也是不知道的,那我們通過一種方法,讓他知道,什么呢?
SLA,上行鏈路檢測,
VS1(config)#ip sla 10
VS1(config-ip-sla)#icmp-echo 13.0.0.3 source-interface vlan 10
VS1(config-ip-sla-echo)#frequency 5
VS1(config-ip-sla-echo)#timeout 5000
VS1(config)#ip sla schedule 10 start-time now life forever
VS1(config-if)#standby 1 track 10 decrement 80
Router(config)#inter f0/0
Router(config-if)#shu
而做為PC這邊,毫無感知,不知道是不是模擬器的原因,按理說來至少要丟一個包才對的。
這就是HSRP,配置起來還算是可以吧,不算復雜
VRRP,虛擬路由冗余協議(Virtual Router Redundancy Protocol,簡稱VRRP)公有標准,也就是說所有的廠商都可以使用的協議
其原理和HSRP基本上一致
HSRP |
VRRP |
思科私有 |
公有標准 |
最多255個組 |
最多255個組 |
1個active,1個standby,多個候選 |
1個mster多個backup |
虛擬IP不可以為物理IP |
虛擬IP可以為真實ip相同 |
224.0.0.2 |
224.0.0.18 |
Hello3,dead 10 |
Hello1,dead 3 |
支持驗證 |
支持驗證 |
track接口,對象 |
track對象, |
|
|
對比細節就可見區別
1 公有標准,就不用多說了,
2 可以同時存在多個backup,什么意思呢?比如使用三台設備做VRRP,當masterdown,由兩個back進行選舉,看誰是新的master
3 虛擬ip可以使用真實的IP相同地址,這一點需要特別注意,一般,我們不這樣配置,為什么?如果到后廁所 track做懲罰的時候沒有辦法做,當設置為和物理IP相同的Virtual ip 后,此台設備的priority直接被設置為255(也就是最高)關鍵是沒有辦法修改。很悲催。
4 不可以track接口,但又有什么區別嗎?這都不叫事兒。
配置思路和HSRP完全一樣,就不再贅述了,
幾條簡單的命令
VS1(config-if)#vrrp 1 ip 192.168.1.254
VS1(config-if)#vrrp 1 pri 110
VS1(config-if)#vrrp 1 pre de min 5
VS1(config-if)#
vs2(config)#inter vlan 10
vs2(config-if)#vrrp 1 ip 192.168.1.254
vs2(config-if)#vrrp 1 preempt
vs2(config-if)#
查看也是一樣的命令
查看詳細信息 show vrrp interface vlan 10
查看掛摘要信息 show vrrp brief
看到了嗎?很簡單的對吧......
HSRP也好,VRRP也罷,如何實現負載均衡呢?
怎么說呢?這玩意兒我們在上面所配置的,就算是負載均衡,不同的VLAN走的方向不一樣,但都可以到達該去的地方。說白了,就是建立不同的組,並且針對不同的組來設置不同的主備關系即可。
一種更高級的方式,GLBP,(cisco私有協議)
可以不創建多個組,也能實現自動的負載均衡,這個后文中會有相關的介紹,大家敬請期待。
-----------------------------------------------------
CCIE成長之路-----梅利