一種sdn網絡中準確轉發數據包的方法
【技術領域】
[0001] 本發明涉及信息安全技術領域,尤其涉及一種SDN網絡中準確轉發數據包的方 法。
【背景技術】
[0002] 軟件定義網絡(SoftwareDefinedNetwork,SDN),是一種新型網絡創新架構,通 過將網絡設備控制面與數據面分離開來,實現了網絡流量的靈活控制、網絡可編程,從而使 網絡作為管道變得更加智能。
[0003] 本專利改良的是SDN的南向部分,即控制器與交換機的協同工作。SDN交換機是 SDN網絡中負責具體數據轉發處理的設備。本質上看,傳統設備中無論是交換機還是路由 器,其工作原理都是在收到數據包時,將數據包中的某些特征域與設備自身存儲的一些表 項進行比對,當發現匹配時則按照表項的要求進行相應處理。SDN交換機也是類似的原理, 但是與傳統設備存在差異的是,設備中的各個表項并非是由設備自身根據周邊的網絡環境 在本地自行生成的,而是由遠程控制器統一下發的,因此各種復雜的控制邏輯(例如鏈路 發現、地址學習、路由計算等等)都無需在SDN交換機中實現。SDN交換機需要在遠程控制 器的管控下工作,與之相關的設備狀態和控制指令都需要經由SDN的南向接口傳達。
【發明內容】
[0004] 本發明的目的是為了解決現有技術中控制器向數據包預傳輸傳輸路徑上的交換 機群下發流表的延時問題而引發數據包未能按指定路徑傳輸,采用控制流表下發時間及流 表生存期的方案,實現控制器所設計的路由轉換所得的流表的下發能及時有效,保證準確 的按新設計的路由轉發至目的網元的目的。
[0005] 本發明所述的一種SDN網絡中準確轉發數據包的方法,針對控制器對交換機群下 發流表的延時問題而引發數據包未能按指定路徑傳輸的問題,采用了控制流表下發到不同 交換機的時間及修改下發到各交換機流表生存時間的方法,確保數據包到達某交換機之前 控制器為該數據包計算的路由所轉換的流表已成功部署到預到達的交換機上;從而確保在 SDN網絡中的數據包能準確轉發到目的地。具體流程為:
[0006] si.數據包傳輸至交換;
[0007]s2.交換機查找流表,若有匹配成功則直接轉發,若無則執行以下流程;
[0008] S3.交換機提取數據包的關鍵信息,并將此發送至控制器處理;
[0009] s4.控制器根據信息計算路由,假設傳輸路徑為S1|S2|... |Sn;
[0010] s5.控制器計算下發至各交換機的流表,包含特定的生存時間;
[0011] s6.控制器按路由反向順序下,即Sn|Sn-l|... |S1,發相應的流表給各交換機,同 時確保流表正確部署;
[0012] s7.數據包按控制器指定的路由傳輸。
[0013] 本發明技術方案帶來的有益效果:
[0014] SDN控制器根據計算出的路由向下頭交換機下發流表,可能出現由于數據包傳輸 到下一交換機所用時間t比流表從控制器下達到下一交換機的時間t2短的情況,這時數據 包的轉發是根據下一交換機原沖突的流表,而不是新計算的路徑。如圖2所示。
[0015] -種SDN網絡中準確轉發數據包的方法,重點解決對因下發流表不及時而導致的 數據包未能按指定路徑發送的問題進行修正,確保數據包到達某交換機之前控制器為該數 據包計算的路由所轉換的流表已成功部署到預到達的交換機上;解決控制器向數據包預傳 輸路徑上的交換機群下發流表的延時問題而引發數據包未能按指定路徑傳輸的問題。
【附圖說明】
[0016] 為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以 根據這些附圖獲得其它的附圖。
[0017] 圖1是本發明方法的工作原理圖;
[0018] 圖2是本發明出錯示意圖;
【具體實施方式】
[0019] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他 實施例,都屬于本發明保護的范圍。
[0020] 本發明所述的一種SDN網絡中準確轉發數據包的方法,采用了控制流表下發到不 同交換機的時間及修改下發到各交換機流表生存時間的方法,確保數據包到達某交換機之 前控制器為該數據包計算的路由所轉換的流表已成功部署到預到達的交換機上。一種SDN 網絡中準確轉發數據包的方法工作原理如圖1所示:
[0021] si.數據包傳輸至交換;
[0022] s2.交換機查找流表,若有匹配成功則直接轉發,若無則執行以下流程;
[0023]S3.交換機提取數據包的關鍵信息,并將此發送至控制器處理;
[0024]s4.控制器根據信息計算路由,假設傳輸路徑為S」S2|. . . |Sn;
[0025]s5.控制器計算下發至各交換機的流表,包含特定的生存時間;
[0026]s6.控制器按路由反向順序下,即Sn|Snl|... |Si,發相應的流表給各交換機,同時 確保流表正確部署;
[0027]s7.數據包按控制器指定的路由傳輸。
[0028] 其中,針對s5控制器計算下發至各交換機的流表,包含特定的生存時間,假設下 發至交換機Si的流表的生存時間為ti:
[0029] (5a)控制器根據交換機提取數據包的關鍵信息計算下發至各交換機的原始流 表;
[0030] (5b)i= 0 ;
[0031] (5c)若i>n,跳出流程(6),執行流程(7);否則執行以下流程;
[0032]若hard_timeout= 0且idle_timeout= 0,此流表為長期有效的,無需進行處理, 跳出此流程,進入流程(5d);若hard_timeout= 0且idle_timeout! = 0,拋出異常,跳 出此流程,從流程(5a)重新執行;進行路由時間的調整,即對于Si計算路由時間的調整值 Ati':
[0034] 進行流表下達時間調整,即對于Si計算流表下達時間調整值Δti:
[0038]調整最終的hard_timeout和idle_timeout的值,即hard_timeout=hard_ timeout+Δt';+Δt;,即idle_timeout=idle_timeout+Δt' ;+Δt;;
[0039] (5d)i=i+1,轉入流程(5c)執行。
[0040]說明:
[0041] Px_y為使用ping命令從網元x到網元y得到反饋的時間;
[0042] tp為控制器收到交換機反饋回來命令執行完畢的OFPT_BARRIER_REPLY反饋到向 下一交換機下發流表及〇FPT_BARRIER_REQUEST命令完成的平均時間,這個值由組織在實 際生產環境中預先定義;
[0043]td叢為交換機收到從控制器下發的流表到成功部署所用的時間,主要由交換機的 類型而定,通常可忽略不計。
[0044] 針對s6做出的實施方式:
[0045] (6a)i=η;
[0046] (6b)若i〈0,跳出流程(6),執行流程(7);否則執行以下流程;
[0047] (6c)控制器將相應的流表fl〇Wl下發給交換機S1;
[0048] (6d)控制器下發OFPT_BARRIER_REQUEST給交換機Si;
[0049] (6e)若交換機Si響應時間超過T_或未能返回OFPT_BARRIER_REPLY,則說明流表 下發失敗,此時返回流程(5)重新執行;否則說明流表成功部署在交換機Si上;
[0050] (6f)i=n-1,轉入流程(6b)執行。
[0051] 說明:T_為等待交換機響應的最大超時時間值。
[0052] 以上對本發明實施例所提供的一種SDN網絡中準確轉發數據包的方法進行了詳 細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說 明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據 本發明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不 應理解為對本發明的限制。
【主權項】
1. 一種SDN網絡中準確轉發數據包的方法,其特征在于,采用控制流表下發到不同交 換機的時間及修改下發到各交換機流表生存時間的方法,確保數據包到達某交換機之前控 制器為該數據包計算的路由所轉換的流表已成功部署到預到達的交換機上,確保在SDN網 絡中的數據包能準確轉發到目的地,具體流程為: si.數據包傳輸至交換機; s2.交換機查找流表,若有匹配成功則直接轉發,若無則執行以下流程; S3.交換機提取數據包的關鍵信息,并將此發送至控制器處理;s4.控制器根據信息計算路由,假設傳輸路徑為S」S2|... |Sn; s5.控制器計算下發至各交換機的流表,包含特定的生存時間; s6.控制器按路由反向順序下,即Sn |Sni|. . . |Si,發相應的流表給各交換機,同時確保 流表正確部署; s7.數據包按控制器指定的路由傳輸。2. 根據權利要求1所述的產品,其特征在于,控制器計算下發至各交換機的流表,為長 期有效的,無需進行處理,跳出此流程,進入下一個交換機的處理流程;若此流程的處理過 程中拋出異常,則重新執行此流程。3. 根據權利要求1所述的產品,其特征在于,控制器將相應的流表flowi下發給交換機 S1;控制器下發OFPT_BARRIER_REQUEST給交換機S1;若交換機Si響應時間超過T_或未能 返回OFPT_BARRIER_REPLY,則說明流表下發失敗,此時返回流程重新執行;否則說明流表 成功部署在交換機Si上。
【專利摘要】本發明公開了一種SDN網絡中準確轉發數據包的方法,該方法針對控制器對交換機群下發流表的延時問題而引發數據包未能按指定路徑傳輸的問題,采用了控制流表下發到不同交換機的時間及修改下發到各交換機流表生存時間的方法,確保數據包到達某交換機之前控制器為該數據包計算的路由所轉換的流表已成功部署到預到達的交換機上;從而確保在SDN網絡中的數據包能準確轉發到目的地。
【IPC分類】H04L12/721
【公開號】CN105357119
【申請號】CN201510716491
【發明人】楊育斌, 程麗明, 柯宗貴
【申請人】藍盾信息安全技術股份有限公司
【公開日】2016年2月24日
【申請日】2015年10月28日