HSRP簡介
HSRP(Hot Standby Router Protocol 熱備份路由器協(xié)議)是Cisco的專有協(xié)議。HSRP把多臺(tái)路由器組成一個(gè)“熱備份組”,形成一個(gè)虛擬路由器。這個(gè)組內(nèi)只有一個(gè)路由器是Active(活動(dòng))的,并由它來轉(zhuǎn)發(fā)數(shù)據(jù)包,如果活動(dòng)路由器發(fā)生了故障,備份路由器將成為活動(dòng)路由器。從網(wǎng)絡(luò)內(nèi)的主機(jī)來看,網(wǎng)關(guān)并沒有改變。
HSRP工作原理
HSRP(Hot Standby Router Protocol 熱備份路由器協(xié)議)把多臺(tái)路由器組成一個(gè)虛擬路由器(Virtual Router)。PC上設(shè)置網(wǎng)關(guān)后,如果網(wǎng)關(guān)down了就斷網(wǎng)了,導(dǎo)致網(wǎng)絡(luò)連接不穩(wěn)定。因此需要備用網(wǎng)關(guān),即冗余網(wǎng)關(guān),確保網(wǎng)絡(luò)連接正常。HSRP可以提供冗余網(wǎng)關(guān)的解決方案。
VR雖然是虛擬路由器,但同樣需要有三層IP地址和二層mac地址。三層IP地址是手動(dòng)配的,但不能亂配,需要配置成和真實(shí)路由器處于同一網(wǎng)段的IP地址。VR的二層地址是自動(dòng)生成的。例如0000.0c07.ac01,前6位0000.0c是Cisco買來的。中間4位07.ac是HSRP號(hào)。最后2位01是HSRP Group組號(hào)。每個(gè)HSRP組內(nèi)只能有一個(gè)路由器是Active(活動(dòng))的,一個(gè)路由器是Standby備份的,其余路由器將處于監(jiān)聽狀態(tài)。通過Active路由器來轉(zhuǎn)發(fā)數(shù)據(jù),如果Active路由器down了,Standby備份路由器將成為Active路由器,以保證網(wǎng)絡(luò)的正常運(yùn)行。屬于同一個(gè)HSRP組的路由器的虛擬三層IP地址必須一致。
例如將真實(shí)路由器A和B捆綁成虛擬路由器VR后,誰成為Active路由器,誰成為Standby備份路由器呢?HSRP用優(yōu)先級(jí)來決定,優(yōu)先級(jí)高的成為Active路由器。優(yōu)先級(jí)默認(rèn)都是100,可以修改。如果優(yōu)先級(jí)相同,IP地址高的成為Active路由器。路由器間通過組播(224.0.0.2)Hello包來互相監(jiān)聽各自的存在。Hello包默認(rèn)每3秒發(fā)一次,如果長期收不到Active路由器發(fā)出的Hello包,就認(rèn)為Active路由器出故障了,Standby備份路由器就將成為Active路由器。
HSRP報(bào)文格式
- 版本:指示HSRP的版本信息。
- 操作碼:用來描述數(shù)據(jù)包中報(bào)文的類型,可能的值為0、1和2,分別表示是Hello、Coup和Resign消息。
- 狀態(tài):描述發(fā)出該報(bào)文的路由器的當(dāng)前狀態(tài)。有0、1、2、4、8、16六種狀態(tài),分別表示為Initial、Learn、Listen、Speak、Standby和Active狀態(tài)。
- 呼叫時(shí)間(Hellotime):只在呼叫報(bào)文中有意義,表示路由器定時(shí)發(fā)送呼叫報(bào)文的間隔時(shí)間,以秒為單位。如果該參數(shù)沒有在路由器上配置,它可能要從活動(dòng)路由器上學(xué)習(xí)獲得。默認(rèn)值為3秒。
- 保持時(shí)間(Holdtime):只在呼叫報(bào)文中有意義,被接收路由器用來判斷該呼叫報(bào)文是否合法,單位為秒,其值至少是呼叫時(shí)間的3倍。如果該參數(shù)沒有配置,也同樣可以從活動(dòng)路由器上學(xué)習(xí)。活動(dòng)路由器不能從等待路由 器學(xué)習(xí)呼叫時(shí)間和保持時(shí)間,它只能繼續(xù)使用從先前的活動(dòng)路由器學(xué)習(xí)來的該值。默認(rèn)值為10秒。
- 優(yōu)先級(jí):該參數(shù)用來選擇活動(dòng)和等待路由器,兩個(gè)具有不同優(yōu)先級(jí)的路由器,優(yōu)先級(jí)高的將成為活動(dòng)路由器。兩個(gè)具有相同優(yōu)先級(jí)的路由器,IP地址大的將成為活動(dòng)路由器。默認(rèn)優(yōu)先級(jí)為100。
- 組:用來標(biāo)記路由器所在的熱等待組。對(duì)令牌環(huán)類型的網(wǎng)絡(luò),合法的值是0、1和2,對(duì)于其它類型的網(wǎng)絡(luò),合法值是0-255。
- 認(rèn)證碼:包括8個(gè)明文的字符作為密碼,如果沒有配置,默認(rèn)值為cisco。
- 虛擬IP地址:用來指定本熱等待組的虛擬IP地址,它可以從活動(dòng)路由器的呼叫報(bào)文中學(xué)習(xí)到。如果沒有配置該地址,并且呼叫報(bào)文是需要認(rèn)識(shí)的,那么只能通過活動(dòng)路由器學(xué)習(xí)。
HSRP狀態(tài)
Initial
初始狀態(tài),Hold時(shí)間10s后進(jìn)入Listen
Learn
例如路由器A上新建了VR并設(shè)置了VR的IP,B加入了該VR但沒有設(shè)置VR的IP,那B會(huì)從A那里學(xué)習(xí)到VR的IP。當(dāng)然如果A和B都手動(dòng)設(shè)了同樣的VR的IP,就不會(huì)有這個(gè)狀態(tài)
Listen
路由器加入進(jìn)VR后,此時(shí)它既不是Active也不是Standby路由器,因此它監(jiān)聽Active和Standby發(fā)出的Hello包。如果收不到,Hold時(shí)間10s后進(jìn)入Speak
Speak
路由器主動(dòng)發(fā)送Hello包,包含自己的優(yōu)先級(jí),自己的IP地址,VR的IP地址等。參加競(jìng)選,競(jìng)爭(zhēng)成為Active或Standby備份路由器。
Standby
競(jìng)選成為Standby路由器后,將定時(shí)發(fā)送Hello包。如果Standby狀態(tài)下收不到Active路由器的Hello包,不經(jīng)過Hold時(shí)間馬上將自己置為Active。
Active
競(jìng)選成為Active路由器后,將定時(shí)發(fā)送Hello包。并承擔(dān)轉(zhuǎn)發(fā)數(shù)據(jù)的責(zé)任。
(Hello時(shí)間默認(rèn)3s,Hold時(shí)間默認(rèn)10s,是可以修改的,你可以改小點(diǎn),比如改成500ms,但時(shí)間越短,占的資源就越多,需要你權(quán)衡利弊。通常Hold時(shí)間最少應(yīng)是Hello時(shí)間的3倍)。
HSRP定時(shí)器
HSRP使用2個(gè)定時(shí)器:Hello間隔和Hold時(shí)間。默認(rèn)Hello間隔是3秒,默認(rèn)的Hold間隔是10秒。Hello間隔定義了兩組路由器之間交換信息的頻率。Hlod間隔定義了經(jīng)過多長時(shí)間后,沒有收到其它路由器的信息,則活動(dòng)路由器或者備用路由器就會(huì)被宣告為失敗。配置計(jì)時(shí)器并不是越小越好,雖然計(jì)時(shí)器越小則切換時(shí)間越短。計(jì)時(shí)器的配置需要和STP等的切換時(shí)間相一致。另外,Hold間隔最少應(yīng)該是Hello間隔的3倍。