負(fù)載均衡模式下的虛擬轉(zhuǎn)發(fā)器
通過(guò)前面介紹的 Master 路由器虛擬 MAC 地址的分配功能實(shí)現(xiàn)了不同主機(jī)將流量發(fā)送給備份組中不同的路由器。但為了使備份組中的路由器能夠轉(zhuǎn)發(fā)主機(jī)發(fā)送的流量,還需要在路由器上創(chuàng)建虛擬轉(zhuǎn)發(fā)器。每個(gè)虛擬轉(zhuǎn)發(fā)器都對(duì)應(yīng)備份組的一個(gè)虛擬 MAC 地址,負(fù)責(zé)轉(zhuǎn)發(fā)目的 MAC 地址為該虛擬 MAC 地址的流量。
1.虛擬轉(zhuǎn)發(fā)器的創(chuàng)建
虛擬轉(zhuǎn)發(fā)器的創(chuàng)建過(guò)程如下:
(1)備份組中的路由器獲取到 Master 路由器為其分配的虛擬 MAC 地址后,創(chuàng)建該 MAC 地址對(duì)應(yīng)的虛擬轉(zhuǎn)發(fā)器,該路由器稱(chēng)為此虛擬 MAC 地址對(duì)應(yīng)的虛擬轉(zhuǎn)發(fā)器的 VF Owner(VirtualForwarder Owner,虛擬轉(zhuǎn)發(fā)器擁有者)。
(2)該路由器將虛擬轉(zhuǎn)發(fā)器的信息通告給備份組內(nèi)其他的路由器。
(3)備份組內(nèi)的其他路由器接收到該路由器發(fā)送的虛擬轉(zhuǎn)發(fā)器信息后,會(huì)在本地創(chuàng)建該虛擬MAC 地址對(duì)應(yīng)的虛擬轉(zhuǎn)發(fā)器。
由此可見(jiàn),備份組中的路由器上不僅需要?jiǎng)?chuàng)建 Master 路由器為其分配的虛擬 MAC 地址對(duì)應(yīng)的虛擬轉(zhuǎn)發(fā)器,還需要?jiǎng)?chuàng)建其他路由器通告的虛擬MAC 地址對(duì)應(yīng)的虛擬轉(zhuǎn)發(fā)器。
2.虛擬轉(zhuǎn)發(fā)器的權(quán)重和優(yōu)先級(jí)
虛擬轉(zhuǎn)發(fā)器的權(quán)重標(biāo)識(shí)了路由器的轉(zhuǎn)發(fā)能力。權(quán)重值越高,路由器的轉(zhuǎn)發(fā)能力越強(qiáng)。當(dāng)權(quán)重低于一定的值——失效下限時(shí),路由器無(wú)法再為主機(jī)轉(zhuǎn)發(fā)流量。
虛擬轉(zhuǎn)發(fā)器的優(yōu)先級(jí)用來(lái)決定虛擬轉(zhuǎn)發(fā)器的狀態(tài):不同路由器上同一個(gè)虛擬 MAC 地址對(duì)應(yīng)的虛擬轉(zhuǎn)發(fā)器中,優(yōu)先級(jí)最高的虛擬轉(zhuǎn)發(fā)器處于 Active 狀態(tài),稱(chēng)為 AVF(Active Virtual Forwarder),負(fù)責(zé)轉(zhuǎn)發(fā)流量;其他虛擬轉(zhuǎn)發(fā)器處于 Listening 狀態(tài),稱(chēng)為 LVF(Listening Virtual Forwarder),監(jiān)聽(tīng)AVF 的狀態(tài)。虛擬轉(zhuǎn)發(fā)器的優(yōu)先級(jí)取值范圍為 0~255,其中,255 保留給 VF Owner 使用。如果VF Owner 的權(quán)重高于或等于失效下限,則 VF Owner 的優(yōu)先級(jí)為最高值 255。
設(shè)備根據(jù)虛擬轉(zhuǎn)發(fā)器的權(quán)重計(jì)算虛擬轉(zhuǎn)發(fā)器的優(yōu)先級(jí)的規(guī)則如下:
如果權(quán)重高于或等于失效下限,且設(shè)備為 VF Owner,則虛擬轉(zhuǎn)發(fā)器的優(yōu)先級(jí)為最高值255。
如果權(quán)重高于或等于失效下限,且設(shè)備不是 VF Owner,則虛擬轉(zhuǎn)發(fā)器的優(yōu)先級(jí)為權(quán)重/(本地 AVF 的數(shù)目+1)。
如果權(quán)重低于失效下限,則虛擬轉(zhuǎn)發(fā)器的優(yōu)先級(jí)為 0。
3.虛擬轉(zhuǎn)發(fā)器備份
備份組中不同路由器上同一個(gè)虛擬 MAC 地址對(duì)應(yīng)的多個(gè)虛擬轉(zhuǎn)發(fā)器之間形成備份關(guān)系。在如圖 4-9所示的示例中,說(shuō)明了備份組中每個(gè)路由器上的虛擬轉(zhuǎn)發(fā)器信息及其備份關(guān)系。
圖4-9 負(fù)載均衡模式下的虛擬轉(zhuǎn)發(fā)器備份
在本示例中,Master 路由器 Router A 為自己、Router B、Router C 分配的虛擬 MAC 地址分別為 000fe2ff0011、000fe2ff0012和 000fe2ff0013。虛擬 MAC 地址對(duì)應(yīng)的虛擬轉(zhuǎn)發(fā)器分別為 VF1、VF 2 和 VF 3。在 Router A、Router B 和 Router C 上都創(chuàng)建了這三個(gè)虛擬轉(zhuǎn)發(fā)器,并形成備份關(guān)系。例如,Router A、Router B 和 Router C 上的 VF 1 互相備份:
Router A 為 VF 1 的 VF Owner,Router A 上 VF 1 的虛擬轉(zhuǎn)發(fā)器優(yōu)先級(jí)為最高值255。因此,Router A 上的 VF 1 作為 AVF,負(fù)責(zé)轉(zhuǎn)發(fā)目的 MAC 地址為虛擬 MAC 地址 000fe2ff0011的流量。
Router B 和 Router C 上 VF 1 的虛擬轉(zhuǎn)發(fā)器優(yōu)先級(jí)為:權(quán)重 255/(本地 AVF 數(shù)目+1)=127,低于 Router A 上 VF 1 的優(yōu)先級(jí)。因此,Router B 和 Router C 上的 VF 1 作為L(zhǎng)VF,監(jiān)視 Router A 上 VF 1 的狀態(tài)。
在 Router A 上的 VF 1 出現(xiàn)故障時(shí),將從 Router B 和 Router C 上的 VF 1 中選舉出虛擬轉(zhuǎn)發(fā)器優(yōu)先級(jí)最高的 LVF 作為 AVF,負(fù)責(zé)轉(zhuǎn)發(fā)目的 MAC 地址為虛擬 MAC 地址 000fe2ff0011的流量。
【說(shuō)明】虛擬轉(zhuǎn)發(fā)器始終工作在搶占模式。對(duì)于不同路由器上互相備份的 LVF 和 AVF,如果LVF 接收到 AVF 發(fā)送的虛擬轉(zhuǎn)發(fā)器信息中虛擬轉(zhuǎn)發(fā)器優(yōu)先級(jí)低于本地虛擬轉(zhuǎn)發(fā)器優(yōu)先級(jí),則 LVF將會(huì)搶占成為 AVF。
4.虛擬轉(zhuǎn)發(fā)器的定時(shí)器
虛擬轉(zhuǎn)發(fā)器的 AVF 出現(xiàn)故障后,接替其工作的新的 AVF 將為該 VF 創(chuàng)建 Redirect Timer 和Timeout Timer 兩個(gè)定時(shí)器。
Redirect Timer:VF 重定向定時(shí)器。該定時(shí)器超時(shí)前,Master 路由器還會(huì)采用該 VF 對(duì)應(yīng)的虛擬 MAC 地址應(yīng)答主機(jī)的 ARP/ND 請(qǐng)求;該定時(shí)器超時(shí)后,Master 路由器不再采用該VF 對(duì)應(yīng)的虛擬 MAC 地址應(yīng)答主機(jī)的 ARP/ND 請(qǐng)求。如果 VF Owner 在 Redirect Timer 超時(shí)前恢復(fù),則 VF Owner 可以迅速參與流量的負(fù)載分擔(dān)。
Timeout Timer:VF 生存定時(shí)器,即 AVF 接替 VF Owner 工作的期限。該定時(shí)器超時(shí)前,備份組中的路由器上都保留該 VF,AVF 負(fù)責(zé)轉(zhuǎn)發(fā)目的 MAC 地址為該 VF 對(duì)應(yīng)虛擬 MAC地址的報(bào)文;該定時(shí)器超時(shí)后,備份組中的路由器上都刪除該 VF,不再轉(zhuǎn)發(fā)目的 MAC地址為該 VF 對(duì)應(yīng)虛擬 MAC 地址的報(bào)文。
5.虛擬轉(zhuǎn)發(fā)器的監(jiān)視功能
AVF 負(fù)責(zé)轉(zhuǎn)發(fā)目的 MAC 地址為虛擬轉(zhuǎn)發(fā)器 MAC 地址的流量,當(dāng) AVF 連接的上行鏈路出現(xiàn)故障時(shí),如果不能及時(shí)通知 LVF 接替其工作,局域網(wǎng)中以此虛擬轉(zhuǎn)發(fā)器 MAC 地址為網(wǎng)關(guān) MAC 地址的主機(jī)將無(wú)法訪問(wèn)外部網(wǎng)絡(luò)。
虛擬轉(zhuǎn)發(fā)器的監(jiān)視功能可以解決上述問(wèn)題。利用NQA(Network Quality Analyzer,網(wǎng)絡(luò)質(zhì)量分析)、BFD(Bidirectional Forwarding Detection,雙向轉(zhuǎn)發(fā)檢測(cè))等監(jiān)測(cè) AVF 連接的上行鏈路的狀態(tài),并通過(guò) Track 功能在虛擬轉(zhuǎn)發(fā)器和 NQA/BFD 之間建立聯(lián)動(dòng)。當(dāng)上行鏈路出現(xiàn)故障,Track 項(xiàng)的狀態(tài)變?yōu)?Negative,虛擬轉(zhuǎn)發(fā)器的權(quán)重將降低指定的數(shù)額,以便虛擬轉(zhuǎn)發(fā)器優(yōu)先級(jí)更高的路由器搶占成為 AVF,接替其轉(zhuǎn)發(fā)流量。
虛擬轉(zhuǎn)發(fā)器監(jiān)視功能還可以用來(lái)在 LVF 上通過(guò) Track 監(jiān)視 AVF 的狀態(tài),當(dāng) AVF 出現(xiàn)故障時(shí),工作在虛擬轉(zhuǎn)發(fā)器快速切換模式的 LVF 能夠迅速成為 AVF,以保證通信不會(huì)中斷。