張壽榆 王永群
一、引言:
當(dāng)前,IP已經(jīng)成為大部分骨干網(wǎng)絡(luò)產(chǎn)品的路由協(xié)議。在部分網(wǎng)絡(luò)環(huán)境,用戶對網(wǎng)絡(luò)的要求是很高的,任何停工和儲運損耗都會對用戶造成嚴(yán)重影響。例如:
1.Internet服務(wù)提供商提供Web主機(jī)設(shè)備,為了使得用戶的Web服務(wù)器對公眾總是有效的,必須保證用戶99.9999%的正常運行時間。
2.過程控制應(yīng)用必須能夠適時訪問它的控制的系統(tǒng),否則可能會發(fā)生結(jié)果損失嚴(yán)重的控制;
3.有時,運行在IP主機(jī)上的應(yīng)用會超時,如果業(yè)務(wù)運行對網(wǎng)絡(luò)應(yīng)用要求較高,這種超時會帶來很壞影響。
越來越多的IP主機(jī)使用DHCP指定它們的IP地址。然而,許多IP主機(jī)使用手工配置作為發(fā)現(xiàn)網(wǎng)關(guān)路由地址的唯一手段。一些主機(jī)使用網(wǎng)關(guān)偵探辦法獲得,但一般不推廣使用這一方法(RFC1122),動態(tài)Ping網(wǎng)關(guān)也是禁止使用的。ICMP路由發(fā)現(xiàn)協(xié)議允許路由器通過IP主機(jī)被發(fā)現(xiàn),但尚未廣泛使用。
這就意味著大部分主機(jī)無法快速知道路由器和與之相聯(lián)的局域網(wǎng)連接是否已經(jīng)失敗,而且IP主機(jī)檢測連路失敗與替代路由器進(jìn)行交換需要很長時間。
因此,對任何設(shè)備來說,提高網(wǎng)絡(luò)的有效性至關(guān)重要。利用虛擬路由集群技術(shù),可以有效解決一些問題。本文通過舉例介紹CABLETRON公司的SSR千兆交換路由集群技術(shù),來作一些探討。
二、如何去做?
采用虛擬路由集群技術(shù)能夠?qū)⑽挥谕痪钟蚓W(wǎng)的CABLETRON多個SSR路由器定義為互相之間作路由備份的集群,集群中的SSR路由器采用IETF虛擬冗余路由協(xié)議實現(xiàn)路由交換機(jī)間以及各路由器所在局域網(wǎng)間的鏡像,如果一個路由器或它所連接的局域網(wǎng)連接失敗,其它的路由器會自動代替失敗的路由器繞過故障點重新路由,路由的恢復(fù)時間在數(shù)秒之內(nèi),因此這是運行在IP主機(jī)上的透明應(yīng)用。
1、VRRP的概念
如圖一所示,VRRP可以在工作站的缺省網(wǎng)關(guān)失效時提供一個備份路由器,VRRP可以創(chuàng)建一個具有虛擬MAC地址和虛擬IP地址的虛擬路由器! ≌\然,我們可以在Windows98中添加多個缺省網(wǎng)關(guān),但該特征只能在主機(jī)啟動時使用。換句話說,主機(jī)啟動時對網(wǎng)關(guān)列表中的第一個缺省網(wǎng)關(guān)使用ARP進(jìn)行地址解析,如果解析失敗,將對列表中的其它網(wǎng)關(guān)繼續(xù)進(jìn)行地址解析。
當(dāng)主機(jī)找到缺省網(wǎng)關(guān)的MAC地址后,該網(wǎng)關(guān)突然癱瘓會整么樣呢?只能從新啟動主機(jī),讓它繼續(xù)尋找下一個缺省網(wǎng)關(guān)。
使用VRRP便可以解決這個問題,因為它是動態(tài)變化的,如果主路由器癱瘓,則備份路由器隨之便自動替代主路由器。主機(jī)根本覺察不到其中的絲毫差異! √摂M路由集群技術(shù)被作為一個模塊集成到SSR的軟件中以保證網(wǎng)絡(luò)應(yīng)用的實用性,且提高了應(yīng)用要求較高的網(wǎng)絡(luò)的可靠性和適應(yīng)性! ABLETRON的虛擬路由集群技術(shù)遵循IETF(Internet工程任務(wù)組)制定的VRRP(虛擬冗余路由協(xié)議)標(biāo)準(zhǔn)協(xié)議。
在圖二中IP主機(jī)H1、H2等連接到具有多個路由器(R1、R2等)的局域網(wǎng)上R1和R2提供到目的地D1的連接。正常情況下主機(jī)H1、H2等只配置單一路由器R1或R2的路由IP地址。問題是當(dāng)任何一個路由器失敗,則有一個或多個主機(jī)H1、H2等與目的地D1推動連接。對一般的路由協(xié)議如RIP、OSPF等來說,主機(jī)H1、H2等發(fā)現(xiàn)路由失敗需要很長時間(大約40-90秒)甚至導(dǎo)致TCP連接中斷。當(dāng)在虛擬路由集群技術(shù)中使用VRRP協(xié)議時,使得網(wǎng)絡(luò)中的路由失敗恢復(fù)僅需幾秒鐘,它極大提高了網(wǎng)絡(luò)的有效性,為網(wǎng)絡(luò)應(yīng)用要求挑剔的骨干提供路由冗余。
2、虛擬路由集群技術(shù)是如何工作的?
虛擬路由集群里的每個路由器被指定一個相應(yīng)IP地址對應(yīng)的虛擬MAC地址。然后將每個SSR配置為與所有其它路由器的MAC地址和IP地址的路由。IP主機(jī)被配置成使用任何或所有路由器作為自己的路由器。
SSR在集群里使用VRRP信息去選擇主路由,其它SSR成為熱備份路由器。集群里的每一個路由器提供一個虛擬的MAC地址(而不是它實際的MAC地址)作為對主機(jī)應(yīng)答的ARP(地址解析協(xié)議)原地址,且每個路由器也發(fā)送由ICMP(網(wǎng)間控制報文協(xié)議)重定向優(yōu)化了的IP主機(jī)作業(yè)。如果集群中的任何路由器或它們的局域網(wǎng)連接失敗,則主路由器接管其相應(yīng)作業(yè),并通過取代它的虛擬MAC地址和IP地址實現(xiàn)ARP應(yīng)答。如果主路由器失敗,剩下的路由器會選擇一個新的主路由器,它取代了失敗的主路由器的虛擬MAC地址和虛擬IP地址。
3、ICMP路由發(fā)現(xiàn)和ICMP重定向
ICMP路由發(fā)現(xiàn)允許IP主機(jī)使用ICMP信息和程序區(qū)分路由器。使用ICMP,SSR周期性的廣播ICMP路由廣播信息并對來自IP主機(jī)的ICMP路由請求作出響應(yīng)。
ICMP重定向是使路由器通知IP主機(jī)到達(dá)特定目的地的最好路由的機(jī)制,ICMP重定向遵循RFC1122標(biāo)準(zhǔn)。
虛擬路由集群使用標(biāo)準(zhǔn)的ICMP重定向機(jī)制去控制路由器通過在鏈路失敗點周圍作路由,使IP包發(fā)向目的地。信息包在重定向之前仍被SSR所轉(zhuǎn)發(fā),保證不會由于路由改變而導(dǎo)致數(shù)據(jù)丟失。
圖三幫助說明虛擬路由集群是如何工作的。在這個圖表中路由器A和路由器B都是同一虛擬路由集群的組成單元,并各自在其自己的集群內(nèi)設(shè)置成主路由器,而在其它集群設(shè)置成備份路由器。路由器A配置成自己的IP地址和虛擬MAC地址(圖三中正體字部分),同時配置成認(rèn)知路由器B的IP地址和虛擬MAC地址(圖三斜體字部分)。同樣,路由器B配置成自己的IP地址和虛擬MAC地址(圖三中正體字部分),同時配置成認(rèn)知路由器A的IP地址和虛擬MAC地址(圖三中斜體字部分)! ≡谶@個案例里,SSR A被選為主路由器,相應(yīng)地SSR B被設(shè)選為備份路由器。兩個路由器都能夠?qū)χ鳈C(jī)1、2、3通過其虛擬MAC地址發(fā)來的ARP請求,兩個主機(jī)也都能對IP主機(jī)1、2、3的流量作路由。
三、這樣做的結(jié)果: 1.如果一個SSR路由器失敗會發(fā)生什么? 假設(shè)SSR B由于其所連接的局域網(wǎng)斷路或起串口模塊電路壞掉,如圖3所示,SSR A迅速發(fā)現(xiàn)SSR B失敗,并且快速取得SSR B的IP地址和虛擬MAC地址,SSR A現(xiàn)在開始主動對發(fā)到失敗路由器SSR B的ARP請求作出響應(yīng),取得失敗路由器的虛擬MAC地址作為原地址,并主動接收發(fā)往失敗路由器虛擬MAC地址的IP數(shù)據(jù),并轉(zhuǎn)發(fā)到相應(yīng)的目的地。
2.當(dāng)SSR路由器恢復(fù)后會發(fā)生什么?
如果SSR B恢復(fù)了,它會通知它自己和SSR,讓其停止模仿它的工作,從此SSR B會用它自己的MAC地址響應(yīng)ARP請求,兩個路由器同時對信息包進(jìn)行路由。SSR B恢復(fù)響應(yīng)和主路由器停止使用它的虛擬地址之間間隔只是一短暫的間隔。在這短暫的時間內(nèi),數(shù)據(jù)包有可能被丟失或復(fù)制,通常情況下,TCP傳輸協(xié)議能夠保證端對端的數(shù)據(jù)恢復(fù)。
四、結(jié)束語
通常,在一個系統(tǒng)中使用RIP和OSPF去檢測一個故障,需要數(shù)分鐘(甚至可能檢測不到)。但在SSR中配置好路由后使用VRRP配置一定數(shù)量的虛擬路由集群可在5秒鐘內(nèi)檢測和確認(rèn)一個故障,并且可迅速以新的路由取代。這種識別和在故障周圍重路由的能力大大改善了骨干網(wǎng)絡(luò)應(yīng)用的故障復(fù)原能力。在CISCO的路由交換機(jī)上,可用熱路由備份(HRVP)方法實現(xiàn),在其它產(chǎn)品上大多有實現(xiàn)的辦法。