一種在芯片中實現(xiàn)虛擬化負載均衡的方法及芯片設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及負載均衡領(lǐng)域,尤其涉及一種在芯片中實現(xiàn)虛擬化負載均衡的方法及芯片設(shè)備。
【背景技術(shù)】
[0002]VXLAN (Virtual extensible Local Area Network)協(xié)議定義了一個在四層協(xié)議UDP (User Datagram Protocol)之上的二層網(wǎng)絡(luò)框架,并實現(xiàn)上層的二層網(wǎng)絡(luò)轉(zhuǎn)發(fā)域的隔離,主要用于數(shù)據(jù)中心的虛擬化。
[0003]如圖1所示,在虛擬化的數(shù)據(jù)中心中,物理服務(wù)器被虛擬化成多臺虛擬機。如圖2所示,虛擬機的數(shù)據(jù)包流量在出物理服務(wù)器網(wǎng)卡時,會被加上“外層MAC頭+外層IP頭+外層UDP頭+VXLAN頭”的隧道封裝。其中,VXLAN網(wǎng)關(guān)可以為特定流量封裝提供特定VXLAN隧道頭部。公有云應(yīng)用場景下,VXLAN存在一種應(yīng)用,用以連接數(shù)據(jù)中心內(nèi)部的資源,并提供對數(shù)據(jù)中心外公共服務(wù)的連接;提供該功能的設(shè)備可稱為VXLAN負載均衡器(Load-Balancer),這種 VXLAN 負載均衡的需求包含 NAT (Network Address Translat1n)功能、加VXLAN報文頭功能以及ECMP (Equal-cost mult1-path)功能這三步。
[0004]目前,在一些現(xiàn)有技術(shù)中,可通過多臺設(shè)備或多個器件分別實現(xiàn)NAT功能、加VXLAN報文頭功能和ECMP功能,該種方法成本較高;在其他一些現(xiàn)有技術(shù)中,可通過先做NAT功能后循環(huán)回芯片再走一遍整個處理流程去加VXLAN封裝并做ECMP的方式實現(xiàn),該種方法循環(huán)過程占用的帶寬是正常處理包時的兩倍,芯片通常無法滿帶寬線速轉(zhuǎn)發(fā)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種在芯片中實現(xiàn)虛擬化負載均衡的方法及芯片設(shè)備。
[0006]為實現(xiàn)上述發(fā)明目的之一,本發(fā)明一實施方式提供一種在芯片中實現(xiàn)虛擬化負載均衡的方法,包含步驟:
接收報文;
解析所述報文,查表得到對應(yīng)所述報文的ECMP成員索引,并根據(jù)所述ECMP成員索引取得物理出口和編輯動作索引;
根據(jù)所述編輯動作索引取得NAT編輯動作和VXLAN編輯動作;
根據(jù)所述ECMP成員索引取得外層二層頭編輯動作;
根據(jù)所述NAT編輯動作、所述VXLAN編輯動作及所述外層二層頭編輯動作編輯所述報文;
從所述物理出口發(fā)送所述報文。
[0007]作為本發(fā)明一實施方式的進一步改進,步驟“根據(jù)所述編輯動作索引取得NAT編輯動作和VXLAN編輯動作”具體包括:
所述編輯動作索引對應(yīng)的編輯動作實體包括依次執(zhí)行的第一級子編輯索引及第二級子編輯索引,根據(jù)所述第一級子編輯索引取得所述NAT編輯動作,根據(jù)所述第二級子編輯索引取得到所述VXLAN編輯動作。
[0008]作為本發(fā)明一實施方式的進一步改進,步驟“根據(jù)所述ECMP成員索引取得外層二層頭編輯動作”具體包括:
所述第二級子編輯索引對應(yīng)的第二級子編輯實體包括第三級子編輯索引,當所述第三級子編輯索引等于特征值時,根據(jù)所述ECMP成員索引取得所述外層二層頭編輯動作;當所述第三級子編輯索引不等于所述特征值時,根據(jù)所述第三級子編輯索引取得所述外層二層頭編輯動作。
[0009]作為本發(fā)明一實施方式的進一步改進,步驟“當所述第三級子編輯索引等于特征值時,根據(jù)所述ECMP成員索引取得所述外層二層頭編輯動作”具體包括:
當所述第三級子編輯索引等于所述特征值時,根據(jù)所述ECMP成員索引得到第四級子編輯索引,并根據(jù)所述第四級子編輯索引得到所述外層二層頭編輯動作。
[0010]作為本發(fā)明一實施方式的進一步改進,步驟“解析所述報文,得到對應(yīng)所述報文的ECMP成員索引和編輯動作索引”具體包括:
解析所述報文,當所述報文的源端口為路由端口時,查找路由表,得到對應(yīng)所述報文的ECMP成員端口和所述編輯動作索引;當所述報文的源端口為非路由端口時,不按照查找所述路由表的方式處理所述報文。
[0011]作為本發(fā)明一實施方式的進一步改進,所述NAT編輯動作包括將所述報文的TTL減去I。
[0012]為實現(xiàn)上述發(fā)明目的之一,本發(fā)明一實施方式提供一種實現(xiàn)虛擬化負載均衡的芯片設(shè)備,包括接收模塊、解析模塊、執(zhí)行模塊、編輯模塊及發(fā)送模塊,接收模塊用于接收報文;解析模塊用于解析所述報文,并查表得到對應(yīng)所述報文的ECMP成員索引,并根據(jù)ECMP成員索引取得物理出口和編輯動作索引;執(zhí)行模塊用于根據(jù)所述編輯動作索引取得NAT編輯動作和VXLAN編輯動作,以及根據(jù)所述ECMP成員索引取得外層二層頭編輯動作;編輯模塊用于根據(jù)所述NAT編輯動作、所述VXLAN編輯動作及所述外層二層頭編輯動作編輯所述報文;發(fā)送模塊用于從所述物理出口發(fā)送所述報文。
[0013]作為本發(fā)明一實施方式的進一步改進,所述執(zhí)行模塊包括對應(yīng)所述編輯動作索引的編輯動作實體,所述編輯動作實體包括依次執(zhí)行的第一級子編輯索引及第二級子編輯索弓I,所述執(zhí)行模塊用于根據(jù)所述第一級子編輯索引取得所述NAT編輯動作,且所述執(zhí)行模塊根據(jù)所述第二級子編輯索引取得到所述VXLAN編輯動作。
[0014]作為本發(fā)明一實施方式的進一步改進,所述執(zhí)行模塊還包括對應(yīng)所述第二級子編輯索引的第二級子編輯實體,所述第二級子編輯實體包括第三級子編輯索引及特征值,當所述第三級子編輯索引等于所述特征值時,所述執(zhí)行模塊用于根據(jù)所述ECMP成員索引取得所述外層二層頭編輯動作;當所述第三級子編輯索引不等于所述特征值時,所述執(zhí)行模塊用于根據(jù)所述第三級子編輯索引取得所述外層二層頭編輯動作。
[0015]作為本發(fā)明一實施方式的進一步改進,當所述第三級子編輯索引等于所述特征值時,所述執(zhí)行模塊用于根據(jù)所述ECMP成員索引得到第四級子編輯索引,且所述執(zhí)行模塊根據(jù)所述第四級子編輯索引得到所述外層二層頭編輯動作。
[0016]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:本發(fā)明可以在芯片中直接完成NAT功能、加VXLAN報文頭功能以及ECMP功能,無需多個器件,且不占用多余帶寬,大大降低虛擬化負載均衡的實現(xiàn)成本。
【附圖說明】
[0017]圖1是本發(fā)明現(xiàn)有技術(shù)的虛擬化的數(shù)據(jù)中心示意圖;
圖2是本發(fā)明現(xiàn)有技術(shù)的數(shù)據(jù)包流量在出物理服務(wù)器網(wǎng)關(guān)時的示意圖;
圖3是本發(fā)明一實施方式的在芯片中實現(xiàn)虛擬化負載均衡的方法流程圖;
圖4是本發(fā)明一實施方式的負載均衡功能示意圖;
圖5是本發(fā)明一實施方式的實現(xiàn)虛擬化負載均衡的芯片設(shè)備框圖;
圖6是本發(fā)明一具體示例的虛擬化的數(shù)據(jù)中心示意圖;
圖7是本發(fā)明一具體示例的在芯片中實現(xiàn)虛擬化負載均衡的方法示意圖。
【具體實施方式】
[0018]以下將結(jié)合附圖所示的【具體實施方式】對本發(fā)明進行詳細描述。但這些實施方式并不限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員根據(jù)這些實施方式所做出的結(jié)構(gòu)、方法、或功能上的變換均包含在本發(fā)明的保護范圍內(nèi)。
[0019]參圖3及圖4,本發(fā)明一實施方式的在芯片中實現(xiàn)虛擬化負載均衡的方法包括步驟:
接收報文;
解析所述報文,查表得到對應(yīng)所述報文的ECMP成員索引M,并根據(jù)所述ECMP成員索引M取得物理出口和編輯動作索引A ;
根據(jù)所述編輯動作索引A取得NAT編輯動作和VXLAN編輯動作;
根據(jù)所述ECMP成員索引M取得外層二層頭編輯動作;
根據(jù)所述NAT編輯動作、所述VXLAN編輯動作及所述外層二層頭編輯動作編輯所述報文;
從所述物理出口發(fā)送所述報文。
[0020]在本實施方式中,將數(shù)據(jù)中心虛擬化部署中的負載均衡直接集成到一個芯片中,即在該芯片中可以同時完成NAT功能、加VXLAN報文頭功能以及ECMP功能,如此,無需多個器件,且不占用多余帶寬,大大降低虛擬化負載均衡的實現(xiàn)成本。
[0021]具體的,本發(fā)明獲取物理出口和編輯動作索引A的具體流程為:解析接收到的報文,并得到所述報文中的MAC地址和IP地址,按照IP地址進行查找路由表,得到一個ECMP組,按照一定的規(guī)則在ECMP組中選取特定成員,得到