本發明涉及計算機應用技術領域,特別涉及一種基于sdn框架的流表配置下發方法及系統。
背景技術:
隨著計算機技術以及集成電路技術的飛速發展,云計算憑借其在系統利用率高、人力和管理成本低以及靈活性和可擴展性強等方面表現出的優勢,已經成為目前企業it建設的新形態;但在網絡方面,傳統的網絡已經不能滿足數據中心網絡虛擬化的特性。
在云計算中,大量的采用和部署虛擬化是一個基本的技術模式。服務器虛擬化技術的廣泛部署,極大地增加了數據中心的計算密度;同時,為了實現業務的靈活性,部分虛擬機vm(virtualmachine)業務需要進行內外網通信,也就是進行南北向流量的互通。數據中心中東西向流量的處理可以通過分布式路由來進行流量的分布式處理解決流量單點集中的問題,但是目前南北向流量的處理依然存在這巨大的技術難度,一方面是因為流量的集中處理容易造成單點故障,另一方面其鏈路質量容易收到數據中心中虛擬機之間的競爭而下降,此外其靈活性的欠缺也給用戶帶來了巨大的不便。因此,這就為虛擬機通過浮動ip實現南北流量互通的設計帶來迫切的需求與巨大難題。
現有技術中,盡管數據中心中南北向流量可以通過虛擬交換機(openvswitch,ovs)實現,也就是通過虛擬交換機完成虛擬機的網絡地址轉換,利用虛擬交換機對流表的支持,用戶可以通過流表控制流量的抓發與報文的處理,但是用戶需要自己根據浮動ip配置虛擬交換機支持的流表,完成流表下發的過程,這無疑大大增加了用戶的學習成本與配置復雜性,不利于用戶體驗。因此,數據中心如何方便快捷的根據浮動ip配置虛擬交換機支持的流表,減少用戶的學習成本與配置復雜性,解決南北向流量的處理問題,提升用戶體驗,是現今急需解決的問題。
技術實現要素:
本發明的目的是提供一種基于sdn框架的流表配置下發方法及系統,以利用sdn(softwardefinenetwork,軟件定義網絡)這一新型網絡創新架構,自動配置并下發流表,減少用戶的學習成本與配置復雜性,提升用戶體驗。
為解決上述技術問題,本發明提供一種基于sdn框架的流表配置下發方法,包括:
接收浮動ip的配置信息;其中,所述配置信息包括所述浮動ip與對應的虛擬機的網卡id的綁定關系;
利用sdn框架根據所述配置信息判斷所述虛擬機是否運行;
若是,則配置并下發流表到所述虛擬機對應的虛擬交換機。
可選的,所述下發流表到所述虛擬機對應的虛擬交換機之后,還包括:
當所述虛擬機發送南北向的第一報文時,所述虛擬交換機根據所述流表將所述第一報文的源ip和源mac分別由所述虛擬機的ip和mac改為所述浮動ip和所述浮動ip對應的虛擬網關的mac;
當所述虛擬機接收南北向的第二報文時,所述虛擬交換機根據所述流表將所述第二報文的目的ip和目的mac分別由所述浮動ip和所述浮動ip對應的虛擬網關的mac改為所述虛擬機的ip和mac。
可選的,所述接收浮動ip的配置信息之后,還包括:
對所述配置信息進行合法性檢查。
可選的,該方法還包括:
利用所述sdn框架檢測所述虛擬機對應的網橋、所述虛擬機和所述浮動ip是否發生異常事件;
若是,則刪除所述異常事件對應的流表。
可選的,所述刪除所述異常事件對應的流表,包括:
所述浮動ip刪除時,判斷所述虛擬機是否已刪除;
若否,則刪除所述流表。
此外,本發明還提供了一種基于sdn框架的流表配置下發系統,包括:
接收模塊,用于接收浮動ip的配置信息;其中,所述配置信息包括所述浮動ip與對應的虛擬機的網卡id的綁定關系;
判斷模塊,用于利用sdn框架根據所述配置信息判斷所述虛擬機是否運行;
下發模塊,用于若所述虛擬機運行,則配置并下發流表到所述虛擬機對應的虛擬交換機。
可選的,該系統還包括:
第一轉換模塊,用于當所述虛擬機發送南北向的第一報文時,所述虛擬交換機根據所述流表將所述第一報文的源ip和源mac分別由所述虛擬機的ip和mac改為所述浮動ip和所述浮動ip對應的虛擬網關的mac;
第二轉換模塊,用于當所述虛擬機接收南北向的第二報文時,所述虛擬交換機根據所述流表將所述第二報文的目的ip和目的mac分別由所述浮動ip和所述浮動ip對應的虛擬網關的mac改為所述虛擬機的ip和mac。
可選的,所述接收模塊,包括:
檢查子模塊,用于對所述配置信息進行合法性檢查。
可選的,該系統還包括:
監測模塊,用于利用所述sdn框架檢測所述虛擬機對應的網橋、所述虛擬機和所述浮動ip中至少一項是否發生異常事件;
刪除模塊,用于若所述網橋、所述虛擬機和所述浮動ip中至少一項發生所述異常事件,則刪除所述異常事件對應的流表。
可選的,所述刪除模塊,包括:
判斷子模塊,用于所述浮動ip刪除時,判斷所述虛擬機是否已刪除;
刪除子模塊,用于若所述虛擬機已刪除,則刪除所述流表。
本發明所提供的一種基于sdn框架的流表配置下發方法,包括:接收浮動ip的配置信息;其中,所述配置信息包括所述浮動ip與對應的虛擬機的網卡id的綁定關系;利用sdn框架根據所述配置信息判斷所述虛擬機是否運行;若是,則配置并下發流表到所述虛擬機對應的虛擬交換機;
可見,本發明通過利用sdn框架根據配置信息在虛擬機運行的情況下,配置并下發流表到虛擬機對應的虛擬交換機,可以利用sdn框架的高效、可編程和擴展性好的特點,很大程度上降低了用戶的學習成本與配置復雜性,同時保證的極大的靈活性,從而使虛擬交換機可以根據流表進行報文處理,實現了虛擬機通過浮動ip進行南北向通信的功能,提升了用戶體驗。此外,本發明還提供了一種基于sdn框架的流表配置下發系統,同樣具有上述有益效果。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1為本發明實施例所提供的一種基于sdn框架的流表配置下發方法的流程圖;
圖2為本發明實施例所提供的另一種基于sdn框架的流表配置下發方法的流程圖;
圖3為本發明實施例所提供的另一種基于sdn框架的流表配置下發方法的邏輯架構示意圖;
圖4為本發明實施例所提供的一種基于sdn框架的流表配置下發系統的結構圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
請參考圖1,圖1為本發明實施例所提供的一種基于sdn框架的流表配置下發方法的流程圖。該方法可以包括:
步驟101:接收浮動ip的配置信息;其中,配置信息包括浮動ip與對應的虛擬機的網卡id的綁定關系。
可以理解的是,本步驟可以為通過與用戶進行交互的控制平面接收用戶發送的配置信息,也可以為通過網絡或其他接口接收用戶發送的配置信息。對于接收配置信息的具體方式,可以由設計人員根據實用場景和用戶需求自行設置,本實施例對此不受任何限制。對于控制平面的具體內容設置,也就是與用戶進行交互的界面的內容設置,可以由設計人員自行設置,本實施例對此不受任何限制。
需要說明的是,本步驟還可以包括對配置信息進行合法性檢查的步驟,也就是控制平面可以對配置信息中的參數進行合法性檢查的工作,進一步提升本實施所提供的方法的安全性。對于合法性檢查的具體過程,可以使用與現有技術相似的方式,也可以由設計人員自行設置其他方式,本實施例對此不做任何限制。
具體的,配置信息可以為用戶在控制平面配置的浮動ip與對應的虛擬機的網卡id的綁定關系,也可以為用戶在虛擬機創建浮動ip時,控制界面自動接收的浮動ip與虛擬機的網卡id的綁定關系,本實施例對此不受任何限制。對于配置信息的具體內容,可以由設計人員自行設置,只要可以包括浮動ip與對應的虛擬機的網卡id的綁定關系,本實施例對此同樣不做任何限制。
步驟102:利用sdn框架根據配置信息判斷虛擬機是否運行;若是,則進入步驟103。
可以理解的是,本步驟可以為利用sdn框架完成流表配置下發的觸發過程。對于本步驟的具體過程,可以為利用sdn框架根據配置信息判斷虛擬機是否運行,如當監聽到用戶配置浮動ip事件時,利用與sdn框架查詢虛擬機情況,判斷流表是否配置下發;也可以為虛擬機運行時利用sdn框架判斷虛擬機是否存在對應的配置信息,如當監聽到虛擬機運行的事件時判斷虛擬機網卡是否配置浮動ip來決定是否配置下發對應功能的流表。只要可以在配置信息存在且對應的虛擬機運行時,觸發步驟103利用sdn框架完成流表配置下發,對于本步驟具體的判斷過程可以由設計人員根據實用場景和用戶需求自行設置,本實施例對此不受任何限制。
需要說明的是,本實施例所提供的方法還可以包括利用sdn框架檢測虛擬機對應的網橋、虛擬機和浮動ip是否發生異常事件;若是,則刪除異常事件對應的流表的步驟,也就是流表回收的步驟。對于刪除流表的具體過程,也就是流表回收的具體過程,可以與上述觸發配置下發流表的過程相似,如虛擬機刪除時判斷對應的配置信息是否已經刪除,若刪除則說明流表已經刪除,不再重復刪除;浮動ip刪除時判斷虛擬機是否刪除,若虛擬機未刪除則刪除流表;也可以由設計人員自行設置。只要使用sdn框架提供的標準南向協議——ovsdb(openvswitchdatebase,虛擬交換機數據庫)檢測虛擬機對應的網橋、虛擬機和浮動ip產生的異常事件來進行老舊流表的回收,及時阻斷流量的錯誤封裝,對于刪除流表的具體過程,本實施例不做任何限制。
具體的,對于本步驟中虛擬機未運行的情況,可以由設計人員自行設置,如可以將配置信息保存,等待虛擬機運行或創建時再次進行判斷。本實施例對此不受任何限制。
步驟103:配置并下發流表到虛擬機對應的虛擬交換機。
其中,對于本步驟中利用sdn框架根據配置信息配置虛擬交換機支持的流表的具體過程,可以由設計人員根據實用場景和用戶需求自行設置,本實施例對此不受任何限制。
可以理解的是,本實施例所提供的方法還可以包括虛擬交換機根據下發的流表實現nat(networkaddresstranslation,網絡地址轉換)功能的步驟。如虛擬交換機將將虛擬機產生的南北向流量的源mac改為浮動ip對應的虛擬網關的mac,將源ip改為用戶配置的浮動ip,完成內網報文到外網(公網)報文的轉化并發送;當外網報文回送時將報文的目的ip改為虛擬機的ip,目的mac改為虛擬機的mac并發送到虛擬機中,完成外網報文到內網報文的轉換。對于虛擬交換機實現nat功能的具體方式,可以由設計人員自行設置,本實施例對此不受任何限制。
本實施例中,本發明實施例通過利用sdn框架根據配置信息在虛擬機運行的情況下,配置并下發流表到虛擬機對應的虛擬交換機,可以利用sdn框架的高效、可編程和擴展性好的特點,很大程度上降低了用戶的學習成本與配置復雜性,同時保證的極大的靈活性,從而使虛擬交換機可以根據流表進行報文處理,實現了虛擬機通過浮動ip進行南北向通信的功能,提升了用戶體驗。
請參考圖2和圖3,圖2為本發明實施例所提供的另一種基于sdn框架的流表配置下發方法的流程圖;圖3為本發明實施例所提供的另一種基于sdn框架的流表配置下發方法的邏輯架構示意圖。該方法可以包括:
步驟201:接收浮動ip的配置信息。
其中,本步驟與步驟101相似,在此不再贅述。
可以理解的是,本步驟可以為圖3中控制平面執行的接收用戶配置的過程。
步驟202:利用sdn框架根據配置信息判斷虛擬機是否運行;若是,則進入步驟203。
步驟203:配置并下發流表到虛擬機對應的虛擬交換機。
其中,步驟202和步驟203與步驟102和步驟103相似,在此不再贅述。
可以理解的是,步驟202和步驟203可以為圖3中sdn控制器執行的流表下發過程,異常處理過程可以按照上一實施例中闡述的流表回收的步驟進行。
步驟204:當虛擬機發送南北向的第一報文時,虛擬交換機根據流表將第一報文的源ip和源mac分別由虛擬機的ip和mac改為浮動ip和浮動ip對應的虛擬網關的mac。
其中,本步驟中的當虛擬機發送南北向的第一報文時,可以為當虛擬交換機接收虛擬機向外網發送的南北向的第一報文時,也就是虛擬機通過虛擬交換機向外網發送報文時,虛擬交換機可以通過本步驟改變報文的源ip和源mac,使虛擬機可以通過浮動ip向外網發送報文。
可以理解的是,本步驟中虛擬交換機可以根據流表的指導,將虛擬機產生的南北向的報文的源mac改為浮動ip對應的虛擬網關的mac,將源ip改為用戶配置的浮動ip,完成內網報文到外網報文的轉化并發送。對于虛擬交換機根據流表所執行的具體轉換過程,可以由設計人員自行設置,本實施例對此不受任何限制。
步驟205:當虛擬機接收南北向的第二報文時,虛擬交換機根據流表將第二報文的目的ip和目的mac分別由浮動ip和浮動ip對應的虛擬網關的mac改為虛擬機的ip和mac。
其中,本步驟中的當虛擬機接收南北向的第二報文時,可以為當虛擬交換機接收外網回送到對應的虛擬機的南北向的第二報文時,也就是外網通過虛擬交換機向虛擬機發送報文,虛擬機需要接收該報文時,虛擬交換機可以通過本步驟改變該報文的目的ip和目的mac,使虛擬機可以通過浮動ip接收外網發送報文。
可以理解的是,本步驟中虛擬交換機可以根據流表的指導,將外網回送給虛擬機對應的浮動ip的報文的目的ip改為虛擬機的ip,目的mac改為虛擬機的mac并發送到虛擬機中,完成外網報文到內網報文的轉換。對于虛擬交換機根據流表所執行的具體轉換過程,可以由設計人員自行設置,本實施例對此不受任何限制。
需要說明的是,步驟204和步驟205可以為圖3中computenode(計算節點)中的br-int中的虛擬交換機執行的流表處理和根據流表指導對vm(虛擬機)的報文進行轉發的過程。
本實施例中,本發明實施例通過虛擬交換機根據流表對第一報文的源ip和源mac的改變和對第二報文的目的ip和目的mac的改變,實現了nat功能,使虛擬機可以通過浮動ip實現與外網的通信,極大地提高了虛擬機報文的轉發速度,保證了關鍵虛擬機對外網訪問的質量,解決了在虛擬環境下大量虛擬機通過單點網關訪問公網時出現的資源競爭、鏈路質量不穩定的問題。
請參考圖4,圖4為本發明實施例所提供的一種基于sdn框架的流表配置下發系統的結構圖。該系統可以包括:
接收模塊100,用于接收浮動ip的配置信息;其中,配置信息包括浮動ip與對應的虛擬機的網卡id的綁定關系;
判斷模塊200,用于利用sdn框架根據配置信息判斷虛擬機是否運行;
下發模塊300,用于若虛擬機運行,則配置并下發流表到虛擬機對應的虛擬交換機。
可選的,該系統還可以包括:
第一轉換模塊,用于當虛擬機發送南北向的第一報文時,虛擬交換機根據流表將第一報文的源ip和源mac分別由虛擬機的ip和mac改為浮動ip和浮動ip對應的虛擬網關的mac;
第二轉換模塊,用于當虛擬機接收南北向的第二報文時,虛擬交換機根據流表將第二報文的目的ip和目的mac分別由浮動ip和浮動ip對應的虛擬網關的mac改為虛擬機的ip和mac。
可選的,接收模塊100,可以包括:
檢查子模塊,用于對配置信息進行合法性檢查。
可選的,該系統還可以包括:
監測模塊,用于利用sdn框架檢測虛擬機對應的網橋、虛擬機和浮動ip中至少一項是否發生異常事件;
刪除模塊,用于若網橋、虛擬機和浮動ip中至少一項發生異常事件,則刪除異常事件對應的流表。
可選的,刪除模塊,可以包括:
判斷子模塊,用于浮動ip刪除時,判斷虛擬機是否已刪除;
刪除子模塊,用于若虛擬機已刪除,則刪除流表。
本實施例中,本發明實施例通過下發模塊300利用sdn框架根據配置信息在虛擬機運行的情況下,配置并下發流表到虛擬機對應的虛擬交換機,可以利用sdn框架的高效、可編程和擴展性好的特點,很大程度上降低了用戶的學習成本與配置復雜性,同時保證的極大的靈活性,從而使虛擬交換機可以根據流表進行報文處理,實現了虛擬機通過浮動ip進行南北向通信的功能,提升了用戶體驗。
說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的系統而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(ram)、內存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術領域內所公知的任意其它形式的存儲介質中。
以上對本發明所提供的基于sdn框架的流表配置下發方法及系統進行了詳細介紹。本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護范圍內。