本發(fā)明涉及網(wǎng)絡(luò)流量監(jiān)控技術(shù)領(lǐng)域,更具體地說,涉及一種基于sdn的報文鏡像方法。
背景技術(shù):
軟件定義網(wǎng)絡(luò)(softwaredefinednetwork,簡稱sdn),是網(wǎng)絡(luò)一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),是網(wǎng)絡(luò)虛擬化的一種實現(xiàn)方式,其核心是通過將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分離開來,實現(xiàn)了網(wǎng)絡(luò)流量的靈活控制,使網(wǎng)絡(luò)作為管道變得更加智能。
端口鏡像技術(shù)是通過配置交換機或路由器,將一個或多個源端口的數(shù)據(jù)流量轉(zhuǎn)發(fā)到某一個指定端口來實現(xiàn)對網(wǎng)絡(luò)的監(jiān)聽,指定端口稱之為“鏡像端口”或“目的端口”。端口鏡像并不影響源端口和目的端口的報文交換,只是將所有進入和從源端口輸出的報文原樣復(fù)制了一份到目的端口,并且通過鏡像端口對網(wǎng)絡(luò)的流量進行監(jiān)控分析。在企業(yè)內(nèi)利用鏡像功能,可以很好地對企業(yè)內(nèi)部的網(wǎng)絡(luò)數(shù)據(jù)進行監(jiān)控管理,在網(wǎng)絡(luò)出故障的時候,可以快速地定位故障。
現(xiàn)有的端口鏡像技術(shù)存在一些缺陷。一方面,現(xiàn)有技術(shù)往往通過人工操作的方式對交換機進行相關(guān)的參數(shù)配置,才能實現(xiàn)對端口或者報文的鏡像。這種方式自動化程度較低,不能對鏡像端口進行靈活控制,且容易出現(xiàn)誤操作,增加了運維風(fēng)險。
另一方面,當(dāng)前流量鏡像是針對某一個端口來進行的,所有經(jīng)過該端口的流量都會被鏡像到監(jiān)控系統(tǒng)中。但是這些流量中許多報文都是監(jiān)控系統(tǒng)所不需要的,所以要對流量進行進一步的匹配、過濾后才能得到真正需要的報文數(shù)據(jù)。特別是在當(dāng)前的云計算環(huán)境下,一個交換機端口會承載許多虛擬機的通訊流量,但是監(jiān)控系統(tǒng)可能只是需要其中一臺虛擬機甚至僅是一個應(yīng)用所涉及的流量。如果將經(jīng)過該端口的所有流量都鏡像的話,不僅會增加網(wǎng)絡(luò)的負(fù)擔(dān),影響網(wǎng)絡(luò)的穩(wěn)定性,而且對監(jiān)控服務(wù)器的壓力也非常大。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種能夠克服上述缺陷、并實現(xiàn)較細(xì)粒度流量監(jiān)控的報文鏡像方法。
為實現(xiàn)上述目的,本發(fā)明提供一種技術(shù)方案如下:
一種基于sdn的報文鏡像方法,其中,sdn控制器與上層應(yīng)用、及至少一個數(shù)據(jù)交換機分別耦合,方法包括如下步驟:a)、上層應(yīng)用通過sdn控制器的第一北向接口向sdn控制器發(fā)送鏡像指令;b)、sdn控制器基于鏡像指令以及第一數(shù)據(jù)交換機發(fā)來的第一流表而生成第二流表;其中,第一數(shù)據(jù)交換機發(fā)起報文的傳輸,第一流表封裝報文,第二流表至少包括對應(yīng)于鏡像指令的動作命令;以及c)、第二數(shù)據(jù)交換機從第二流表中提取報文,并基于動作命令而將報文鏡像到指定結(jié)點。
優(yōu)選地,第一、第二流表采用openflow協(xié)議。
優(yōu)選地,第一、第二流表分別至少包括匹配域項、動作集合項,其中匹配域項用于對報文進行匹配,動作集合項包括用于控制數(shù)據(jù)交換機的動作的至少一個動作命令。
優(yōu)選地,第一北向接口由用戶進行編程配置。
本發(fā)明還提供一種網(wǎng)絡(luò)流量監(jiān)控管理系統(tǒng),至少與第一、第二數(shù)據(jù)交換機分別耦合,該系統(tǒng)包括:上層應(yīng)用控制單元,其通過sdn控制器的第一北向接口向sdn控制器發(fā)送鏡像指令;sdn控制器,其基于鏡像指令以及第一數(shù)據(jù)交換機發(fā)來的第一流表而生成第二流表;其中,第一數(shù)據(jù)交換機發(fā)起報文的傳輸,第一流表封裝報文,第二流表至少包括對應(yīng)于鏡像指令的動作命令,第二數(shù)據(jù)交換機從第二流表中提取報文,并基于動作命令而將報文鏡像到指定結(jié)點;以及監(jiān)控管理單元,其根據(jù)指定結(jié)點接收到的報文對網(wǎng)絡(luò)流量進行監(jiān)控管理。
本發(fā)明各實施例提供的報文鏡像方法不需要對數(shù)據(jù)交換機進行人工配置,而由sdn控制器實現(xiàn)對數(shù)據(jù)交換機的控制;就網(wǎng)絡(luò)流量監(jiān)控來說,該方法能夠聚焦于與特定端口、虛擬機甚至是特定應(yīng)用相對應(yīng)的報文,而將不需要監(jiān)控的報文排除在外,從而可以實現(xiàn)較細(xì)粒度的流量監(jiān)控,同時減輕了監(jiān)控服務(wù)器的負(fù)載。該方式實施簡單、便利,利于在行業(yè)內(nèi)推廣應(yīng)用。
附圖說明
圖1示出本發(fā)明第一實施例提供的基于sdn的報文鏡像方法的流程圖。
圖2示出本發(fā)明第二實施例提供的網(wǎng)絡(luò)流量監(jiān)控管理系統(tǒng)的模塊結(jié)構(gòu)示意圖。
具體實施方式
為便于說明,在本發(fā)明各實施例中,例示性地說明一個sdn控制器、以及第一、第二數(shù)據(jù)交換機,sdn控制器分別與第一、第二數(shù)據(jù)交換機在通信上耦合。但是,可以理解,根據(jù)特定的應(yīng)用場合,本發(fā)明可以在包括多個sdn控制器以及更多的數(shù)據(jù)交換機的情況下實現(xiàn),只要該多個sdn控制器以及該更多的數(shù)據(jù)交換機彼此耦合,并按照協(xié)定的協(xié)議來通信。
sdn北向接口是sdn控制器向上層業(yè)務(wù)應(yīng)用開放的接口,其目標(biāo)是使得業(yè)務(wù)應(yīng)用能夠便利地調(diào)用底層的網(wǎng)絡(luò)資源和能力。通過北向接口,網(wǎng)絡(luò)業(yè)務(wù)的開發(fā)者能以軟件編程的形式調(diào)用各種網(wǎng)絡(luò)資源。
sdn南向接口是sdn控制器向底層交換設(shè)備開放的接口,一方面通過上行通道對底層交換設(shè)備上報的信息進行監(jiān)控和統(tǒng)計,另一方面sdn控制器也利用南向接口的下行通道對下游網(wǎng)絡(luò)設(shè)備進行控制。
如圖1所示,本發(fā)明第一實施例提供一種基于sdn的報文鏡像方法,其包括如下各步驟。
步驟s10、上層應(yīng)用通過sdn控制器的第一北向接口向sdn控制器發(fā)送鏡像指令。
具體地,sdn控制器為上層應(yīng)用提供了封裝好的北向接口,通過調(diào)用這些北向接口,上層應(yīng)用可實現(xiàn)對網(wǎng)絡(luò)資源的調(diào)用、分配以及釋放等功能。對北向接口的調(diào)用則會影響sdn控制器通過南向接口協(xié)議對數(shù)據(jù)交換機下發(fā)相應(yīng)的控制策略。
根據(jù)該步驟s10,第一北向接口由用戶進行編程配置。
步驟s20、sdn控制器基于鏡像指令以及第一數(shù)據(jù)交換機發(fā)來的第一流表而生成第二流表。
其中,第一數(shù)據(jù)交換機發(fā)起報文的傳輸,第一流表封裝報文,第二流表至少包括對應(yīng)于鏡像指令的動作命令。該動作命令指示接收到第二流表的交換機如何進行報文鏡像,如下所述。
根據(jù)優(yōu)選實施方式,第一、第二流表采用openflow協(xié)議。具體地,openflow協(xié)議的報文結(jié)構(gòu)(以下簡稱流表)如下表所示。
matchfields:匹配域,對數(shù)據(jù)包進行匹配,匹配完成后方才執(zhí)行該流表中的動作;
counter:計數(shù)器,在說明書中沒有討論;
actions:動作集合,包括至少一個動作命令,以用于控制數(shù)據(jù)交換機的動作,如封裝/去封裝,多路徑轉(zhuǎn)發(fā),輸出到一個或幾個端口等等。
關(guān)于第二流表的生成,作為示例,在流表的動作集合中,可以在正常轉(zhuǎn)發(fā)動作后面加入將數(shù)據(jù)輸出到指定端口的命令:output。如將數(shù)據(jù)轉(zhuǎn)發(fā)到端口1(連接應(yīng)用的端口)和端口5(連接控制系統(tǒng)的端口),即可加入動作命令:output15;換言之,第二流表將包括對應(yīng)于鏡像指令的動作命令。
步驟s30、第二數(shù)據(jù)交換機從第二流表中提取報文,并基于動作命令而將報文鏡像到指定結(jié)點。
繼續(xù)上述示例,收到第二流表的數(shù)據(jù)交換機在解析第二流表之后,獲得動作命令output15,根據(jù)該命令第二數(shù)據(jù)交換機會將報文鏡像到端口5。
進一步地,監(jiān)控系統(tǒng)根據(jù)指定結(jié)點接收到的各個報文來對網(wǎng)絡(luò)流量進行監(jiān)控管理。這種監(jiān)控管理是以報文為單位來甄別進行的,而報文可對應(yīng)于特定端口、虛擬機甚至是特定應(yīng)用,將不需要監(jiān)控的報文排除在外,本發(fā)明可以實現(xiàn)較細(xì)粒度的流量監(jiān)控。
如圖2所示,本發(fā)明第二實施例提供一種網(wǎng)絡(luò)流量監(jiān)控管理系統(tǒng),其至少包括上層應(yīng)用控制單元101、sdn控制器102以及監(jiān)控管理單元103。該網(wǎng)絡(luò)流量監(jiān)控管理系統(tǒng)通過sdn控制器102與第一、第二數(shù)據(jù)交換機201、202在通信上耦合。其中,第一數(shù)據(jù)交換機201發(fā)起報文的傳輸,第二數(shù)據(jù)交換機202期望獲得報文,監(jiān)控管理單元103期望獲得報文鏡像以對網(wǎng)絡(luò)流量進行監(jiān)控。
具體地,上層應(yīng)用控制單元101通過sdn控制器102的第一北向接口向sdn控制器102發(fā)送鏡像指令。
sdn控制器102基于鏡像指令以及第一數(shù)據(jù)交換機201發(fā)來的第一流表而生成第二流表;第一流表封裝有待傳輸?shù)膱笪模诙鞅碇辽侔▽?yīng)于鏡像指令的動作命令,
收到第二流表后,第二數(shù)據(jù)交換機202從第二流表中提取報文,并基于動作命令而將報文鏡像到指定結(jié)點。
最后,監(jiān)控管理單元103根據(jù)指定結(jié)點接收到的報文對網(wǎng)絡(luò)流量進行監(jiān)控管理。
作為一種改進實施方式,sdn控制器102可向第一、第二數(shù)據(jù)交換機201、202下發(fā)控制策略,以指示數(shù)據(jù)交換機201、202執(zhí)行除了鏡像動作之外的其他動作。
根據(jù)優(yōu)選實施方式,該網(wǎng)絡(luò)流量監(jiān)控管理系統(tǒng)可以按照分布式系統(tǒng)來部署,例如,將上層應(yīng)用控制單元、sdn控制器設(shè)置于本地端,而將監(jiān)控管理單元設(shè)置于遠(yuǎn)程端。而第一、第二數(shù)據(jù)交換機201、202也可以設(shè)置于另一遠(yuǎn)程端。
進一步地,該網(wǎng)絡(luò)流量監(jiān)控管理系統(tǒng)還可以按照云計算方式來部署。
上述說明僅針對于本發(fā)明的優(yōu)選實施例,并不在于限制本發(fā)明的保護范圍。本領(lǐng)域技術(shù)人員可作出各種變形設(shè)計,而不脫離本發(fā)明的思想及附隨的權(quán)利要求。