Sdn網(wǎng)絡(luò)中發(fā)送上送控制器協(xié)議報(bào)文的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及通信技術(shù)領(lǐng)域,特別是設(shè)及一種SDN網(wǎng)絡(luò)中發(fā)送上送控制器協(xié)議報(bào)文 的方法和裝置。
【背景技術(shù)】
[0002] 軟件定義網(wǎng)絡(luò)(SoftwareDefinedNetwork,SDN)是一種新型網(wǎng)絡(luò)架構(gòu),其核屯、思 想是分離網(wǎng)絡(luò)設(shè)備的控制層面與轉(zhuǎn)發(fā)層面,通過(guò)控制器對(duì)網(wǎng)絡(luò)流量進(jìn)行集中和靈活控制, 從而為核屯、網(wǎng)絡(luò)及應(yīng)用的創(chuàng)新提供良好的平臺(tái)。
[0003] 在基于化enFlow的SDN網(wǎng)絡(luò)中,所有的主機(jī)都連接到openflow交換機(jī),通過(guò) openflow交換機(jī)接入到SDN網(wǎng)絡(luò)。其中,主機(jī)在發(fā)送流量時(shí),首先通過(guò)openflow交換機(jī)將流 量通過(guò)上送控制器的協(xié)議報(bào)文,如packet-in報(bào)文,上送控制器,然后由控制器向openflow 交換機(jī)下發(fā)動(dòng)態(tài)流表,使得openflow交換機(jī)根據(jù)所述動(dòng)態(tài)流表轉(zhuǎn)發(fā)主機(jī)的流量。
[0004] 當(dāng)一臺(tái)個(gè)人電腦(記為PC1)需要和另一臺(tái)PC(記為PC2)通訊時(shí),PC1首先向 openflow交換機(jī)發(fā)送地址解析協(xié)議(ARP)報(bào)文,openflow交換機(jī)會(huì)將該ARP報(bào)文封裝成 packet-in報(bào)文并上送到控制器,控制器通過(guò)ARP代答的機(jī)制向openflow交換機(jī)發(fā)送控制 器下發(fā)協(xié)議報(bào)文,如packet-out報(bào)文,openflow交換機(jī)解封裝該packet-out報(bào)文得到ARP 回應(yīng)報(bào)文,將該ARP回應(yīng)報(bào)文發(fā)給PC1。
[0005]PC1得到該ARP回應(yīng)報(bào)文后,開始通過(guò)openflow交換機(jī)向PC2發(fā)送數(shù)據(jù)報(bào)文, openflow交換機(jī)將數(shù)據(jù)報(bào)文封裝成packet-in報(bào)文再上送到控制器,控制器計(jì)算出流表, 下發(fā)給openflow交換機(jī)。在openflow交換機(jī)得到該流表之前,PC1通過(guò)openflow交換機(jī) 發(fā)給PC2的所有數(shù)據(jù)報(bào)文都會(huì)封裝成packet-in報(bào)文上送到控制器,控制器再將收到的所 有的數(shù)據(jù)報(bào)文封裝成packet-out報(bào)文發(fā)給對(duì)端P2C所處的openflow交換機(jī),讓對(duì)端PC2 所處的openflow交換機(jī)將該些數(shù)據(jù)報(bào)文發(fā)給對(duì)端PC2,從而保證數(shù)據(jù)報(bào)文的不丟失。在 openflow交換機(jī)得到控制器下發(fā)的流表之后,openflow交換機(jī)按照該流表將PC1發(fā)給PC2 的流量直接轉(zhuǎn)發(fā)給PC2所處的openflow交換機(jī),由PC2所處的openflow交換機(jī)將該流量 發(fā)給PC2。
[0006] 在基于overlay的SDN網(wǎng)絡(luò)中,接入控制器的是開放虛擬交換機(jī)ODpenvSwitch, 0V巧,虛擬機(jī)(VM)作為主機(jī)通過(guò)0VS接入SDN網(wǎng)絡(luò)。其中,0VS處理報(bào)文的流程和上述的 openflow交換機(jī)處理的流程相同。
[0007] 可見,在基于OpenFlow和基于overlay的SDN網(wǎng)絡(luò)中,在openflow交換機(jī)或者0VS 該個(gè)節(jié)點(diǎn)上,當(dāng)其下面連接的PC或者VM較多時(shí),會(huì)有比較多的packet-in報(bào)文需要上送控 制器,該時(shí)控制器處理packet-in報(bào)文時(shí)延會(huì)比較長(zhǎng),導(dǎo)致PC或者VM并不能及時(shí)得到ARP 地址,openflow交換機(jī)或者0VS也不能及時(shí)得到轉(zhuǎn)發(fā)流表,該時(shí),PC會(huì)重新發(fā)報(bào)文申請(qǐng)ARP 地址,openflow交換機(jī)或者0VS也會(huì)將沒(méi)有得到流表的數(shù)據(jù)流報(bào)文繼續(xù)封裝成packet-in 報(bào)文上送控制器,該就形成了很多重復(fù)的packet-in報(bào)文上送到了控制器,而控制器需要 對(duì)每個(gè)packet-in報(bào)文進(jìn)行處理,又會(huì)加劇控制器的處理報(bào)文壓力。當(dāng)該些packet-in報(bào) 文達(dá)到了openflow交換機(jī)或者OVS上送packet-in報(bào)文的最大能力的時(shí)候,就會(huì)有很多的 有效的packet-in報(bào)文被丟棄,從而導(dǎo)致PC或者VM得不到ARP地址,openflow交換機(jī)或 者0VS也得不到轉(zhuǎn)發(fā)的流表,進(jìn)而導(dǎo)致用戶流量得不到響應(yīng)、流量不通。
[000引上述流量不通的情況已經(jīng)在現(xiàn)實(shí)組網(wǎng)中多次出現(xiàn),而且一旦發(fā)生,openflow交換 機(jī)或者0VS等交換節(jié)點(diǎn)后續(xù)被丟掉的諸如packet-in報(bào)文等上送控制器協(xié)議報(bào)文都會(huì)重新 生成,導(dǎo)致上送控制器協(xié)議報(bào)文越積越多,而控制器也需要重復(fù)處理很多相同的上送控制 器協(xié)議報(bào)文,最終導(dǎo)致整個(gè)openflow交換機(jī)或者0VS等交換節(jié)點(diǎn)完全轉(zhuǎn)發(fā)失敗。
【發(fā)明內(nèi)容】
[0009] 有鑒于此,本發(fā)明提出了一種SDN網(wǎng)絡(luò)中發(fā)送上送控制器協(xié)議報(bào)文的方法和裝 置,能夠提高上送控制器協(xié)議報(bào)文的有效性,減少由于大量無(wú)效上送控制器協(xié)議報(bào)文而導(dǎo) 致流量轉(zhuǎn)發(fā)失敗的情況。
[0010] 本發(fā)明提出的技術(shù)方案是:
[0011] 一種SDN網(wǎng)絡(luò)中發(fā)送上送控制器協(xié)議報(bào)文的方法,該方法包括:
[0012] 接收流量,將所述流量與流表項(xiàng)進(jìn)行匹配,其中,所述流表項(xiàng)包括控制流表項(xiàng);
[0013] 當(dāng)不存在與所述流量匹配的流表項(xiàng)且所述流量屬于預(yù)設(shè)報(bào)文類型時(shí),將所述流量 封裝在上送控制器協(xié)議報(bào)文中發(fā)給控制器,并生成與所述流量匹配的控制流表項(xiàng),其中所 述控制流表項(xiàng)的動(dòng)作為禁止將流量發(fā)給控制器;
[0014] 當(dāng)與所述流量匹配的流表項(xiàng)為控制流表項(xiàng)時(shí),根據(jù)匹配的控制流表項(xiàng),禁止將所 述流量發(fā)給控制器。
[0015] 一種SDN網(wǎng)絡(luò)中發(fā)送上送控制器協(xié)議報(bào)文的裝置,該裝置包括流表匹配模塊、流 表生成模塊和報(bào)文處理模塊;
[0016] 所述流表匹配模塊,用于接收流量,將所述流量與流表項(xiàng)進(jìn)行匹配,其中,所述流 表項(xiàng)包括控制流表項(xiàng);
[0017] 所述流表生成模塊,用于當(dāng)不存在與所述流量匹配的流表項(xiàng)且所述流量屬于預(yù)設(shè) 報(bào)文類型時(shí),將所述流量封裝在上送控制器協(xié)議報(bào)文中發(fā)給控制器,并生成與所述流量匹 配的控制流表項(xiàng),其中所述控制流表項(xiàng)的動(dòng)作為禁止將流量發(fā)給控制器;
[001引所述報(bào)文處理模塊,用于當(dāng)與所述流量匹配的流表項(xiàng)為控制流表項(xiàng)時(shí),根據(jù)匹配 的控制流表項(xiàng),禁止將所述流量發(fā)給控制器。
[0019] 由上述技術(shù)方案可見,本發(fā)明實(shí)施例中,通過(guò)在諸如交換機(jī)或0VS等交換節(jié)點(diǎn)上, 針對(duì)沒(méi)有匹配到流表項(xiàng)的流量執(zhí)行特殊的處理,從而提高上送控制器協(xié)議報(bào)文的有效性。
[0020] 具體地,所述特殊的處理包括;交換節(jié)點(diǎn)在沒(méi)有為接收的流量匹配到流表項(xiàng)時(shí),針 對(duì)預(yù)設(shè)報(bào)文類型的流量,不僅將該流量封裝成上送控制器協(xié)議報(bào)文并發(fā)給控制器,并且,進(jìn) 一步地,還生成一個(gè)特殊的流表項(xiàng),即生成控制流表項(xiàng),用于禁止將該流量發(fā)給控制器。
[0021] 可見,本發(fā)明通過(guò)上述特殊處理,使得交換節(jié)點(diǎn)對(duì)于同一個(gè)預(yù)設(shè)報(bào)文類型的流量, 在其控制流表項(xiàng)的有效期內(nèi),最多僅向控制器上送一次上送控制器協(xié)議報(bào)文,因此可W避 免交換節(jié)點(diǎn)在一段之間內(nèi)將多次收到的同一報(bào)文每次都發(fā)送上送控制器協(xié)議報(bào)文,因此能 夠減少無(wú)效上送控制器協(xié)議報(bào)文的數(shù)量、提高上送控制器協(xié)議報(bào)文的有效性,進(jìn)而減少由 于大量無(wú)效上送控制器協(xié)議報(bào)文而導(dǎo)致流量轉(zhuǎn)發(fā)失敗的情況。
【附圖說(shuō)明】
[0022] 圖1是本發(fā)明實(shí)施例提供的基于化enFlow或overlay的SDN網(wǎng)絡(luò)中發(fā)送上送控 制器的協(xié)議報(bào)文的方法的流程圖。
[0023] 圖2是本發(fā)明實(shí)施例提供的基于化enFlow或overlay的SDN網(wǎng)絡(luò)中發(fā)送上送控 制器的協(xié)議報(bào)文即packet-in報(bào)文的方法的詳細(xì)流程圖。
[0024] 圖3是本發(fā)明實(shí)施例提供的SDN網(wǎng)絡(luò)中發(fā)送上送控制器協(xié)議報(bào)文的裝置的結(jié)構(gòu)示 意圖。
[0025] 圖4是本發(fā)明實(shí)施例提供的包含發(fā)送上送控制器協(xié)議報(bào)文的裝置的交換設(shè)備的 硬件結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0026] 為了提高上送控制器的協(xié)議報(bào)文的有效性,減少由于大量無(wú)效上送控制器的協(xié)議 報(bào)文而導(dǎo)致控制器不能及時(shí)處理而使流量轉(zhuǎn)發(fā)失敗的情況,本發(fā)明