軟件定義網(wǎng)絡(luò)報文監(jiān)控方法和sdn控制器、交換設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種軟件定義網(wǎng)絡(luò)報文監(jiān)控方法和SDN控 制器、交換設(shè)備。
【背景技術(shù)】
[0002] SDN(Software Def ined Network,軟件定義網(wǎng)絡(luò))網(wǎng)絡(luò)中的拓撲由SDN控制器維 護,SDN交換設(shè)備之間的轉(zhuǎn)發(fā)路徑由SDN控制器根據(jù)拓撲計算得到,主機之間的轉(zhuǎn)發(fā)流表也 是由SDN控制器下發(fā)到指定的SDN交換設(shè)備上。SDN控制器也可以對某個主機進行實時的 流量監(jiān)控,只要將該主機發(fā)出的報文或者發(fā)送到該主機的報文封裝為SDN Packet-in報文 發(fā)送到SDN控制器即可,由SDN控制器統(tǒng)一解析報文內(nèi)容。也可以在SDN交換設(shè)備上部署 傳統(tǒng)的監(jiān)控協(xié)議(如基于采樣的流量監(jiān)控技術(shù)sFlow),由SDN交換設(shè)備上的監(jiān)控客戶端和 監(jiān)控服務(wù)器獨立進行報文交互,監(jiān)控客戶端和監(jiān)控服務(wù)器之間通過用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP)報文傳遞監(jiān)控數(shù)據(jù)包。
[0003] SDN交換設(shè)備將被監(jiān)控主機的數(shù)據(jù)報文封裝在Packet-in報文中上送SDN控制器 可以完成對主機的監(jiān)控,但是會占用SDN控制器的存儲和中央處理器(Central Processing Unit,CPU)資源,尤其在被監(jiān)控主機數(shù)量比較多時,SDN控制器的負擔就會過重,影響SDN網(wǎng) 絡(luò)的正常效率;直接在SDN交換設(shè)備上部署傳統(tǒng)的監(jiān)控協(xié)議需要在SDN交換設(shè)備上配置傳 統(tǒng)的路由協(xié)議,影響SDN控制器對網(wǎng)絡(luò)的完全控制,當主機在網(wǎng)絡(luò)中發(fā)生迀移時還需要重 新在接入交換設(shè)備上配置傳統(tǒng)的監(jiān)控協(xié)議,使用場景比較受限。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本發(fā)明提出了一種SDN網(wǎng)絡(luò)報文監(jiān)控方法和SDN控制器、交換設(shè)備,有 效解決了現(xiàn)有技術(shù)中SDN控制器存儲監(jiān)控數(shù)據(jù)導致的負擔過重、或依賴監(jiān)控協(xié)議實現(xiàn)監(jiān)控 控制的問題。
[0005] 本發(fā)明提出的技術(shù)方案是:
[0006] 一種SDN網(wǎng)絡(luò)報文監(jiān)控方法,該方法應(yīng)用于SDN網(wǎng)絡(luò),SDN網(wǎng)絡(luò)包括SDN控制器和 SDN交換設(shè)備,SDN交換設(shè)備支持多級流表,該方法包括:
[0007] SDN控制器確定鏡像隧道,該鏡像隧道是被監(jiān)控主機所在的源SDN交換設(shè)備與監(jiān) 控服務(wù)器所在的目的SDN交換設(shè)備之間的隧道;
[0008] 所述SDN控制器分別為所述鏡像隧道上的所述源SDN交換設(shè)備、所述目的SDN交 換設(shè)備創(chuàng)建并下發(fā)表ID為1的鏡像流表,使所述源SDN交換設(shè)備以及所述目的SDN交換設(shè) 備接收到所述鏡像流表后,分別根據(jù)表ID為1將鏡像流表保存在多級流表的第一級流表 中。
[0009] 一種SDN控制器,該SDN控制器所在的SDN網(wǎng)絡(luò)還包括SDN交換設(shè)備,SDN交換設(shè) 備支持多級流表,該SDN控制器包括:
[0010] 鏡像隧道確定模塊,用于確定鏡像隧道,鏡像隧道是被監(jiān)控主機所在的源SDN交 換設(shè)備與監(jiān)控服務(wù)器所在的目的SDN交換設(shè)備之間的隧道;
[0011] 流表創(chuàng)建模塊,用于分別為鏡像隧道上的源SDN交換設(shè)備、目的SDN交換設(shè)備創(chuàng)建 并下發(fā)表ID為1的鏡像流表,使源SDN交換設(shè)備以及目的SDN交換設(shè)備接收到鏡像流表后, 分別根據(jù)表ID為1將鏡像流表保存在多級流表的第一級流表中。
[0012] 一種SDN交換設(shè)備,該SDN交換設(shè)備支持多級流表,當所述SDN交換設(shè)備為SDN控 制器創(chuàng)建的鏡像隧道上的源SDN交換設(shè)備或目的SDN交換設(shè)備時,該設(shè)備包括:
[0013] 接收模塊,用于接收SDN控制器創(chuàng)建并下發(fā)的表ID為1的鏡像流表;
[0014] 存儲模塊,用于根據(jù)表ID為1將鏡像流表保存在多級流表的第一級流表中;
[0015] 接收模塊還用于,接收目的主機信息或源主機信息是被監(jiān)控主機的地址信息的原 始數(shù)據(jù)報文。
[0016] 綜上,本發(fā)明提出了一種SDN網(wǎng)絡(luò)報文監(jiān)控方法,SDN控制器在源SDN交換設(shè)備與 目的SDN交換設(shè)備之間建立鏡像隧道,當源SDN交換設(shè)備監(jiān)控到被監(jiān)控主機發(fā)出的原始數(shù) 據(jù)報文、或發(fā)送給被監(jiān)控主機的原始數(shù)據(jù)報文后,復制監(jiān)控到的原始數(shù)據(jù)報文,將復制的數(shù) 據(jù)報文進行封裝并添加鏡像標簽得到封裝報文,然后將攜帶鏡像標簽的封裝報文通過鏡像 隧道轉(zhuǎn)發(fā)給目的SDN交換設(shè)備,使得目的SDN交換設(shè)備剝離鏡像標簽并解封裝該封裝報文, 得到復制的數(shù)據(jù)報文,并將該復制的數(shù)據(jù)報文發(fā)送給監(jiān)控服務(wù)器,實現(xiàn)對被監(jiān)控主機的流 量監(jiān)控。該方法不需要占用SDN控制器的內(nèi)存和CPU資源,不會影響SDN控制器的工作效 率,也不必依賴監(jiān)控協(xié)議,能夠高效便捷的實現(xiàn)對被監(jiān)控主機的流量監(jiān)控。
【附圖說明】
[0017] 圖1為本發(fā)明實施例的流程圖;
[0018] 圖2為本發(fā)明方法實施例的OpenFlow網(wǎng)絡(luò)結(jié)構(gòu)圖;
[0019] 圖3為方法實施例的流程圖;
[0020] 圖4為本發(fā)明實施例的SDN控制器結(jié)構(gòu)圖;
[0021] 圖5為本發(fā)明實施例的SDN交換設(shè)備結(jié)構(gòu)圖。
【具體實施方式】
[0022] 現(xiàn)有技術(shù)SDN網(wǎng)絡(luò)中進行流量監(jiān)控時,一種方法通過將被監(jiān)控主機發(fā)出的原始數(shù) 據(jù)報文或者發(fā)送到被監(jiān)控主機的原始數(shù)據(jù)報文封裝為SDN Packet-in報文發(fā)送到SDN控制 器,由SDN控制器統(tǒng)一解析報文內(nèi)容;另一種方法是通過在SDN交換設(shè)備上部署傳統(tǒng)的監(jiān)控 協(xié)議,由SDN交換設(shè)備上的監(jiān)控客戶端和監(jiān)控服務(wù)器獨立進行報文交互。然而第一種方法 會占用SDN控制器的存儲和CPU資源,尤其在被監(jiān)控主機數(shù)量比較多時,SDN控制器的負擔 就會過重,影響SDN網(wǎng)絡(luò)的正常效率;第二種方法需要在SDN交換設(shè)備上配置傳統(tǒng)的路由協(xié) 議,影響SDN控制器對網(wǎng)絡(luò)的完全控制,當主機在網(wǎng)絡(luò)中發(fā)生迀移時還需要重新在接入交 換設(shè)備上配置傳統(tǒng)的監(jiān)控協(xié)議,使用場景比較受限。
[0023] 為解決上述技術(shù)問題,本發(fā)明提出一種SDN網(wǎng)絡(luò)報文監(jiān)控的方法,本發(fā)明實施例 的技術(shù)方案是:
[0024] 如圖1所示,本發(fā)明一種SDN網(wǎng)絡(luò)報文監(jiān)控的方法應(yīng)用于SDN控制器上,SDN控制 器執(zhí)行以下步驟:
[0025] 步驟101 :SDN控制器確定鏡像隧道,該鏡像隧道是被監(jiān)控主機所在的源SDN交換 設(shè)備與監(jiān)控服務(wù)器所在的目的SDN交換設(shè)備之間的隧道。
[0026] 本步驟中,SDN控制器將被監(jiān)控主機所在的SDN交換設(shè)備確定為源SDN交換設(shè)備, 將監(jiān)控服務(wù)器所在的SDN交換設(shè)備確定為目的SDN交換設(shè)備,并根據(jù)拓撲在源SDN交換設(shè) 備與目的SDN交換設(shè)備之間建立一條鏡像隧道,該鏡像隧道上除源SDN交換設(shè)備和目的SDN 交換設(shè)備外,還可能存在其他中間SDN交換設(shè)備。
[0027] 步驟102 :SDN控制器分別為鏡像隧道上的源SDN交換設(shè)備、目的SDN交換設(shè)備創(chuàng) 建并下發(fā)表ID為1的鏡像流表,使源SDN交換設(shè)備以及目的SDN交換設(shè)備接收到鏡像流表 后,分別根據(jù)表ID為1將鏡像流表保存在多級流表的第一級流表中。
[0028] 本步驟中,SDN控制器分別為鏡像隧道上的源SDN交換設(shè)備、目的SDN交換設(shè)備創(chuàng) 建并下發(fā)鏡像流表。
[0029] 具體地,SDN控制器為源SDN交換設(shè)備創(chuàng)建表ID為1的鏡像流表,該鏡像流表的 表ID為1,使得源SDN交換設(shè)備將該鏡像流表保存在多級流表的第一級流表中。該表ID為 1的鏡像流表的匹配項是被監(jiān)控主機的地址信息,動作項是復制原始數(shù)據(jù)報文、將復制的數(shù) 據(jù)報文進行