專利名稱:虛擬路由裝置的控制平面結(jié)構(gòu)及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種虛擬路由裝置的控制平面結(jié)構(gòu)及其控制方法。
背景技術(shù):
互聯(lián)網(wǎng)在過(guò)去幾十年的產(chǎn)生與發(fā)展過(guò)程中,取得了舉世矚目的成功?;诨ヂ?lián)網(wǎng), 出現(xiàn)了越來(lái)越多的用戶,越來(lái)越多的應(yīng)用,越來(lái)越多的服務(wù)。然而,也正是因?yàn)榛ヂ?lián)網(wǎng)的廣泛性,愈發(fā)顯現(xiàn)出與原始的設(shè)計(jì)初衷不一致性,固有的弊端和新生的缺陷不斷涌現(xiàn)。因此, 眾多學(xué)者紛紛加入到對(duì)未來(lái)互聯(lián)網(wǎng)的研究中,產(chǎn)生了一系列研究成果。然而,大部分的研究成果都是基于原有互聯(lián)網(wǎng)體系結(jié)構(gòu)的修改,并沒(méi)有有效解決其固有的頑疾。另一些研究成果涉及到對(duì)互聯(lián)網(wǎng)的徹底創(chuàng)新,但遺憾的是沒(méi)有一個(gè)行之有效的大規(guī)模的平臺(tái)來(lái)驗(yàn)證其正確性。因此,未來(lái)互聯(lián)網(wǎng)的研究迫切需要可支持并行網(wǎng)絡(luò)創(chuàng)新實(shí)驗(yàn)平臺(tái)。這個(gè)創(chuàng)新實(shí)驗(yàn)平臺(tái),需要在不影響現(xiàn)網(wǎng)這個(gè)前提下,可以并行進(jìn)行各種互聯(lián)網(wǎng)的創(chuàng)新研究和實(shí)驗(yàn),互不影響。網(wǎng)絡(luò)虛擬化技術(shù)允許在同一個(gè)底層網(wǎng)絡(luò)資源上同時(shí)并行運(yùn)行多個(gè)虛擬網(wǎng)絡(luò),被認(rèn)為是搭建未來(lái)創(chuàng)新網(wǎng)絡(luò)實(shí)驗(yàn)平臺(tái)的一種重要和有效的技術(shù)。網(wǎng)絡(luò)虛擬化通過(guò)節(jié)點(diǎn)虛擬化技術(shù)和鏈路虛擬化技術(shù)在同一底層物理網(wǎng)絡(luò)上虛擬出多個(gè)虛擬網(wǎng)絡(luò),從而提供不同的服務(wù),運(yùn)行不同的協(xié)議和應(yīng)用。例如不同虛擬網(wǎng)絡(luò)可以運(yùn)行特點(diǎn)鮮明的不同應(yīng)用VoIP、視頻點(diǎn)播、組播、文件共享等。作為網(wǎng)絡(luò)虛擬化的核心設(shè)備虛擬路由器,對(duì)其的研究便顯得格外的重要。在過(guò)去的研究中成果,有兩種虛擬路由器的方案第一種方案是基于軟件的虛擬路由器,其最大的特點(diǎn)是配置靈活,可編程性強(qiáng),然而軟件虛擬路由器有其難以逾越的瓶頸轉(zhuǎn)發(fā)速率低,這是因?yàn)槠滢D(zhuǎn)發(fā)功能是由軟件來(lái)實(shí)現(xiàn)的緣故。第二種方案是基于硬件的虛擬路由器,其最大的特點(diǎn)在于轉(zhuǎn)發(fā)速率高,甚至可達(dá)線速,然而其靈活性和可配置性很難和軟件虛擬路由器相比擬。另外,目前關(guān)于硬件虛擬路由器的研究成果在隔離性上也有一定缺陷,各個(gè)平面之間無(wú)法做到完全的隔離。根據(jù)在網(wǎng)絡(luò)中的功能,路由器可以分為如下四個(gè)平面數(shù)據(jù)平面、 控制平面、管理平面和服務(wù)平面。其中控制平面和數(shù)據(jù)平面是最為核心的兩個(gè)平面。數(shù)據(jù)平面負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)發(fā)功能,而控制平面主要負(fù)責(zé)路由協(xié)議的選擇、運(yùn)行、維護(hù)、更新等,并負(fù)責(zé)部分?jǐn)?shù)據(jù)包的處理,以及系統(tǒng)基本功能的配置等??梢?jiàn),控制平面在(虛擬)路由器中起著 “中樞神經(jīng)”的作用,對(duì)控制平面的設(shè)計(jì)的好壞直接影響著(虛擬)路由器的功能、性能和可靠性。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問(wèn)題本發(fā)明要解決的技術(shù)問(wèn)題是提供一種虛擬路由裝置的控制平面結(jié)構(gòu)及其控制方法,其能夠靈活根據(jù)應(yīng)用場(chǎng)景選擇合適的路由協(xié)議,并穩(wěn)定的維護(hù)路由協(xié)議;本發(fā)明還可實(shí)現(xiàn)對(duì)數(shù)據(jù)平面的靈活配置,并可實(shí)時(shí)準(zhǔn)確響應(yīng)用戶的需求。( 二 )技術(shù)方案為解決上述問(wèn)題,本發(fā)明提供了一種虛擬路由裝置的控制平面結(jié)構(gòu),包括主機(jī)控制單元和多個(gè)虛擬機(jī)單元;所述主機(jī)控制單元用于實(shí)現(xiàn)用戶交互、對(duì)數(shù)據(jù)平面和虛擬機(jī)單元進(jìn)行管理和控制,并周期性更新數(shù)據(jù)平面中的路由表和ARP表;所述對(duì)虛擬機(jī)單元進(jìn)行管理和控制包括產(chǎn)生與數(shù)據(jù)平面對(duì)應(yīng)的虛擬機(jī)單元。所述虛擬機(jī)單元用于實(shí)現(xiàn)路由協(xié)議處理和數(shù)據(jù)包處理的功能,并實(shí)時(shí)產(chǎn)生、更新路由表和ARP表,提供給主機(jī)控制單元。其中,所述主機(jī)控制單元包括管理配置模塊。其中,所述虛擬機(jī)單元包括路由協(xié)議模塊和數(shù)據(jù)包處理模塊。其中,所述虛擬路由裝置包括可編程硬件和主機(jī),可編程硬件用于實(shí)現(xiàn)數(shù)據(jù)平面部分功能,負(fù)責(zé)數(shù)據(jù)包轉(zhuǎn)發(fā)。其中,所述數(shù)據(jù)平面包括所述可編程硬件中的數(shù)據(jù)包轉(zhuǎn)發(fā)控制模塊,以及存儲(chǔ)在所述可編程硬件的寄存器中的路由表、ARP表和端口表,且所述數(shù)據(jù)平面與所述虛擬機(jī)單元
--對(duì)應(yīng)。其中,所述虛擬機(jī)單元包括N張?zhí)摂M網(wǎng)卡,所述N張?zhí)摂M網(wǎng)卡通過(guò)網(wǎng)橋分別橋接到所述可編程硬件的N個(gè)CPU隊(duì)列上。所述網(wǎng)橋由管理配置模塊建立。N為自然數(shù)。其中,所述可編程硬件為FPGA。一種利用前述的虛擬路由裝置的控制結(jié)構(gòu)對(duì)虛擬路由裝置進(jìn)行控制的方法,包括以下步驟Sl 主機(jī)根據(jù)需求創(chuàng)建虛擬機(jī)單元并分配資源;S2 主機(jī)以創(chuàng)建軟件橋的方式將虛擬機(jī)單元的虛擬網(wǎng)卡分別和可編程硬件的CPU 隊(duì)列橋接起來(lái);S3 主機(jī)對(duì)所述可編程硬件中的數(shù)據(jù)平面進(jìn)行初始化配置;S4:虛擬機(jī)單元判斷接收到的數(shù)據(jù)包為路由數(shù)據(jù)包還是異常數(shù)據(jù)包,若為路由數(shù)據(jù)包,則選擇路由協(xié)議進(jìn)行處理,將得到的路由表更新到數(shù)據(jù)平面;若為異常數(shù)據(jù)包,執(zhí)行步驟S5-S9 ;S5 判斷數(shù)據(jù)包格式為VLAN格式還是普通格式,對(duì)于VLAN格式的包核對(duì)其VLAN 標(biāo)簽是否匹配,若不匹配,則丟棄;S6 判斷數(shù)據(jù)包的類(lèi)型為ARP類(lèi)型包還是IP類(lèi)型包;S7 對(duì)于ARP類(lèi)型數(shù)據(jù)包,執(zhí)行步驟S8 ;對(duì)于IP類(lèi)型數(shù)據(jù)包,執(zhí)行步驟S9 ;S8 若是ARP應(yīng)答包,則根據(jù)應(yīng)答信息來(lái)更新ARP表,并更新ARP表文件提供給主機(jī);若是ARP請(qǐng)求包,則查詢其端口號(hào)是否匹配,若匹配則返回ARP請(qǐng)求包;否則棄包;S9 查詢路由表,若匹配不到路由表,則向源地址返回ICMP目標(biāo)不可達(dá)信令;若匹配到了路由表項(xiàng)但沒(méi)有找到相應(yīng)的端口,則需要發(fā)起ARP請(qǐng)求來(lái)查詢;若匹配到了路由表也匹配到了端口,則通知數(shù)據(jù)平面更新路由表和端口表;S10:主機(jī)通過(guò)定時(shí)器,周期性地從虛擬機(jī)單元中讀取各控制平面最新的路由表和 ARP表,并將其更新到相應(yīng)的數(shù)據(jù)平面中去。
其中,所述步驟S9中所述查詢路由表,指查詢路由數(shù)據(jù)包處理過(guò)程中路由協(xié)議所生成的路由表。其中,所述步驟S3進(jìn)一步包括主機(jī)通過(guò)PCI總線對(duì)可編程硬件進(jìn)行配置。(三)有益效果本發(fā)明通過(guò)VLAN來(lái)實(shí)現(xiàn)數(shù)據(jù)平面之間的隔離,控制平面之間通過(guò)主機(jī)虛擬化技術(shù),創(chuàng)建出多個(gè)虛擬機(jī)與數(shù)據(jù)平面一一對(duì)應(yīng),使虛擬機(jī)之間保持高的隔離性,可以靈活根據(jù)應(yīng)用場(chǎng)景選擇合適的路由協(xié)議,并穩(wěn)定的維護(hù)路由協(xié)議;本發(fā)明的主機(jī)控制單元可實(shí)現(xiàn)對(duì)數(shù)據(jù)平面的靈活配置,主機(jī)會(huì)根據(jù)需求靈活的對(duì)可編程硬件進(jìn)行控制,并且可以周期性的更新可編程硬件的路由表和ARP表;主機(jī)控制單元根據(jù)用戶的需求來(lái)建立并配置虛擬機(jī), 虛擬機(jī)根據(jù)需求選擇合適的路由協(xié)議,主機(jī)控制單元同時(shí)會(huì)根據(jù)需要對(duì)可編程硬件進(jìn)行相應(yīng)配置,可實(shí)時(shí)準(zhǔn)確響應(yīng)用戶的需求。
圖1為本發(fā)明實(shí)施例中所述虛擬路由裝置的控制平面結(jié)構(gòu)圖;圖2為本發(fā)明實(shí)施例中所述虛擬路由方法的流程圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。如圖1所示,本發(fā)明所述的虛擬路由裝置的控制平面結(jié)構(gòu),包括主機(jī)控制單元和多個(gè)虛擬機(jī)單元;所述虛擬路由裝置包括可編程硬件,例如FPGA和主機(jī),可編程硬件用于實(shí)現(xiàn)數(shù)據(jù)平面部分功能,負(fù)責(zé)數(shù)據(jù)包轉(zhuǎn)發(fā);所述主機(jī)控制單元用于實(shí)現(xiàn)用戶交互、對(duì)數(shù)據(jù)平面和虛擬機(jī)單元進(jìn)行管理和控制,并周期性更新數(shù)據(jù)平面中的路由表和ARP表;所述對(duì)虛擬機(jī)單元進(jìn)行管理和控制包括產(chǎn)生與可編程硬件,例如FPGA中數(shù)據(jù)平面對(duì)應(yīng)的虛擬機(jī)單元。所述主機(jī)控制單元包括管理配置模塊。所述數(shù)據(jù)平面包括FPGA中的數(shù)據(jù)包轉(zhuǎn)發(fā)控制模塊,以及存儲(chǔ)在FPGA的寄存器中的路由表、ARP表和端口表,且所述數(shù)據(jù)平面與所述虛擬機(jī)單元一一對(duì)應(yīng);所述虛擬機(jī)單元包括N張?zhí)摂M網(wǎng)卡,所述N張?zhí)摂M網(wǎng)卡通過(guò)網(wǎng)橋分別橋接到FPGA 的N個(gè)CPU隊(duì)列上;其中,N為自然數(shù);所述網(wǎng)橋由管理配置模塊建立。所述虛擬機(jī)單元用于實(shí)現(xiàn)路由協(xié)議處理和數(shù)據(jù)包處理的功能,并實(shí)時(shí)產(chǎn)生、更新路由表和ARP表,提供給主機(jī)控制單元。所述虛擬機(jī)單元包括路由協(xié)議模塊和數(shù)據(jù)包處理模塊。如圖2所示,本發(fā)明所述的利用前述的虛擬路由裝置的控制結(jié)構(gòu)對(duì)虛擬路由裝置進(jìn)行控制的方法,包括以下步驟Sl 主機(jī)根據(jù)需求創(chuàng)建虛擬機(jī)單元并分配資源;S2 主機(jī)以創(chuàng)建軟件橋的方式將虛擬機(jī)單元的虛擬網(wǎng)卡分別和可編程硬件,例如 FPGA的CPU隊(duì)列橋接起來(lái);
6
S3 主機(jī)對(duì)所述可編程硬件,例如FPGA中的數(shù)據(jù)平面進(jìn)行初始化配置;本步驟中,主機(jī)通過(guò)PCI總線對(duì)FPGA進(jìn)行配置。S4:虛擬機(jī)單元判斷接收到的數(shù)據(jù)包為路由數(shù)據(jù)包還是異常數(shù)據(jù)包,若為路由數(shù)據(jù)包,則選擇路由協(xié)議進(jìn)行處理,將得到的路由表更新到數(shù)據(jù)平面;若為異常數(shù)據(jù)包,執(zhí)行步驟S5-S9 ;S5 判斷數(shù)據(jù)包格式為VLAN格式還是普通格式,對(duì)于VLAN格式的包核對(duì)其VLAN 標(biāo)簽是否匹配,若不匹配,則丟棄;S6 判斷數(shù)據(jù)包的類(lèi)型為ARP類(lèi)型包還是IP類(lèi)型包;S7 對(duì)于ARP類(lèi)型數(shù)據(jù)包,執(zhí)行步驟S8 ;對(duì)于IP類(lèi)型數(shù)據(jù)包,執(zhí)行步驟S9 ;S8 若是ARP應(yīng)答包,則根據(jù)應(yīng)答信息來(lái)更新ARP表,并更新ARP表文件提供給主機(jī);若是ARP請(qǐng)求包,則查詢其端口號(hào)是否匹配,若匹配則返回ARP請(qǐng)求包;否則棄包;S9 查詢路由表,若匹配不到路由表,則向源地址返回ICMP目標(biāo)不可達(dá)信令;若匹配到了路由表項(xiàng)但沒(méi)有找到相應(yīng)的端口,則需要發(fā)起ARP請(qǐng)求來(lái)查詢;若匹配到了路由表也匹配到了端口,則通知數(shù)據(jù)平面更新路由表和端口表;本步驟中,所述查詢路由表,指查詢路由數(shù)據(jù)包處理過(guò)程中路由協(xié)議所生成的路由表。S10:主機(jī)通過(guò)定時(shí)器,周期性地從虛擬機(jī)單元中讀取各控制平面最新的路由表和 ARP表,并將其更新到相應(yīng)的數(shù)據(jù)平面中去。以上實(shí)施方式僅用于說(shuō)明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。
權(quán)利要求
1.一種虛擬路由裝置的控制平面結(jié)構(gòu),其特征在于,包括主機(jī)控制單元和多個(gè)虛擬機(jī)單元;所述主機(jī)控制單元用于實(shí)現(xiàn)用戶交互、對(duì)數(shù)據(jù)平面和虛擬機(jī)單元進(jìn)行管理和控制,并周期性更新數(shù)據(jù)平面中的路由表和ARP表;所述虛擬機(jī)單元用于實(shí)現(xiàn)路由協(xié)議處理和數(shù)據(jù)包處理的功能,并實(shí)時(shí)產(chǎn)生、更新路由表和ARP表,提供給主機(jī)控制單元。
2.如權(quán)利要求1所述的虛擬路由裝置的控制平面結(jié)構(gòu),其特征在于,所述主機(jī)控制單元包括管理配置模塊。
3.如權(quán)利要求1所述的虛擬路由裝置的控制平面結(jié)構(gòu),其特征在于,所述虛擬機(jī)單元包括路由協(xié)議模塊和數(shù)據(jù)包處理模塊。
4.如權(quán)利要求1所述的虛擬路由裝置的控制平面結(jié)構(gòu),其特征在于,所述虛擬路由裝置包括可編程硬件和主機(jī),可編程硬件用于實(shí)現(xiàn)數(shù)據(jù)平面部分功能,負(fù)責(zé)數(shù)據(jù)包轉(zhuǎn)發(fā)。
5.如權(quán)利要求4所述的虛擬路由裝置的控制平面結(jié)構(gòu),其特征在于,所述數(shù)據(jù)平面包括所述可編程硬件中的數(shù)據(jù)包轉(zhuǎn)發(fā)控制模塊,以及存儲(chǔ)在所述可編程硬件的寄存器中的路由表、ARP表和端口表,且所述數(shù)據(jù)平面與所述虛擬機(jī)單元一一對(duì)應(yīng)。
6.如權(quán)利要求1所述的虛擬路由裝置的控制平面結(jié)構(gòu),其特征在于,所述虛擬機(jī)單元包括N張?zhí)摂M網(wǎng)卡,所述N張?zhí)摂M網(wǎng)卡通過(guò)網(wǎng)橋分別橋接到所述可編程硬件的N個(gè)CPU隊(duì)列上。
7.如權(quán)利要求4-6所述的虛擬路由裝置的控制平面結(jié)構(gòu),其特征在于,所述可編程硬件為FPGA。
8.一種利用權(quán)利要求1-6中任一項(xiàng)所述的虛擬路由裝置的控制結(jié)構(gòu)對(duì)虛擬路由裝置進(jìn)行控制的方法,其特征在于,包括以下步驟51主機(jī)根據(jù)需求創(chuàng)建虛擬機(jī)單元并分配資源;52主機(jī)以創(chuàng)建軟件橋的方式將虛擬機(jī)單元的虛擬網(wǎng)卡分別和可編程硬件的CPU隊(duì)列橋接起來(lái);53主機(jī)對(duì)所述可編程硬件中的數(shù)據(jù)平面進(jìn)行初始化配置;S4:虛擬機(jī)單元判斷接收到的數(shù)據(jù)包為路由數(shù)據(jù)包還是異常數(shù)據(jù)包,若為路由數(shù)據(jù)包, 則選擇路由協(xié)議進(jìn)行處理,將得到的路由表更新到數(shù)據(jù)平面;若為異常數(shù)據(jù)包,執(zhí)行步驟 S5-S9 ;55判斷數(shù)據(jù)包格式為VLAN格式還是普通格式,對(duì)于VLAN格式的包核對(duì)其VLAN標(biāo)簽是否匹配,若不匹配,則丟棄;56判斷數(shù)據(jù)包的類(lèi)型為ARP類(lèi)型包還是IP類(lèi)型包;57對(duì)于ARP類(lèi)型數(shù)據(jù)包,執(zhí)行步驟S8 ;對(duì)于IP類(lèi)型數(shù)據(jù)包,執(zhí)行步驟S9 ;58若是ARP應(yīng)答包,則根據(jù)應(yīng)答信息來(lái)更新ARP表,并更新ARP表文件提供給主機(jī);若是ARP請(qǐng)求包,則查詢其端口號(hào)是否匹配,若匹配則返回ARP請(qǐng)求包;否則棄包;59查詢路由表,若匹配不到路由表,則向源地址返回ICMP目標(biāo)不可達(dá)信令;若匹配到了路由表項(xiàng)但沒(méi)有找到相應(yīng)的端口,則需要發(fā)起ARP請(qǐng)求來(lái)查詢;若匹配到了路由表也匹配到了端口,則通知數(shù)據(jù)平面更新路由表和端口表;SlO 主機(jī)通過(guò)定時(shí)器,周期性地從虛擬機(jī)單元中讀取各控制平面最新的路由表和ARP表,并將其更新到相應(yīng)的數(shù)據(jù)平面中去。
9.如權(quán)利要求8所述的虛擬路由裝置控制方法,其特征在于,所述步驟S9中所述查詢路由表,指查詢路由數(shù)據(jù)包處理過(guò)程中路由協(xié)議所生成的路由表。
10.如權(quán)利要求8所述的虛擬路由裝置控制方法,其特征在于,所述步驟S3進(jìn)一步包括主機(jī)通過(guò)PCI總線對(duì)可編程硬件進(jìn)行配置。
全文摘要
本發(fā)明公開(kāi)了一種虛擬路由裝置的控制平面結(jié)構(gòu)及其控制方法,涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,所述控制平面結(jié)構(gòu)包括所述主機(jī)控制單元和多個(gè)虛擬機(jī)單元;所述主機(jī)控制單元用于實(shí)現(xiàn)用戶交互、對(duì)數(shù)據(jù)平面和虛擬機(jī)單元進(jìn)行管理和控制,并周期性更新數(shù)據(jù)平面中的路由表和ARP表;所述虛擬機(jī)單元用于實(shí)現(xiàn)路由協(xié)議處理和數(shù)據(jù)包處理的功能,并實(shí)時(shí)產(chǎn)生、更新路由表和ARP表,提供給主機(jī)控制單元。所述虛擬路由裝置包括可編程硬件和主機(jī),可編程硬件用于實(shí)現(xiàn)數(shù)據(jù)平面功能。本發(fā)明能夠靈活根據(jù)應(yīng)用場(chǎng)景選擇合適的路由協(xié)議,并穩(wěn)定的維護(hù)路由協(xié)議、實(shí)時(shí)更新表項(xiàng);本發(fā)明還可實(shí)現(xiàn)對(duì)數(shù)據(jù)平面的靈活配置,并可實(shí)時(shí)準(zhǔn)確響應(yīng)用戶的需求。
文檔編號(hào)H04L12/56GK102231709SQ20111018531
公開(kāi)日2011年11月2日 申請(qǐng)日期2011年7月4日 優(yōu)先權(quán)日2011年7月4日
發(fā)明者劉中金, 曾烈光, 李勇, 楊懋, 蘇厲, 金德鵬 申請(qǐng)人:清華大學(xué)