控制器、服務(wù)節(jié)點和數(shù)據(jù)包轉(zhuǎn)發(fā)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及控制器、服務(wù)節(jié)點和數(shù)據(jù)包轉(zhuǎn)發(fā)方法。
【背景技術(shù)】
[0002]在固定或移動寬帶接入領(lǐng)域及數(shù)據(jù)中心應(yīng)用中,會存在很多基于4層到7層的增值業(yè)務(wù)處理,包括:防病毒、防火墻、應(yīng)用緩存和加速、網(wǎng)絡(luò)地址轉(zhuǎn)換(Network AddressTranslat1n,NAT)地址轉(zhuǎn)換等增值業(yè)務(wù)處理功能。通常如圖1所示,在固定或移動用戶接入設(shè)備后面串接提供上述增值業(yè)務(wù)處理功能的增值業(yè)務(wù)處理節(jié)點。在實際應(yīng)用中,部分數(shù)據(jù)流如僅視頻或Web訪問業(yè)務(wù)流才需要應(yīng)用緩存和加速。但在圖1所示組網(wǎng)技術(shù)中,所有的業(yè)務(wù)流都需要流經(jīng)串接的多個增值業(yè)務(wù)處理節(jié)點,不管這些數(shù)據(jù)流是否需要進行相應(yīng)的增值業(yè)務(wù)處理。此方式對增值業(yè)務(wù)處理節(jié)點的處理容量要求大,導(dǎo)致不必要的網(wǎng)絡(luò)設(shè)備投資;同時,也會增加網(wǎng)絡(luò)中的故障點,某個增值業(yè)務(wù)設(shè)備出現(xiàn)故障,會導(dǎo)致整體業(yè)務(wù)流中斷和故障。
[0003]為解決上述問題,業(yè)界提出了配置“業(yè)務(wù)鏈”的概念,業(yè)務(wù)鏈包括某個數(shù)據(jù)流所需經(jīng)過的增值業(yè)務(wù)處理節(jié)點的序列。比如,業(yè)務(wù)鏈一:防病毒節(jié)點、防火墻節(jié)點、NAT地址轉(zhuǎn)換節(jié)點;業(yè)務(wù)鏈二:應(yīng)用緩存和加速節(jié)點、防火墻節(jié)點、NAT地址轉(zhuǎn)換節(jié)點;業(yè)務(wù)鏈三:防火墻節(jié)點、NAT地址轉(zhuǎn)換節(jié)點。對應(yīng)不同業(yè)務(wù)鏈的不同數(shù)據(jù)流只需流經(jīng)相應(yīng)的服務(wù)節(jié)點(服務(wù)節(jié)點即:增值業(yè)務(wù)處理節(jié)點)即可。
[0004]采用業(yè)務(wù)鏈技術(shù)的一個典型的網(wǎng)絡(luò)架構(gòu)如圖2所示,網(wǎng)絡(luò)中通常包括:業(yè)務(wù)協(xié)同層、分類器、交換機、控制器、服務(wù)節(jié)點等多個部件,各部件功能列舉如下:
[0005]業(yè)務(wù)協(xié)同層:運營商的操作維護人員通過業(yè)務(wù)協(xié)同層配置業(yè)務(wù)鏈,以及進入各業(yè)務(wù)鏈的數(shù)據(jù)流的類型。通常,配置業(yè)務(wù)鏈時,需要配置該業(yè)務(wù)鏈上的服務(wù)節(jié)點的序列和該業(yè)務(wù)鏈對應(yīng)的數(shù)據(jù)流的類型,數(shù)據(jù)流的類型的分類方法依據(jù)場景而異。業(yè)務(wù)協(xié)同層根據(jù)配置的業(yè)務(wù)鏈的信息(比如:業(yè)務(wù)鏈標識、服務(wù)節(jié)點的序列和該業(yè)務(wù)鏈對應(yīng)的數(shù)據(jù)流的類型)配置控制器,并將數(shù)據(jù)流的類型與業(yè)務(wù)鏈的對應(yīng)關(guān)系發(fā)送至分類器。
[0006]分類器:將數(shù)據(jù)流按照預(yù)先配置好的規(guī)則分類,屬于某種類型的數(shù)據(jù)流會被導(dǎo)入該類型對應(yīng)的業(yè)務(wù)鏈,發(fā)往該業(yè)務(wù)鏈上的第一個服務(wù)節(jié)點;
[0007]控制器:根據(jù)業(yè)務(wù)協(xié)同層配置的業(yè)務(wù)鏈的信息,向相關(guān)交換機下發(fā)流表項,以配置業(yè)務(wù)鏈的數(shù)據(jù)轉(zhuǎn)發(fā)路徑,通常,流表項中包括入端口標識、業(yè)務(wù)鏈標識、源IP地址、目的IP地址、協(xié)議類型、源端口號、目的端口號、執(zhí)行的操作中的一項或多項信息。其中,控制器的邏輯可以通過軟件定義網(wǎng)絡(luò)(Software Defined Network, SDN)控制器實現(xiàn)。
[0008]交換機:可為物理交換機或虛擬交換機。交換機根據(jù)控制器配置的流表項轉(zhuǎn)發(fā)由各端口收到的數(shù)據(jù)包;
[0009]服務(wù)節(jié)點:對收到的數(shù)據(jù)包進行業(yè)務(wù)處理,處理完后將數(shù)據(jù)包發(fā)送出去。
[0010]圖2中包含兩條業(yè)務(wù)鏈:業(yè)務(wù)鏈I和業(yè)務(wù)鏈2。業(yè)務(wù)鏈I的服務(wù)節(jié)點的序列包括服務(wù)節(jié)點bl-cl-el,數(shù)據(jù)流流經(jīng)業(yè)務(wù)鏈I時,會串行依次被服務(wù)節(jié)點bl、cl和el處理;業(yè)務(wù)鏈2的服務(wù)節(jié)點的序列包括服務(wù)節(jié)點al-dl,數(shù)據(jù)流流經(jīng)業(yè)務(wù)鏈2時,會串行依次被服務(wù)節(jié)點al和dl處理,服務(wù)節(jié)點al、bl連接交換機1,服務(wù)節(jié)點cl、dl和el連接交換機2。
[0011]業(yè)務(wù)鏈中的數(shù)據(jù)流會被全部轉(zhuǎn)發(fā)到業(yè)務(wù)鏈上的服務(wù)節(jié)點,服務(wù)節(jié)點將處理完的數(shù)據(jù)包發(fā)出,交換機會將其轉(zhuǎn)發(fā)到下一個服務(wù)節(jié)點。很多過濾型的服務(wù)節(jié)點,比如:防火墻節(jié)點、入侵檢測節(jié)點、防病毒節(jié)點,有時只需要檢查數(shù)據(jù)流中前面幾個數(shù)據(jù)包,就可以確定該數(shù)據(jù)流后續(xù)的數(shù)據(jù)包可以通過或者禁止通過。但目前,該數(shù)據(jù)流后續(xù)的數(shù)據(jù)包仍需要經(jīng)過該過濾型的服務(wù)節(jié)點,由于后續(xù)數(shù)據(jù)包仍需要該過濾性的服務(wù)節(jié)點處理,因此數(shù)據(jù)包的處理效率低。
[0012]綜上,現(xiàn)有采用業(yè)務(wù)鏈技術(shù)的網(wǎng)絡(luò)中,數(shù)據(jù)流的所有數(shù)據(jù)包都需要經(jīng)過過濾型的服務(wù)節(jié)點,數(shù)據(jù)包處理效率低。
【發(fā)明內(nèi)容】
[0013]本發(fā)明實施例提供控制器、服務(wù)節(jié)點和數(shù)據(jù)包轉(zhuǎn)發(fā)方法,用以解決采用業(yè)務(wù)鏈技術(shù)的網(wǎng)絡(luò)中,數(shù)據(jù)流的所有數(shù)據(jù)包都需要經(jīng)過過濾型的服務(wù)節(jié)點,數(shù)據(jù)包處理效率低的問題。
[0014]第一方面,本發(fā)明實施例提供一種控制器,包括:
[0015]接收模塊,用于接收M個服務(wù)節(jié)點中的第一服務(wù)節(jié)點發(fā)送的上報信息,所述上報信息用于指示同一組數(shù)據(jù)流中的第一數(shù)據(jù)流的變更的后續(xù)處理動作,其中,所述同一組數(shù)據(jù)流對應(yīng)一條業(yè)務(wù)鏈,所述業(yè)務(wù)鏈指示所述同一組數(shù)據(jù)流中的每個數(shù)據(jù)流需要經(jīng)過的所述M個服務(wù)節(jié)點組成的序列,所述M為大于等于I的自然數(shù);
[0016]處理模塊,用于根據(jù)所述上報信息,在所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點上重新配置第二流表,其中,所述第二服務(wù)節(jié)點為所述第一服務(wù)節(jié)點在所述業(yè)務(wù)鏈上的前一個服務(wù)節(jié)點,所述第二流表用于指示所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者所述第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點依照所述第一數(shù)據(jù)流的變更的后續(xù)處理動作轉(zhuǎn)發(fā)所述第一數(shù)據(jù)流的后續(xù)數(shù)據(jù)包。
[0017]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,所述處理模塊還用于:在所述接收模塊接收第一服務(wù)節(jié)點發(fā)送的上報信息之前,
[0018]根據(jù)所述業(yè)務(wù)鏈,確定所述同一組數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則,其中,所述M個服務(wù)節(jié)點對應(yīng)N個交換節(jié)點,所述第一轉(zhuǎn)發(fā)規(guī)則包含N個第一流表,每個交換節(jié)點對應(yīng)一個第一流表,所述N為大于等于I的自然數(shù);
[0019]在所述每個交換節(jié)點上配置所述每個交換節(jié)點對應(yīng)的第一流表,其中,所述每個交換節(jié)點被配置的第一流表用于指示所述每個交換節(jié)點依照所述第一轉(zhuǎn)發(fā)規(guī)則轉(zhuǎn)發(fā)所述同一組數(shù)據(jù)流中的每個數(shù)據(jù)流。
[0020]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述處理模塊還用于:在所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點上重新配置第二流表之后,
[0021]配置所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者所述第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點上的流表的優(yōu)先級,其中,所述第二流表的優(yōu)先級高于所述第一流表。
[0022]結(jié)合第一方面、第一方面的第一種可能的實現(xiàn)方式或第一方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述接收模塊具體用于:
[0023]接收所述第一服務(wù)節(jié)點發(fā)送的所述第一數(shù)據(jù)流的特征信息以及所述第一數(shù)據(jù)流的變更的后續(xù)處理動作指示。
[0024]結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述第一數(shù)據(jù)流的變更的后續(xù)處理動作指示為:所述第一數(shù)據(jù)流的后續(xù)數(shù)據(jù)包繞過所述第一服務(wù)節(jié)占.V,
[0025]所述處理模塊具體用于:
[0026]根據(jù)所述第一數(shù)據(jù)流的特征信息確定所述業(yè)務(wù)鏈,從所述業(yè)務(wù)鏈上確定第三服務(wù)節(jié)點,所述第三服務(wù)節(jié)點為所述第一服務(wù)節(jié)點在所述業(yè)務(wù)鏈上的后一個服務(wù)節(jié)點;
[0027]在所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者所述第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點上重新配置所述第二流表,其中,所述第二流表包含至少一個新流表項,所述新流表項包括所述第一數(shù)據(jù)流的特征信息、入端口和出端口,其中,所述出端口配置為所述第三服務(wù)節(jié)點對應(yīng)的交換節(jié)點的端口。
[0028]結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述第一數(shù)據(jù)流的變更的后續(xù)處理動作指示丟棄所述第一數(shù)據(jù)流的后續(xù)數(shù)據(jù)包;
[0029]所述處理模塊具體用于:在所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者所述第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點上重新配置所述第二流表,其中所述第二流表指示丟棄所述第一數(shù)據(jù)流的后續(xù)數(shù)據(jù)包。
[0030]第二方面,本發(fā)明實施例提供一種服務(wù)節(jié)點,包括:
[0031]接收模塊,用于接收第一數(shù)據(jù)流的數(shù)據(jù)包并進行處理;
[0032]發(fā)送模塊,用于在確定對所述第一數(shù)據(jù)流的后續(xù)處理動作發(fā)生變更時,向控制器發(fā)送上報信息,所述上報信息用于指示所述第一數(shù)據(jù)流的變更的后續(xù)處理動作。
[0033]結(jié)合第二方面,在第一種可能的實現(xiàn)方式中,所述上報信息包括所述第一數(shù)據(jù)流的特征信息以及所述第一數(shù)據(jù)流的變更的后續(xù)處理動作指示。
[0034]結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述第一數(shù)據(jù)流的變更的后續(xù)處理動作指示為:所述第一數(shù)據(jù)流的后續(xù)數(shù)據(jù)包繞過所述第一服務(wù)節(jié)點或者丟棄所述第一數(shù)據(jù)流的后續(xù)數(shù)據(jù)包。
[0035]第三方面,本發(fā)明實施例提供一種數(shù)據(jù)包轉(zhuǎn)發(fā)方法,包括:
[0036]接收M個服務(wù)節(jié)點中的第一服務(wù)節(jié)點發(fā)送的上報信息,所述上報信息用于指示同一組數(shù)據(jù)流中的第一數(shù)據(jù)流的變更的后續(xù)處理動作,其中,所述同一組數(shù)據(jù)流對應(yīng)一條業(yè)務(wù)鏈,所述業(yè)務(wù)鏈指示所述同一組數(shù)據(jù)流中的每個數(shù)據(jù)流需要經(jīng)過的所述M個服務(wù)節(jié)點組成的序列,所述M為大于等于I的自然數(shù);
[0037]根據(jù)所述上報信息,在所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點上重新配置第二流表,其中,所述第二服務(wù)節(jié)點為所述第一服務(wù)節(jié)點在所述業(yè)務(wù)鏈上的前一個服務(wù)節(jié)點,所述第二流表用于指示所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者所述第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點依照所述第一數(shù)據(jù)流的變更的后續(xù)處理動作轉(zhuǎn)發(fā)所述第一數(shù)據(jù)流的后續(xù)數(shù)據(jù)包。
[0038]結(jié)合第三方面,在第一種可能的實現(xiàn)方式中,所述接收第一服務(wù)節(jié)點發(fā)送的上報信息之前,還包括:
[0039]根據(jù)所述業(yè)務(wù)鏈,確定所述同一組數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則,其中,所述M個服務(wù)節(jié)點對應(yīng)N個交換節(jié)點,所述第一轉(zhuǎn)發(fā)規(guī)則包含N個第一流表,每個交換節(jié)點對應(yīng)一個第一流表,所述N為大于等于I的自然數(shù);
[0040]在所述每個交換節(jié)點上配置所述每個交換節(jié)點對應(yīng)的第一流表,其中,所述每個交換節(jié)點被配置的第一流表用于指示所述每個交換節(jié)點依照所述第一轉(zhuǎn)發(fā)規(guī)則轉(zhuǎn)發(fā)所述同一組數(shù)據(jù)流中的每個數(shù)據(jù)流。
[0041]結(jié)合第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,在所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點上重新配置第二流表之后,還包括:
[0042]配置所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者所述第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點上的流表的優(yōu)先級,其中,所述第二流表的優(yōu)先級高于所述第一流表。
[0043]結(jié)合第三方面、第三方面的第一種可能的實現(xiàn)方式或第三方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,接收所述M個服務(wù)節(jié)點中的第一服務(wù)節(jié)點發(fā)送的上報信息包括:
[0044]接收所述第一服務(wù)節(jié)點發(fā)送的所述第一數(shù)據(jù)流的特征信息以及所述第一數(shù)據(jù)流的變更的后續(xù)處理動作指示。
[0045]結(jié)合第三方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述第一數(shù)據(jù)流的變更的后續(xù)處理動作指示為:所述第一數(shù)據(jù)流的后續(xù)數(shù)據(jù)包繞過所述第一服務(wù)節(jié)占.V,
[0046]根據(jù)所述上報信息,在所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點上重新配置第二流表包括:
[0047]根據(jù)所述第一數(shù)據(jù)流的特征信息確定所述業(yè)務(wù)鏈,從所述業(yè)務(wù)鏈上確定第三服務(wù)節(jié)點,所述第三服務(wù)節(jié)點為所述第一服務(wù)節(jié)點在所述業(yè)務(wù)鏈上的后一個服務(wù)節(jié)點;
[0048]在所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者所述第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點上重新配置所述第二流表,其中,所述第二流表包含至少一個新流表項,所述新流表項包括所述第一數(shù)據(jù)流的特征信息、入端口和出端口,其中,所述出端口配置為所述第三服務(wù)節(jié)點對應(yīng)的交換節(jié)點的端口。
[0049]結(jié)合第三方面的第三種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述第一數(shù)據(jù)流的變更的后續(xù)處理動作指示丟棄所述第一數(shù)據(jù)流的后續(xù)數(shù)據(jù)包;
[0050]根據(jù)所述上報信息,在所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者第二服務(wù)節(jié)點對應(yīng)的交換節(jié)點上重新配置第二流表包括:
[0051]在所述第一服務(wù)節(jié)點對應(yīng)的交換節(jié)點或者所