路由轉(zhuǎn)發(fā)表項(xiàng)生成方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明提供一種路由轉(zhuǎn)發(fā)表項(xiàng)生成方法及裝置,應(yīng)用在軟件定義網(wǎng)絡(luò)SDN中的交換機(jī)上,所述方法包括:解析控制器下發(fā)的流表項(xiàng)配置命令,獲得目的IP地址和報(bào)文轉(zhuǎn)發(fā)參數(shù);根據(jù)所述報(bào)文轉(zhuǎn)發(fā)參數(shù)查找ARP表;當(dāng)查找到與所述報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)后,根據(jù)所述APR表項(xiàng)的IP地址與所述目的IP地址創(chuàng)建IP路由表項(xiàng)。應(yīng)用本發(fā)明可以節(jié)省ARP表項(xiàng)資源,減少了對(duì)交換機(jī)系統(tǒng)內(nèi)存的占用。
【專(zhuān)利說(shuō)明】路由轉(zhuǎn)發(fā)表項(xiàng)生成方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信【技術(shù)領(lǐng)域】,尤其涉及路由轉(zhuǎn)發(fā)表項(xiàng)生成方法及裝置。
【背景技術(shù)】
[0002]SDN(Software Defined Network,軟件定義網(wǎng)絡(luò))是一種新型的網(wǎng)絡(luò)架構(gòu),通常包含實(shí)現(xiàn)控制面功能的控制器(Controller)和若干實(shí)現(xiàn)數(shù)據(jù)面功能的交換機(jī)(Switch)。SDN技術(shù)中最為流行的是OpenFlow(開(kāi)放流)協(xié)議,在基于OpenFlow協(xié)議的SDN中,控制器向交換機(jī)下發(fā)OpenFlow流表項(xiàng)(Flow Entry,簡(jiǎn)稱(chēng)流表項(xiàng)),交換機(jī)接收到報(bào)文時(shí),通過(guò)匹配流表項(xiàng)對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā)。但是由于交換機(jī)上可支持的流表項(xiàng)的數(shù)量有限,因此可以將控制器下發(fā)的流表項(xiàng)轉(zhuǎn)化為路由轉(zhuǎn)發(fā)表項(xiàng),也稱(chēng)為MAC(Media Access Controller,媒體訪問(wèn)控制)-1P (Internet Protocol,互聯(lián)網(wǎng)協(xié)議)轉(zhuǎn)發(fā)表項(xiàng)。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供路由轉(zhuǎn)發(fā)表項(xiàng)生成方法及裝置,以節(jié)省ARP表項(xiàng)資源。
[0004]根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種路由轉(zhuǎn)發(fā)表項(xiàng)生成方法,所述方法應(yīng)用在軟件定義網(wǎng)絡(luò)SDN中的交換機(jī)上,所述方法包括:
[0005]解析控制器下發(fā)的流表項(xiàng)配置命令,獲得目的IP地址和報(bào)文轉(zhuǎn)發(fā)參數(shù);
[0006]根據(jù)所述報(bào)文轉(zhuǎn)發(fā)參數(shù)查找ARP表;
[0007]當(dāng)查找到與所述報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)后,根據(jù)所述APR表項(xiàng)的IP地址與所述目的IP地址創(chuàng)建IP路由表項(xiàng)。
[0008]根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種路由轉(zhuǎn)發(fā)表項(xiàng)生成裝置,所述裝置應(yīng)用在軟件定義網(wǎng)絡(luò)SDN中的交換機(jī)上,所述裝置包括:
[0009]解析單元,用于解析控制器下發(fā)的流表項(xiàng)配置命令,獲得目的IP地址和報(bào)文轉(zhuǎn)發(fā)參數(shù);
[0010]查找單元,用于根據(jù)所述報(bào)文轉(zhuǎn)發(fā)參數(shù)查找ARP表;
[0011]創(chuàng)建單元,用于當(dāng)查找到與所述報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)后,根據(jù)所述APR表項(xiàng)的IP地址與所述目的IP地址創(chuàng)建IP路由表項(xiàng)。
[0012]本發(fā)明實(shí)施例中,交換機(jī)解析控制器下發(fā)的流表項(xiàng)配置命令,獲得目的IP地址和報(bào)文轉(zhuǎn)發(fā)參數(shù)后,當(dāng)查找到與該報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)后,提取該ARP表項(xiàng)中的IP地址作為下一跳IP地址,與該目的IP地址生成IP路由表項(xiàng),由于可以不再為該流表項(xiàng)生成ARP表項(xiàng),因此節(jié)省了 ARP表項(xiàng)資源,減少了對(duì)交換機(jī)系統(tǒng)內(nèi)存的占用。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0013]此處的附圖被并入說(shuō)明書(shū)中并構(gòu)成本說(shuō)明書(shū)的一部分,示出了符合本發(fā)明的實(shí)施例,并與說(shuō)明書(shū)一起用于解釋本發(fā)明的原理。
[0014]圖1為將流表項(xiàng)轉(zhuǎn)換為路由轉(zhuǎn)發(fā)表項(xiàng)的一種實(shí)現(xiàn)方式示意圖;
[0015]圖2為本發(fā)明路由轉(zhuǎn)發(fā)表項(xiàng)生成方法的一個(gè)實(shí)施例流程圖;
[0016]圖3為將流表項(xiàng)轉(zhuǎn)換為路由轉(zhuǎn)發(fā)表項(xiàng)的另一種實(shí)現(xiàn)方式示意圖;
[0017]圖4是本發(fā)明路由轉(zhuǎn)發(fā)表項(xiàng)生成裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖;
[0018]圖5是本發(fā)明路由轉(zhuǎn)發(fā)表項(xiàng)生成裝置的一個(gè)實(shí)施例框圖。
【具體實(shí)施方式】
[0019]目前,SDN技術(shù)中最為流行的是OpenFlow協(xié)議,以下將以O(shè)penFlow協(xié)議為例進(jìn)行說(shuō)明,需要說(shuō)明的是,本申請(qǐng)并不排除其他能夠?qū)崿F(xiàn)SDN功能的協(xié)議。
[0020]在基于OpenFlow協(xié)議的SDN中,控制平面功能由控制器實(shí)現(xiàn),控制器主要通過(guò)OpenFlow流表項(xiàng)向交換機(jī)下發(fā)報(bào)文轉(zhuǎn)發(fā)策略;數(shù)據(jù)轉(zhuǎn)發(fā)平面的功能由交換機(jī)實(shí)現(xiàn),交換機(jī)上的交換芯片按照OpenFlow流表項(xiàng)對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā),后續(xù)將OpenFlow流表項(xiàng)簡(jiǎn)稱(chēng)為流表項(xiàng)。通常交換機(jī)上包括ACL(Access Control List,訪問(wèn)控制列表)資源和路由轉(zhuǎn)發(fā)資源,其中,流表項(xiàng)為一種ACL資源,而由IP路由表項(xiàng)和下一跳ARP表項(xiàng)組成的MAC-1P轉(zhuǎn)發(fā)表項(xiàng)為路由轉(zhuǎn)發(fā)資源,相較于路由轉(zhuǎn)發(fā)資源,ACL資源比較有限,因此在基于OpenFlow協(xié)議的SDN中,交換機(jī)可以將匹配報(bào)文目的IP地址(IP前綴/掩碼)和目的MAC地址的流表項(xiàng)轉(zhuǎn)化為MAC-1P轉(zhuǎn)發(fā)表項(xiàng)。當(dāng)交換機(jī)接收到控制器下發(fā)的流表項(xiàng)配置命令后,從該配置命令中提取目的IP地址(IP前綴/掩碼)和轉(zhuǎn)發(fā)參數(shù),轉(zhuǎn)發(fā)參數(shù)包括目的MAC地址、出VLAN和出端口。
[0021]在一種生成MAC-1P轉(zhuǎn)發(fā)表項(xiàng)的實(shí)現(xiàn)方式中,交換機(jī)首先生成下一跳ARP (AddressResolut1n Protocol,地址解析協(xié)議)表項(xiàng),為該ARP表項(xiàng)分配下一跳IP地址,并將提取出的目的MAC地址、出VLAN和出端口寫(xiě)入該ARP表項(xiàng),然后根據(jù)該下一跳IP地址和目的IP地址生成對(duì)應(yīng)該ARP表項(xiàng)的IP路由表項(xiàng),該ARP表項(xiàng)和IP路由表項(xiàng)通過(guò)下一跳IP地址進(jìn)行關(guān)聯(lián)。參見(jiàn)圖1,為將流表項(xiàng)轉(zhuǎn)換為路由轉(zhuǎn)發(fā)表項(xiàng)的一種實(shí)現(xiàn)方式示意圖。在圖1中,為三個(gè)流表項(xiàng)分別創(chuàng)建了三個(gè)IP路由表項(xiàng),每個(gè)IP路由表項(xiàng)對(duì)應(yīng)一個(gè)ARP表項(xiàng),其中,下一跳IP地址分別為0.0.0.1和0.0.0.2對(duì)應(yīng)的ARP表項(xiàng)具有相同的報(bào)文轉(zhuǎn)發(fā)參數(shù)。由此可知,采用上述實(shí)現(xiàn)方式會(huì)生成與IP路由表項(xiàng)數(shù)量一致的ARP表項(xiàng),但是當(dāng)不同IP路由表項(xiàng)中目的IP地址對(duì)應(yīng)的轉(zhuǎn)發(fā)參數(shù)均一致時(shí),會(huì)生成多個(gè)包含相同轉(zhuǎn)發(fā)參數(shù)的ARP表項(xiàng),從而浪費(fèi)大量ARP表項(xiàng)資源。
[0022]在另一種生成MAC-1P轉(zhuǎn)發(fā)表項(xiàng)的實(shí)現(xiàn)方式中,交換機(jī)解析控制器下發(fā)的流表項(xiàng)配置命令,獲得目的IP地址和報(bào)文轉(zhuǎn)發(fā)參數(shù),如果查找到ARP表中已經(jīng)存在報(bào)文轉(zhuǎn)發(fā)參數(shù)與解析出的報(bào)文轉(zhuǎn)發(fā)參數(shù)相同的ARP表項(xiàng)時(shí),則可以不再為該流表項(xiàng)生成ARP表項(xiàng),只需提取查找到的ARP表項(xiàng)中的IP地址作為下一跳IP地址,與解析出的目的IP地址生成IP路由表項(xiàng),從而節(jié)省ARP表項(xiàng)資源。下面結(jié)合具體實(shí)施例和附圖對(duì)上述實(shí)現(xiàn)方式進(jìn)行詳細(xì)說(shuō)明。
[0023]參見(jiàn)圖2,為本發(fā)明路由轉(zhuǎn)發(fā)表項(xiàng)生成方法的一個(gè)實(shí)施例流程圖,該實(shí)施例應(yīng)用在基于OpenFlow協(xié)議的SDN中的交換機(jī)上,包括以下步驟:
[0024]步驟201:解析控制器下發(fā)的流表項(xiàng)配置命令,獲得目的IP地址和報(bào)文轉(zhuǎn)發(fā)參數(shù)。
[0025]交換機(jī)將流表項(xiàng)轉(zhuǎn)換為路由轉(zhuǎn)發(fā)表項(xiàng)后,將路由轉(zhuǎn)發(fā)表項(xiàng)下發(fā)到交換芯片,上述涉及的流表項(xiàng)主要指用于匹配報(bào)文目的IP地址的流表項(xiàng)。本發(fā)明中當(dāng)交換機(jī)接收到控制器下發(fā)的流表項(xiàng)配置命令后,從該配置命令中解析出目的IP地址和報(bào)文轉(zhuǎn)發(fā)參數(shù),其中,報(bào)文轉(zhuǎn)發(fā)參數(shù)通常包括目的MAC地址、出VLAN和端口號(hào)。
[0026]步驟202:將至少一個(gè)報(bào)文轉(zhuǎn)發(fā)參數(shù)作為關(guān)鍵字計(jì)算查找標(biāo)識(shí)。
[0027]在獲得報(bào)文轉(zhuǎn)發(fā)參數(shù)后,可以采用特定算法對(duì)至少一個(gè)報(bào)文轉(zhuǎn)發(fā)參數(shù)進(jìn)行計(jì)算得到用于查找ARP表項(xiàng)的查找標(biāo)識(shí)。
[0028]在本發(fā)明的一個(gè)例子中,上述特定算法可以具體為哈希算法,此時(shí)可以將不同報(bào)文轉(zhuǎn)發(fā)參數(shù)的組合作為關(guān)鍵字計(jì)算哈希值,該哈希值作為查找標(biāo)識(shí),其中,第一種計(jì)算方式可以為:將解析得到的所有報(bào)文轉(zhuǎn)發(fā)參數(shù),即目的MAC地址、出VLAN和端口號(hào)作為關(guān)鍵字計(jì)算哈希值;第二種計(jì)算方式可以為:僅將目的MAC地址和出VLAN作為關(guān)鍵字計(jì)算哈希值,與第一種計(jì)算方式相比,第二種計(jì)算方式由于關(guān)鍵字較少,因此可以提高哈希值計(jì)算效率。
[0029]步驟203:判斷是否從ARP表中獲得表項(xiàng)標(biāo)識(shí)與查找標(biāo)識(shí)相同的ARP表項(xiàng),若是,則執(zhí)行步驟204 ;否則,執(zhí)行步驟206。
[0030]對(duì)應(yīng)于步驟202中的查找標(biāo)識(shí),本發(fā)明中當(dāng)ARP表中增加新的ARP表項(xiàng)時(shí),可以采用與計(jì)算查找標(biāo)識(shí)相同的特定算法,對(duì)與計(jì)算查找標(biāo)識(shí)相同的報(bào)文轉(zhuǎn)發(fā)參數(shù)進(jìn)行計(jì)算得到ARP表項(xiàng)的表項(xiàng)標(biāo)識(shí)。本步驟中,將查找標(biāo)識(shí)與ARP表中的表項(xiàng)標(biāo)識(shí)進(jìn)行匹配,當(dāng)匹配到至少一個(gè)ARP表項(xiàng)時(shí),則執(zhí)行步驟204,當(dāng)未匹配到任何ARP表項(xiàng)時(shí),則執(zhí)行步驟206。
[0031]在本發(fā)明的一個(gè)例子中,ARP表中包含的轉(zhuǎn)發(fā)參數(shù)字段有目的MAC地址字段,出VLAN字段及出端口字段,假設(shè)步驟202中采用哈希算法對(duì)至少一個(gè)報(bào)文轉(zhuǎn)發(fā)參數(shù)進(jìn)行計(jì)算得到作為查找標(biāo)識(shí)的哈希值,則當(dāng)ARP表中每新增一個(gè)ARP表項(xiàng)時(shí),將上述字段對(duì)應(yīng)的至少一個(gè)轉(zhuǎn)發(fā)參數(shù)作為關(guān)鍵字計(jì)算哈希值,將計(jì)算得到的哈希值作為該ARP表項(xiàng)的表項(xiàng)序號(hào),該表項(xiàng)序號(hào)作為ARP表的表項(xiàng)標(biāo)識(shí),表示了 ARP表項(xiàng)在ARP表中的存儲(chǔ)位置,在本發(fā)明中,不同ARP表項(xiàng)的表項(xiàng)序號(hào)可能相同。其中,計(jì)算表項(xiàng)序號(hào)與步驟202中計(jì)算哈希值采用的關(guān)鍵字和哈希算法相同,例如,計(jì)算表項(xiàng)序號(hào)采用的關(guān)鍵字為目的MAC地址和出VLAN時(shí),則步驟202中也采用解析出的目的MAC地址和出VLAN計(jì)算哈希值。將步驟202中計(jì)算得到的哈希值與ARP表中的表項(xiàng)序號(hào)進(jìn)行匹配,當(dāng)匹配到至少一個(gè)ARP表項(xiàng)時(shí),則執(zhí)行步驟204,當(dāng)未匹配到任何ARP表項(xiàng)時(shí),則執(zhí)行步驟206。
[0032]步驟204:判斷是否從獲得的ARP表項(xiàng)中查找到與報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng),若是,則執(zhí)行步驟205 ;否則,執(zhí)行步驟206。
[0033]在本發(fā)明的一個(gè)例子中,在獲得表項(xiàng)標(biāo)識(shí)與查找標(biāo)識(shí)相同的ARP表項(xiàng)后,將步驟201中解析得到的報(bào)文轉(zhuǎn)發(fā)參數(shù)與獲得的ARP表項(xiàng)中的轉(zhuǎn)發(fā)參數(shù)進(jìn)行比較,如果存在一個(gè)ARP表項(xiàng),其目的MAC地址、出VLAN和端口號(hào)與解析得到的目的MAC地址、出VLAN和端口號(hào)均相同,則可以不生成新的ARP表項(xiàng),直接執(zhí)行步驟205。
[0034]步驟205:將匹配到的APR表項(xiàng)的IP地址作為下一跳IP地址,與目的IP地址創(chuàng)建IP路由表項(xiàng),將查找到的ARP表項(xiàng)的引用值加1,結(jié)束當(dāng)前流程。
[0035]根據(jù)步驟204的判斷結(jié)果,當(dāng)匹配到ARP表項(xiàng)時(shí),則提取該ARP表項(xiàng)中的IP地址,將該IP地址作為下一跳IP地址,與解析得到的目的IP地址生成IP路由表項(xiàng)。并且,匹配到的ARP表項(xiàng)由于與多個(gè)IP路由表項(xiàng)關(guān)聯(lián),因此每創(chuàng)建一個(gè)與該ARP表項(xiàng)關(guān)聯(lián)的IP路由表項(xiàng)時(shí),將該ARP表項(xiàng)的引用值加1,通過(guò)該引用值記錄與該ARP表項(xiàng)關(guān)聯(lián)的IP路由表項(xiàng)的數(shù)量。
[0036]步驟206:根據(jù)分配的IP地址和轉(zhuǎn)發(fā)參數(shù)生成ARP表項(xiàng),以及根據(jù)分配的IP地址和目的IP地址創(chuàng)建IP路由表項(xiàng),并設(shè)置該ARP表項(xiàng)的引用值為1,結(jié)束當(dāng)前流程。
[0037]在本發(fā)明的一個(gè)例子中,當(dāng)步驟203中判斷結(jié)果為未從ARP表中獲得表項(xiàng)標(biāo)識(shí)與查找標(biāo)識(shí)相同的ARP表項(xiàng),或者步驟204中判斷結(jié)果為未從獲得的ARP表項(xiàng)中查找到與報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng),則交換機(jī)除了兼容現(xiàn)有方式生成ARP表項(xiàng)和IP路由表項(xiàng)外,由于該ARP表項(xiàng)為新生成的ARP表項(xiàng),因此為該ARP表項(xiàng)設(shè)置引用值,并將引用值設(shè)為I,表示當(dāng)前有一個(gè)IP路由表項(xiàng)與該ARP表項(xiàng)關(guān)聯(lián)。
[0038]參見(jiàn)圖1不出的實(shí)現(xiàn)方式,由于IP路由表項(xiàng)與ARP表項(xiàng)對(duì)應(yīng),因此刪除一個(gè)IP路由表項(xiàng),直接刪除對(duì)應(yīng)的ARP表項(xiàng)即可,而由上述圖2實(shí)施例描述可知,該實(shí)施例中由于一個(gè)ARP表項(xiàng)可能對(duì)應(yīng)多個(gè)IP路由表項(xiàng),而為每個(gè)ARP表項(xiàng)設(shè)置的引用值記錄了與該ARP表項(xiàng)關(guān)聯(lián)的IP路由表項(xiàng)的數(shù)量,因此交換機(jī)可以對(duì)ARP表項(xiàng)的引用值進(jìn)行維護(hù),當(dāng)某個(gè)IP路由表項(xiàng)被刪除時(shí),則將該IP路由表項(xiàng)對(duì)應(yīng)的ARP表項(xiàng)中的引用值減1,當(dāng)某個(gè)ARP表項(xiàng)中的引用值減為O時(shí),說(shuō)明已經(jīng)沒(méi)有與該ARP表項(xiàng)關(guān)聯(lián)的IP路由表項(xiàng),因此刪除該ARP表項(xiàng)。
[0039]由上述實(shí)施例可見(jiàn),交換機(jī)解析控制器下發(fā)的流表項(xiàng)配置命令,獲得目的IP地址和報(bào)文轉(zhuǎn)發(fā)參數(shù)后,將至少一個(gè)報(bào)文轉(zhuǎn)發(fā)參數(shù)作為關(guān)鍵字計(jì)算查找標(biāo)識(shí),當(dāng)從ARP表中獲得表項(xiàng)標(biāo)識(shí)與查找標(biāo)識(shí)相同的ARP表項(xiàng),且從該獲得的ARP表項(xiàng)中查找與報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)時(shí),提取該ARP表項(xiàng)中的IP地址作為下一跳IP地址,與該目的IP地址生成IP路由表項(xiàng),由于可以不再為該流表項(xiàng)生成ARP表項(xiàng),因此節(jié)省了 ARP表項(xiàng)資源,減少了對(duì)交換機(jī)系統(tǒng)內(nèi)存的占用。
[0040]參見(jiàn)圖3,為應(yīng)用本發(fā)明實(shí)施例將流表項(xiàng)轉(zhuǎn)換為路由轉(zhuǎn)發(fā)表項(xiàng)的另一種實(shí)現(xiàn)方式的示意圖,該實(shí)現(xiàn)方式以采用通過(guò)哈希算法計(jì)算的哈希值進(jìn)行ARP表項(xiàng)查找為例進(jìn)行描述:
[0041]假設(shè)交換機(jī)接收到三個(gè)流表項(xiàng),其中流表項(xiàng)I的目的IP地址為“4.1.2.0/24”,流表項(xiàng)2的目的IP地址為“4.1.3.0/24”,流表項(xiàng)3的目的IP地址為“4.1.4.0/24。其中,流表項(xiàng)I和流表項(xiàng)2具有相同的目的MAC地址、出VLAN和出端口。
[0042]參見(jiàn)圖1示出的實(shí)現(xiàn)方式,在生成路由轉(zhuǎn)發(fā)表項(xiàng)時(shí),為每個(gè)流表項(xiàng)生成一個(gè)IP路由表項(xiàng)和對(duì)應(yīng)的ARP表項(xiàng),IP路由表項(xiàng)與ARP表項(xiàng)之間通過(guò)下一跳IP地址進(jìn)行關(guān)聯(lián)。如圖1中示例,下一跳IP地址為“0.0.0.1”和“0.0.0.2”的ARP表項(xiàng)具有相同的出端口、目的MAC地址和出VLAN,但生成了兩條ARP表項(xiàng),因此造成交換機(jī)上ARP表項(xiàng)資源的浪費(fèi)。
[0043]在圖3示出的本發(fā)明的一個(gè)實(shí)現(xiàn)方式中,在每創(chuàng)建一個(gè)新的ARP表項(xiàng)時(shí),可以根據(jù)該ARP表項(xiàng)中的目的MAC地址和出VLAN為關(guān)鍵字進(jìn)行哈希運(yùn)算,將運(yùn)算得到的哈希值作為該ARP表項(xiàng)的表項(xiàng)序號(hào);當(dāng)解析接收到的流表項(xiàng)配置命令后,則相應(yīng)將解析得到的目的MAC地址和出VLAN作為關(guān)鍵字計(jì)算哈希值,在查找到表項(xiàng)序號(hào)與該哈希值相同的ARP表項(xiàng)時(shí),如果進(jìn)一步從查找到的ARP表項(xiàng)中匹配到出端口、目的MAC地址和出VLAN與解析出的出端口、目的MAC地址和出VLAN相同的ARP表項(xiàng),則可以不生成新的ARP表項(xiàng),而僅生成IP路由表項(xiàng)。如圖3中示例,假設(shè)ARP表項(xiàng)的表項(xiàng)序號(hào)是以出端口和目的MAC為關(guān)鍵字進(jìn)行哈希運(yùn)算得到的值;在接收到流表項(xiàng)I后,生成對(duì)應(yīng)表項(xiàng)序號(hào)為“O”的ARP表項(xiàng)1,并在該ARP表項(xiàng)I中寫(xiě)入轉(zhuǎn)發(fā)參數(shù)“出端口 1、目的MACl和出VLANl ”,初始該ARP表項(xiàng)I的引用值為1,并且生成目的IP地址為“4.1.2.0/24”的IP路由表項(xiàng)I ;當(dāng)接收到流表項(xiàng)2后,以流表項(xiàng)2中的出端口 I和目的MACl為關(guān)鍵字計(jì)算哈希值為“O”,在已存在的ARP表項(xiàng)中查找到表項(xiàng)序號(hào)與哈希值“O”相同的ARP表項(xiàng)1,且流表項(xiàng)2中的出端口 1、目的MACl和出VLANl均與該ARP表項(xiàng)I中的參數(shù)一致,則不再生成新的ARP表項(xiàng),直接將該ARP表項(xiàng)I的引用值加1,并且生成目的IP地址為“4.1.3.0/24”的IP路由表項(xiàng)2。由此IP路由表項(xiàng)I和IP路由表項(xiàng)2均關(guān)聯(lián)到ARP表項(xiàng)1,從而節(jié)省了交換機(jī)上的ARP表項(xiàng)資源。
[0044]與前述路由轉(zhuǎn)發(fā)表項(xiàng)生成方法的實(shí)施例相對(duì)應(yīng),本公開(kāi)還提供了路由轉(zhuǎn)發(fā)表項(xiàng)生成裝置的實(shí)施例。
[0045]本發(fā)明路由轉(zhuǎn)發(fā)表項(xiàng)生成裝置的實(shí)施例可以應(yīng)用在SDN中的交換機(jī)上。裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在設(shè)備的CPU將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,如圖4所示,為本發(fā)明路由轉(zhuǎn)發(fā)表項(xiàng)生成裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖4所示的CPU、內(nèi)存以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的設(shè)備通常還可以包括其他硬件。
[0046]參見(jiàn)圖5,為本發(fā)明路由轉(zhuǎn)發(fā)表項(xiàng)生成裝置的實(shí)施例框圖,該實(shí)施例可以應(yīng)用在SDN中的交換機(jī)上。
[0047]該裝置包括:解析單元510、查找單元520和創(chuàng)建單元530。
[0048]其中,解析單元510,用于解析控制器下發(fā)的流表項(xiàng)配置命令,獲得目的IP地址和報(bào)文轉(zhuǎn)發(fā)參數(shù);
[0049]查找單元520,用于根據(jù)所述報(bào)文轉(zhuǎn)發(fā)參數(shù)查找ARP表;
[0050]創(chuàng)建單元530,用于當(dāng)查找到與所述報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)后,根據(jù)所述APR表項(xiàng)的IP地址與所述目的IP地址創(chuàng)建IP路由表項(xiàng)。
[0051]進(jìn)一步,所述裝置還可以包括:
[0052]維護(hù)單元540,用于當(dāng)所述ARP表項(xiàng)初始創(chuàng)建時(shí),設(shè)置所述ARP表項(xiàng)的引用值為I ;當(dāng)根據(jù)所述APR表項(xiàng)的下一跳IP地址與所述目的IP地址創(chuàng)建IP路由表項(xiàng)后,將所述ARP表項(xiàng)的引用值加I ;當(dāng)刪除所述IP路由表項(xiàng)后,將所述IP路由表項(xiàng)對(duì)應(yīng)的ARP表項(xiàng)中的引用值減I ;當(dāng)所述ARP表項(xiàng)的引用值為O時(shí),刪除所述ARP表項(xiàng)。
[0053]進(jìn)一步,所述創(chuàng)建單元530,還可以用于當(dāng)未查找到與所述報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)時(shí),根據(jù)分配的IP地址和所述轉(zhuǎn)發(fā)參數(shù)生成ARP表項(xiàng),并根據(jù)所述分配的IP地址和所述目的IP地址創(chuàng)建IP路由表項(xiàng)。
[0054]在一個(gè)實(shí)現(xiàn)方式中:
[0055]所述解析單元510獲得的報(bào)文轉(zhuǎn)發(fā)參數(shù)可以包括:目的MAC地址、出VLAN和出端Π ;
[0056]所述查找單元520可以包括(圖5中未示出):
[0057]計(jì)算子單元,用于將至少一個(gè)報(bào)文轉(zhuǎn)發(fā)參數(shù)作為關(guān)鍵字計(jì)算查找標(biāo)識(shí);
[0058]查找子單元,用于當(dāng)從所述ARP表中獲得表項(xiàng)標(biāo)識(shí)與所述查找標(biāo)識(shí)相同的ARP表項(xiàng)時(shí),從獲得的ARP表項(xiàng)中查找與所述報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)。
[0059]上述裝置中各個(gè)單元的功能和作用的實(shí)現(xiàn)過(guò)程具體詳見(jiàn)上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過(guò)程,在此不再贅述。
[0060]由上述實(shí)施例可見(jiàn),在解析控制器下發(fā)的流表項(xiàng)配置命令,獲得目的IP地址和報(bào)文轉(zhuǎn)發(fā)參數(shù)后,當(dāng)查找到與該報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)后,提取該ARP表項(xiàng)中的IP地址作為下一跳IP地址,與該目的IP地址生成IP路由表項(xiàng),由于可以不再為該流表項(xiàng)生成ARP表項(xiàng),因此節(jié)省了 ARP表項(xiàng)資源,減少了對(duì)交換機(jī)系統(tǒng)內(nèi)存的占用。
[0061]對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本公開(kāi)方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
[0062]本領(lǐng)域技術(shù)人員在考慮說(shuō)明書(shū)及實(shí)踐這里公開(kāi)的發(fā)明后,將容易想到本公開(kāi)的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本公開(kāi)的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開(kāi)的一般性原理并包括本公開(kāi)未公開(kāi)的本【技術(shù)領(lǐng)域】中的公知常識(shí)或慣用技術(shù)手段。說(shuō)明書(shū)和實(shí)施例僅被視為示例性的,本公開(kāi)的真正范圍和精神由下面的權(quán)利要求指出。
[0063]應(yīng)當(dāng)理解的是,本公開(kāi)并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本公開(kāi)的范圍僅由所附的權(quán)利要求來(lái)限制。
【權(quán)利要求】
1.一種路由轉(zhuǎn)發(fā)表項(xiàng)生成方法,應(yīng)用在軟件定義網(wǎng)絡(luò)SDN中的交換機(jī)上,其特征在于,所述方法包括: 解析控制器下發(fā)的流表項(xiàng)配置命令,獲得目的IP地址和報(bào)文轉(zhuǎn)發(fā)參數(shù); 根據(jù)所述報(bào)文轉(zhuǎn)發(fā)參數(shù)查找ARP表; 當(dāng)查找到與所述報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)后,根據(jù)所述APR表項(xiàng)的IP地址與所述目的IP地址創(chuàng)建IP路由表項(xiàng)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述報(bào)文轉(zhuǎn)發(fā)參數(shù)包括:目的MAC地址、出VLAN和出端口 ; 所述根據(jù)所述報(bào)文轉(zhuǎn)發(fā)參數(shù)查找ARP表包括: 將至少一個(gè)報(bào)文轉(zhuǎn)發(fā)參數(shù)作為關(guān)鍵字計(jì)算查找標(biāo)識(shí); 當(dāng)從所述ARP表中獲得表項(xiàng)標(biāo)識(shí)與所述查找標(biāo)識(shí)相同的ARP表項(xiàng)時(shí),從獲得的ARP表項(xiàng)中查找與所述報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 當(dāng)所述ARP表項(xiàng)初始創(chuàng)建時(shí),設(shè)置所述ARP表項(xiàng)的引用值為I ; 當(dāng)根據(jù)所述APR表項(xiàng)的下一跳IP地址與所述目的IP地址創(chuàng)建IP路由表項(xiàng)后,將所述ARP表項(xiàng)的引用值加I。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括: 當(dāng)刪除所述IP路由表項(xiàng)后,將所述IP路由表項(xiàng)對(duì)應(yīng)的ARP表項(xiàng)中的引用值減I ; 當(dāng)所述ARP表項(xiàng)的引用值為O時(shí),刪除所述ARP表項(xiàng)。
5.根據(jù)權(quán)利要求1至4任一所述的方法,其特征在于,還包括: 當(dāng)未查找到與所述報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)時(shí),根據(jù)分配的IP地址和所述轉(zhuǎn)發(fā)參數(shù)生成ARP表項(xiàng); 根據(jù)所述分配的IP地址和所述目的IP地址創(chuàng)建IP路由表項(xiàng)。
6.一種路由轉(zhuǎn)發(fā)表項(xiàng)生成裝置,所述裝置應(yīng)用在軟件定義網(wǎng)絡(luò)SDN中的交換機(jī)上,其特征在于,所述裝置包括: 解析單元,用于解析控制器下發(fā)的流表項(xiàng)配置命令,獲得目的ip地址和報(bào)文轉(zhuǎn)發(fā)參數(shù); 查找單元,用于根據(jù)所述報(bào)文轉(zhuǎn)發(fā)參數(shù)查找ARP表; 創(chuàng)建單元,用于當(dāng)查找到與所述報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)后,根據(jù)所述APR表項(xiàng)的IP地址與所述目的IP地址創(chuàng)建IP路由表項(xiàng)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述解析單元獲得的報(bào)文轉(zhuǎn)發(fā)參數(shù)包括:目的MAC地址、出VLAN和出端口; 所述查找單元包括: 計(jì)算子單元,用于將至少一個(gè)報(bào)文轉(zhuǎn)發(fā)參數(shù)作為關(guān)鍵字計(jì)算查找標(biāo)識(shí); 查找子單元,用于當(dāng)從所述ARP表中獲得表項(xiàng)標(biāo)識(shí)與所述查找標(biāo)識(shí)相同的ARP表項(xiàng)時(shí),從獲得的ARP表項(xiàng)中查找與所述報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 維護(hù)單元,用于當(dāng)所述ARP表項(xiàng)初始創(chuàng)建時(shí),設(shè)置所述ARP表項(xiàng)的引用值為I ;當(dāng)根據(jù)所述APR表項(xiàng)的下一跳IP地址與所述目的IP地址創(chuàng)建IP路由表項(xiàng)后,將所述ARP表項(xiàng)的引用值加I。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述維護(hù)單元,還用于當(dāng)刪除所述IP路由表項(xiàng)后,將所述IP路由表項(xiàng)對(duì)應(yīng)的ARP表項(xiàng)中的引用值減I ;當(dāng)所述ARP表項(xiàng)的引用值為O時(shí),刪除所述ARP表項(xiàng)。
10.根據(jù)權(quán)利要求6至9任一所述的裝置,其特征在于,還包括: 所述創(chuàng)建單元,還用于當(dāng)未查找到與所述報(bào)文轉(zhuǎn)發(fā)參數(shù)匹配的ARP表項(xiàng)時(shí),根據(jù)分配的IP地址和所述轉(zhuǎn)發(fā)參數(shù)生成ARP表項(xiàng),并根據(jù)所述分配的IP地址和所述目的IP地址創(chuàng)建IP路由表項(xiàng)。
【文檔編號(hào)】H04L12/741GK104184664SQ201410381354
【公開(kāi)日】2014年12月3日 申請(qǐng)日期:2014年8月5日 優(yōu)先權(quán)日:2014年8月5日
【發(fā)明者】周揚(yáng) 申請(qǐng)人:杭州華三通信技術(shù)有限公司