本發明涉及虛擬化技術領域,特別是涉及一種虛擬化網絡服務功能鏈的實現方法及裝置。
背景技術:
網絡服務功能鏈(networkservicefunctionchain)將網絡通信過程的各式各樣的網絡服務功能進行有序組合,并讓流量通過這些網絡服務功能。該網絡服務功能可以例如為防火墻以及nat等。
一般地,在數據中心環境下,往往會有網絡服務功能鏈的部署需求,當數據中心部署網絡服務功能鏈之后,會使得報文在數據中心傳遞的時候,能夠經過各種各樣的服務節點,保證安全、快速、穩定的網絡服務。
現有的網絡服務功能鏈一般是基于硬件設備實現的,其會使得網絡服務不夠靈活。
技術實現要素:
本發明的目的是提供一種虛擬化網絡服務功能鏈的實現方法及裝置,以解決現有基于硬件設備實現網絡服務功能鏈導致網絡服務靈活性較差的問題。
為解決上述技術問題,本發明提供一種虛擬化網絡服務功能鏈的實現方法,該方法包括:
接收虛擬機啟動后上報的虛擬機啟動信息,所述虛擬機啟動信息包括所述虛擬機的唯一id信息;
根據所述唯一id信息,查找出預綁定有流量導入策略的虛擬端口;
根據所述流量導入策略,下發openflow流表至所述虛擬機對應的交換機,以使所述交換機根據所述openflow流表將以預設格式封裝的報文導入預創建的網絡服務功能鏈。
可選地,所述根據所述唯一id信息,查找出預綁定有流量導入策略的虛擬端口包括:
將所述唯一id信息與所述虛擬機端口的id信息進行一一比對,查找出與所述唯一id信息相一致的所述虛擬端口。
可選地,在所述根據所述流量導入策略,下發openflow流表至所述虛擬機對應的交換機,以所述交換機根據所述openflow流表將以預設格式封裝的報文導入預創建的網絡服務功能鏈之后還包括:
接收所述虛擬機下線時上報的虛擬機下線信息;
根據所述虛擬機下線信息,刪除所述交換機內的所述openflow流表,并記錄所述openflow流表信息;
接收所述虛擬機重新上線時上報的虛擬機重新啟動信息;
根據所述虛擬機重新啟動信息,將所述openflow流表下發至所述虛擬機對應的第一交換機。
可選地,在所述接收虛擬機啟動后上報的虛擬機啟動信息,所述虛擬機啟動信息包括所述虛擬機的唯一id信息之前還包括:
配置生成所述網絡服務功能鏈;
配置所述網絡服務功能鏈所需的所述虛擬機;
將所述流量導入策略與所述虛擬端口進行綁定。
可選地,所述預設格式為nsh格式。
此外,本發明還提供了一種虛擬化網絡服務功能鏈的實現裝置,該裝置包括:
啟動信息接收模塊,用于接收虛擬機啟動后上報的虛擬機啟動信息,所述虛擬機啟動信息包括所述虛擬機的唯一id信息;
查找模塊,用于根據所述唯一id信息,查找出預綁定有流量導入策略的虛擬端口;
下發模塊,用于根據所述流量導入策略,下發openflow流表至所述虛擬機對應的交換機,以使所述交換機根據所述openflow流表將以預設格式封裝的報文導入預創建的網絡服務功能鏈。
可選地,所述查找模塊包括:
比對單元,用于將所述唯一id信息與所述虛擬機端口的id信息進行一一比對,查找出與所述唯一id信息相一致的所述虛擬端口。
可選地,還包括:
下線信息接收模塊,用于接收所述虛擬機下線時上報的虛擬機下線信息;
刪除模塊,用于根據所述虛擬機下線信息,刪除所述交換機內的所述openflow流表,并記錄所述openflow流表信息;
重新啟動信息接收模塊,用于接收所述虛擬機重新上線時上報的虛擬機重新啟動信息;
第一下發模塊,用于根據所述虛擬機重新啟動信息,將所述openflow流表下發至所述虛擬機對應的第一交換機。
可選地,還包括:
第一配置模塊,用于配置生成所述網絡服務功能鏈;
第二配置模塊,用于配置所述網絡服務功能鏈所需的所述虛擬機;
綁定模塊,用于將所述流量導入策略與所述虛擬端口進行綁定。
可選地,所述預設格式為nsh格式。
本發明所提供的一種虛擬化網絡服務功能鏈的實現方法及裝置,通過接收虛擬機啟動后上報的虛擬機啟動信息,虛擬機啟動信息包括虛擬機的唯一id信息;根據唯一id信息,查找出預綁定有流量導入策略的虛擬端口;根據流量導入策略,下發openflow流表至虛擬機對應的交換機,以使交換機根據openflow流表將以預設格式封裝的報文導入預創建的網絡服務功能鏈。本申請通過openflow流表,將報文導入到網絡服務功能鏈中,這樣網絡服務功能鏈中的服務節點可以對報文進行相應處理,以滿足不同場景的網絡功能需求,提高了網絡服務的靈活性;且利用openflow流表控制報文轉發,使控制和轉發分離,使得報文轉發簡單高效。
附圖說明
為了更清楚的說明本發明實施例或現有技術的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例所提供的虛擬化網絡服務功能鏈實現方法的一種具體實施方式的流程示意圖;
圖2為本發明實施例所提供的虛擬化網絡服務功能鏈的具體實現示意框圖;
圖3為本發明實施例所提供的虛擬化網絡服務功能鏈的實現裝置的結構框圖。
具體實施方式
為了使本技術領域的人員更好地理解本發明方案,下面結合附圖和具體實施方式對本發明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
請參見圖1,圖1為本發明實施例所提供的虛擬化網絡服務功能鏈實現方法的一種具體實施方式的流程示意圖,該方法包括以下步驟:
步驟101:接收虛擬機啟動后上報的虛擬機啟動信息,所述虛擬機啟動信息包括所述虛擬機的唯一id信息。
具體地,虛擬機在啟動之后,控制面會接收到虛擬機上報的虛擬機啟動事件,以感知虛擬機啟動事件。該虛擬機啟動事件包括有該虛擬機的唯一id。
作為一種具體實施方式,在上述接收虛擬機啟動后上報的虛擬機啟動信息,所述虛擬機啟動信息包括所述虛擬機的唯一id信息之前還可以包括:配置生成所述網絡服務功能鏈;配置所述網絡服務功能鏈所需的所述虛擬機;將所述流量導入策略與所述虛擬端口進行綁定。
具體地,控制面根據所接收到的配置指令,配置創建相應的網絡服務功能鏈;接著配置用于業務鏈處理的虛擬機;然后將虛擬機的各個流量導入策略與虛擬機的各個相應虛擬端口進行綁定。
網絡服務功能鏈可以包括由多種特定網絡功能、多個虛擬機以及多個虛擬交換機。
可以理解的是,上流量導入策略可以是指流量處理時采用的策略。
步驟102:根據所述唯一id信息,查找出預綁定有流量導入策略的虛擬端口。
控制面可以根據虛擬機啟動事件中的虛擬機唯一id,根據唯一id,匹配出該虛擬機對應的虛擬端口。
作為一種具體實施方式,上述根據所述唯一id信息,查找出預綁定有流量導入策略的虛擬端口的過程可以具體為:將所述唯一id信息與所述虛擬機端口的id信息進行一一比對,查找出與所述唯一id信息相一致的所述虛擬端口。
可以理解的是,虛擬機id和虛擬端口id是一一對應的,即當虛擬機id與對應的虛擬端口id是一致的。通過匹配出虛擬機對應的虛擬端口,以尋找出該虛擬機相應的流量導入策略。
步驟103:根據所述流量導入策略,下發openflow流表至所述虛擬機對應的交換機,以使所述交換機根據所述openflow流表將以預設格式封裝的報文導入預創建的網絡服務功能鏈。
具體地,控制面基于流量導入策略,在該虛擬機對應的虛擬交換機創建并下發相應的openflow流表;虛擬交換機根據openflow流表,將該虛擬機的報文進行封裝,具體可以采用nsh格式封裝報文;然后將封裝報文發送至網絡服務功能鏈中的各個網絡服務節點,進行相應網絡功能的處理,該網絡服務節點例如可以為lb負載均衡器、dip以及fw防火墻等。
為了更好地介紹虛擬化網絡服務功能鏈的具體實現過程,下面將結合圖2進行相應介紹,圖2為本發明實施例所提供的虛擬化網絡服務功能鏈的具體實現示意框圖。
如圖2所示,網絡服務功能鏈包括虛擬機1和虛擬機2,虛擬機1對應的交換機1,虛擬機2對應的交換機2,在交換機1和交換機2之間的lb均衡器、dip以及fw防火墻。該虛擬化網絡服務功能鏈基于openflow流表進行報文轉發過程具體可以為:在交換機1中創建并下發openflow流表,以nsh格式封裝報文;然后將封裝報文依次通過lb負載均衡器、dip以及fw防火器,以使各個網絡服務節點對報文作相應處理;封裝報文進入到交換機2時,在交換機2中創建big先發openflow流表,以使交換機2對接收到的封裝報文進行解封裝,送入虛擬機2,完成報文的轉發。
在虛擬機遷移時,可能需要配置新的網絡服務功能鏈,而為了簡便網絡服務功能鏈的配置工作,可以實現網絡服務功能鏈跟隨虛擬機遷移。
作為一種具體實施方式,在上述根據所述流量導入策略,下發openflow流表至所述虛擬機對應的交換機,以所述交換機根據所述openflow流表將以預設格式封裝的報文導入預創建的網絡服務功能鏈之后還可以包括:接收所述虛擬機下線時上報的虛擬機下線信息;根據所述虛擬機下線信息,刪除所述交換機內的所述openflow流表,并記錄所述openflow流表信息;接收所述虛擬機重新上線時上報的虛擬機重新啟動信息;根據所述虛擬機重新啟動信息,將所述openflow流表下發至所述虛擬機對應的第一交換機。
需要說明的是,上述第一交換機不同于上述交換機,即虛擬機重新上線后,其對應的虛擬機不再為原來的交換機。
具體地,控制面當接收到虛擬機下線信息時,會將虛擬機對應的虛擬機交互機中的相關openflow流表刪除,同時,控制面會記錄該虛擬機對應的功能流表信息;當重新感知到該虛擬機上線時,會根據之前所記錄的功能流表信息,下發類似的功能流表至該虛擬機對應的新的虛擬交換機,實現網絡服務功能鏈跟隨虛擬機遷移。
可以看出,實現網絡服務功能鏈跟隨虛擬機遷移,每次虛擬機重新上線時不用重新配置相應的網絡服務功能鏈,簡便了網絡服務功能鏈的實現過程。
本發明實施例所提供的虛擬化網絡服務功能鏈的實現方法,通過接收虛擬機啟動后上報的虛擬機啟動信息,虛擬機啟動信息包括虛擬機的唯一id信息;根據唯一id信息,查找出預綁定有流量導入策略的虛擬端口;根據流量導入策略,下發openflow流表至虛擬機對應的交換機,以使交換機根據openflow流表將以預設格式封裝的報文導入預創建的網絡服務功能鏈。該申請通過openflow流表,將報文導入到網絡服務功能鏈中,這樣網絡服務功能鏈中的服務節點可以對報文進行相應處理,以滿足不同場景的網絡功能需求,提高了網絡服務的靈活性;且利用openflow流表控制報文轉發,使控制和轉發分離,使得報文轉發簡單高效。
下面對本發明實施例提供的虛擬化網絡服務功能鏈的實現裝置進行介紹,下文描述的虛擬化網絡服務功能鏈的實現裝置與上文描述的虛擬化網絡服務功能鏈的實現方法可相互對應參照。
圖3為本發明實施例所提供的虛擬化網絡服務功能鏈的實現裝置的結構框圖,參照圖3虛擬化網絡服務功能鏈的實現裝置可以包括:
啟動信息接收模塊31,用于接收虛擬機啟動后上報的虛擬機啟動信息,虛擬機啟動信息包括所述虛擬機的唯一id信息;
查找模塊32,用于根據唯一id信息,查找出預綁定有流量導入策略的虛擬端口;
下發模塊33,用于根據流量導入策略,下發openflow流表至虛擬機對應的交換機,以使交換機根據openflow流表將以預設格式封裝的報文導入預創建的網絡服務功能鏈。
作為一種具體實施方式,上述查找模塊可以包括:
比對單元,用于將所述唯一id信息與虛擬機端口的id信息進行一一比對,查找出與唯一id信息相一致的虛擬端口。
作為一種具體實施方式,上述實現裝置還可以包括:
下線信息接收模塊,用于接收虛擬機下線時上報的虛擬機下線信息;
刪除模塊,用于根據虛擬機下線信息,刪除所述交換機內的openflow流表,并記錄openflow流表信息;
重新啟動信息接收模塊,用于接收虛擬機重新上線時上報的虛擬機重新啟動信息;
第一下發模塊,用于根據虛擬機重新啟動信息,將openflow流表下發至虛擬機對應的第一交換機。
作為一種具體實施方式,上述實現裝置還可以包括:
第一配置模塊,用于配置生成網絡服務功能鏈;
第二配置模塊,用于配置網絡服務功能鏈所需的虛擬機;
綁定模塊,用于將流量導入策略與虛擬端口進行綁定。
可選地,上述預設格式為nsh格式。
本發明實施例所提供的虛擬化網絡服務功能鏈的實現裝置,通過openflow流表,將報文導入到網絡服務功能鏈中,這樣網絡服務功能鏈中的服務節點可以對報文進行相應處理,以滿足不同場景的網絡功能需求,提高了網絡服務的靈活性;且利用openflow流表控制報文轉發,使控制和轉發分離,使得報文轉發簡單高效。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(ram)、內存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術領域內所公知的任意其它形式的存儲介質中。
以上對本發明所提供的虛擬化網絡服務功能鏈的實現方法及裝置進行了詳細介紹。本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護范圍內。