本發(fā)明涉及通信領域,尤其涉及一種數(shù)據(jù)傳輸方法、虛擬網(wǎng)絡管理裝置及數(shù)據(jù)傳輸系統(tǒng)。
背景技術:
隨著云計算技術的發(fā)展,數(shù)據(jù)中心近年來得到高速的發(fā)展,數(shù)據(jù)中心的規(guī)模越來越大,承載的業(yè)務越來越多,因而數(shù)據(jù)中心的通信數(shù)據(jù)量也越來越大。數(shù)據(jù)中心的通信包括東西向通信和南北向通信。其中東西向通信是指數(shù)據(jù)中心的內(nèi)部通信,南北向通信是指數(shù)據(jù)中心和外部網(wǎng)絡之間的通信。
圖1為現(xiàn)有技術中數(shù)據(jù)中心內(nèi)虛擬網(wǎng)絡之間進行通信的示意圖,其中,數(shù)據(jù)中心包括計算節(jié)點和網(wǎng)絡節(jié)點,計算節(jié)點1包括虛擬機(英文全稱:Virtual Machine,英文簡稱:VM)1和虛擬機2,計算節(jié)點2包括虛擬機3,其中虛擬機1和虛擬機3屬于虛擬網(wǎng)絡1,虛擬機2屬于虛擬網(wǎng)絡2。虛擬機通過計算節(jié)點內(nèi)的虛擬機交換機(英文全稱:Virtual Switch,英文簡稱:VS)進行數(shù)據(jù)交換。
結合圖1,傳統(tǒng)數(shù)據(jù)中心的通信方式中,通信數(shù)據(jù)通過路由器進行集中式轉發(fā),即虛擬網(wǎng)絡1和虛擬網(wǎng)絡2間的東西向通信流量需要經(jīng)過網(wǎng)絡節(jié)點1上的路由器進行轉發(fā),虛擬網(wǎng)絡1和數(shù)據(jù)中心外部用戶的通信流量也需要經(jīng)過網(wǎng)絡節(jié)點1上的路由器完成與用戶邊緣(英文全稱:Customer Edge,英文簡稱:CE)路由器之間的轉發(fā)。
集中式轉發(fā)的處理方案中,隨著通信數(shù)據(jù)量的增加,路由器的工作負荷不斷增大,路由器的處理能力逐漸成為提高通信效率的瓶頸,制約著網(wǎng)絡規(guī)模,因此對通信數(shù)據(jù)進行分布式轉發(fā)的通信方案,成為云計算技術發(fā)展的新方向。
現(xiàn)有技術已經(jīng)能夠提供對東西向通信數(shù)據(jù)進行分布式轉發(fā)的解決方案,然而對于南北向通信數(shù)據(jù)的分布式轉發(fā),目前還沒有徹底的解決方案。
具體的,數(shù)據(jù)中心的南北向通信分為三種方式:
1)浮動網(wǎng)絡互連協(xié)議(英文全稱:Internet Protocol,英文簡稱:IP)地址方式南北向通信:數(shù)據(jù)中心的虛擬機作為客戶機-服務器通信模式的服務器端,配置公網(wǎng)地址(浮動IP),外部用戶通過公網(wǎng)地址訪問數(shù)據(jù)中心內(nèi)的VM。
2)直連網(wǎng)絡方式南北向通信:數(shù)據(jù)中心的VM作為客戶端或者服務器,配置私網(wǎng)地址,通過虛擬專用網(wǎng)絡(英文全稱:Virtual Private Network,英文簡稱:VPN)和外部分支機構或遠程用戶通信。
3)源地址轉換(英文全稱:Source Network Address Translation,英文簡稱:SNAT)方式南北向通信:數(shù)據(jù)中心的多個VM通過SNAT共享一個公網(wǎng)IP地址,作為客戶機訪問外部網(wǎng)絡上的服務器。
現(xiàn)有技術中的云計算平臺,提供了對上述第一種南北向通信方式的分布式解決方案,然而其它兩種方式的南北向通信數(shù)據(jù)還完全依賴現(xiàn)有的集中式處理方案實現(xiàn)轉發(fā)。受網(wǎng)絡節(jié)點上路由器處理能力的制約,當直連網(wǎng)絡方式南北向通信流量較大,或者SNAT方式南北向通信流量較大時,易導致數(shù)據(jù)轉發(fā)效率低下,通信時延大的問題。
技術實現(xiàn)要素:
本發(fā)明的實施例提供一種數(shù)據(jù)傳輸方法、虛擬網(wǎng)絡管理裝置及數(shù)據(jù)傳輸系統(tǒng),能夠提供對直連網(wǎng)絡方式南北向通信的分布式解決方案,提高數(shù)據(jù)轉發(fā)效率,減少通信時延。
為達到上述目的,本發(fā)明的實施例采用如下技術方案:
第一方面,一種數(shù)據(jù)傳輸方法,包括:
獲取虛擬網(wǎng)絡的網(wǎng)絡標識信息,所述網(wǎng)絡標識信息包括所述虛擬網(wǎng)絡的子網(wǎng)信息,所述子網(wǎng)信息用于標識所述虛擬網(wǎng)絡的子網(wǎng),所述虛擬網(wǎng)絡的子網(wǎng)包括第一子網(wǎng);
獲取路由器信息,所述路由器信息用于指示路由器與所述虛擬網(wǎng)絡的子網(wǎng)之間的連接狀態(tài),以及所述路由器與外部網(wǎng)絡之間的連接狀態(tài);
獲取虛擬機信息,所述虛擬機信息用于指示虛擬機所連接的子網(wǎng);
當確定所述虛擬機所連接的子網(wǎng)為所述第一子網(wǎng),且所述第一子網(wǎng)與所述路由器連接,且所述路由器與所述外部網(wǎng)絡連接時,將所述網(wǎng)絡標識信息、所述路由器信息以及所述虛擬機信息發(fā)送至所述虛擬機所在的計算節(jié)點,以指示所述計算節(jié)點創(chuàng)建網(wǎng)關,并對所述網(wǎng)關進行配置,所述網(wǎng)關用于對虛擬專用網(wǎng)絡VPN報文進行轉發(fā)。
結合第一方面,在第一種可能的實現(xiàn)方式中,所述對所述網(wǎng)關進行配置,包括:
根據(jù)所述網(wǎng)絡標識信息為所述網(wǎng)關添加下行接口,所述下行接口的網(wǎng)絡互連協(xié)議IP地址為所述第一子網(wǎng)的網(wǎng)關地址;
為所述網(wǎng)關添加上行接口,所述上行接口為所述外部網(wǎng)絡的接口,用于與用戶邊緣CE路由器進行VPN報文轉發(fā);
根據(jù)所述網(wǎng)絡標識信息為所述網(wǎng)關設置轉發(fā)策略,所述轉發(fā)策略包括:從所述虛擬機接收到的VPN報文,下一跳地址為所述CE路由器的下行接口的地址;從所述CE路由器的下行接口接收到的VPN報文,目的地址為所述虛擬機的地址。
結合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述方法還包括:
創(chuàng)建路由信息發(fā)布模塊,通過所述路由信息發(fā)布模塊向所述CE路由器發(fā)布所述虛擬機的路由信息,以便于所述CE路由器維護更新CE路由表,所述CE路由表記錄的內(nèi)容包括從所述外部網(wǎng)絡接收到的VPN報文,下一跳地址為所述網(wǎng)關上行接口的地址。
結合第一方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述創(chuàng)建路由信息發(fā)布模塊,包括:
創(chuàng)建路由信息發(fā)布器實例,為所述路由信息發(fā)布器實例配置獨立的地址空間,并將所述路由信息發(fā)布器實例與路由代理連接,所述路由信息發(fā)布器實例用于通過動態(tài)路由協(xié)議向所述CE路由器上對應的路由器實例發(fā)送所述虛擬機的路由信息。
結合第一方面的第二種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述通過所述路由信息發(fā)布模塊向所述CE路由器動態(tài)發(fā)布所述虛擬機的路由信息,包括:
在所述虛擬機創(chuàng)建、遷移或者撤銷之后,通過所述路由信息發(fā)布模塊向所述CE路由器發(fā)布更新的所述虛擬機的路由信息。
結合第一方面至第一方面的第四種可能的實現(xiàn)方式中的任一種,在第五種可能的實現(xiàn)方式中,所述方法還包括:
獲取更新的路由器信息,根據(jù)所述更新的路由器信息,當所述第一子網(wǎng)與所述路由器之間的連接斷開時,或者所述路由器與所述外部網(wǎng)絡之間的連接斷開時,撤銷所述網(wǎng)關;
或者,從所述計算節(jié)點獲取更新的虛擬機信息,根據(jù)所述更新的虛擬機信息,當所述虛擬機與所述第一子網(wǎng)之間的連接斷開時,撤銷所述網(wǎng)關。
第二方面,一種虛擬網(wǎng)絡管理裝置,包括:
虛擬網(wǎng)絡管理模塊,用于獲取虛擬網(wǎng)絡的網(wǎng)絡標識信息,所述網(wǎng)絡標識信息包括所述虛擬網(wǎng)絡的子網(wǎng)信息,所述子網(wǎng)信息用于標識所述虛擬網(wǎng)絡的子網(wǎng),所述虛擬網(wǎng)絡的子網(wǎng)包括第一子網(wǎng);
網(wǎng)絡節(jié)點管理模塊,用于獲取路由器信息,所述路由器信息用于指示路由器與所述虛擬網(wǎng)絡的子網(wǎng)之間的連接狀態(tài),以及所述路由器與外部網(wǎng)絡之間的連接狀態(tài);
計算節(jié)點管理模塊,用于獲取虛擬機信息,所述虛擬機信息用于指示虛擬機所連接的子網(wǎng);
當所述計算節(jié)點管理模塊確定所述虛擬機所連接的子網(wǎng)為所述第一子網(wǎng),且所述第一子網(wǎng)與所述路由器連接,且所述路由器與所述外部網(wǎng)絡連接時,將所述網(wǎng)絡標識信息、所述路由器信息以及所述虛擬機信息發(fā)送至所述虛擬機所在的計算節(jié)點,以指示所述計算節(jié)點創(chuàng)建網(wǎng)關,并對所述網(wǎng)關進行配置,所述網(wǎng)關用于對虛擬專用網(wǎng)絡VPN報文進行轉發(fā)。
結合第二方面,在第一種可能的實現(xiàn)方式中,所述計算節(jié)點管理模塊,具體用于,
根據(jù)所述網(wǎng)絡標識信息為所述網(wǎng)關添加下行接口,所述下行接口的網(wǎng)絡互連協(xié)議IP地址為所述第一子網(wǎng)的網(wǎng)關地址;
為所述網(wǎng)關添加上行接口,所述上行接口為所述外部網(wǎng)絡的接口,用于與用戶邊緣CE路由器進行VPN報文轉發(fā);
根據(jù)所述網(wǎng)絡標識信息為所述網(wǎng)關設置轉發(fā)策略,所述轉發(fā)策略包括:從所述虛擬機接收到的VPN報文,下一跳地址為所述CE路由器的下行接口的地址;從所述CE路由器的下行接口接收到的VPN報文,目的地址為所述虛擬機的地址。
結合第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述網(wǎng)絡節(jié)點管理模塊,還用于創(chuàng)建路由信息發(fā)布模塊,通過所述路由信息發(fā)布模塊向所述CE路由器發(fā)布所述虛擬機的路由信息,以便于所述CE路由器維護更新CE路由表,所述CE路由表記錄的內(nèi)容包括從所述外部網(wǎng)絡接收到的VPN報文,下一跳地址為所述網(wǎng)關上行接口的地址。
結合第二方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述網(wǎng)絡節(jié)點管理模塊,具體用于創(chuàng)建路由信息發(fā)布器實例,為所述路由信息發(fā)布器實例配置獨立的地址空間,并將所述路由信息發(fā)布器實例與路由代理連接,所述路由信息發(fā)布器實例用于通過動態(tài)路由協(xié)議向所述CE路由器上對應的路由器實例發(fā)送所述虛擬機的路由信息。
結合第二方面的第二種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述網(wǎng)絡節(jié)點管理模塊,具體用于在所述虛擬機創(chuàng)建、遷移或者撤銷之后,通過所述路由信息發(fā)布模塊向所述CE路由器發(fā)布更新的所述虛擬機的路由信息。
結合第二方面至第二方面的第四種可能的實現(xiàn)方式中的任一種,在第五種可能的實現(xiàn)方式中,所述網(wǎng)絡節(jié)點管理模塊,還用于獲取更新的路由器信息;
所述計算節(jié)點管理模塊,還用于根據(jù)所述更新的路由器信息,當所述第一子網(wǎng)與所述路由器之間的連接斷開時,或者所述路由器與所述外部網(wǎng)絡之間的連接斷開時,撤銷所述網(wǎng)關;
所述計算節(jié)點管理模塊,還用于從所述計算節(jié)點獲取更新的虛擬機信息;
所述計算節(jié)點管理模塊,還用于根據(jù)所述更新的虛擬機信息,當所述虛擬機與所述第一子網(wǎng)之間的連接斷開時,撤銷所述網(wǎng)關。
第三方面一種數(shù)據(jù)傳輸系統(tǒng),包括:云資源管理器,虛擬網(wǎng)絡管理裝置,網(wǎng)絡節(jié)點和計算節(jié)點;
所述云資源管理器,用于創(chuàng)建虛擬網(wǎng)絡,并將所述虛擬網(wǎng)絡的網(wǎng)絡標識信息發(fā)送至所述虛擬網(wǎng)絡管理裝置,所述網(wǎng)絡標識信息包括所述虛擬網(wǎng)絡的子網(wǎng)信息,所述子網(wǎng)信息用于標識所述虛擬網(wǎng)絡的子網(wǎng),所述虛擬網(wǎng)絡的子網(wǎng)包括第一子網(wǎng);
所述云資源管理器,還用于指示所述網(wǎng)絡節(jié)點創(chuàng)建路由器,并配置所述路由器與所述虛擬網(wǎng)絡的子網(wǎng)之間的連接狀態(tài),以及所述路由器與外部網(wǎng)絡之間的連接狀態(tài);
所述網(wǎng)絡節(jié)點,用于將路由器信息發(fā)送至所述虛擬網(wǎng)絡管理裝置,所述路由器信息用于指示路由器與所述虛擬網(wǎng)絡的子網(wǎng)之間的連接狀態(tài),以及所述路由器與外部網(wǎng)絡之間的連接狀態(tài);
所述云資源管理器,還用于指示所述計算節(jié)點創(chuàng)建虛擬機,并將所述虛擬機與所述虛擬網(wǎng)絡的子網(wǎng)連接;
所述計算節(jié)點,還用于將虛擬機信息發(fā)送至所述虛擬網(wǎng)絡管理裝置,所述虛擬機信息用于指示所述虛擬機所連接的子網(wǎng);
當所述虛擬網(wǎng)絡管理裝置確定所述虛擬機所連接的子網(wǎng)為所述第一子網(wǎng),且所述第一子網(wǎng)與所述路由器連接,且所述路由器與所述外部網(wǎng)絡連接時,將所述網(wǎng)絡標識信息、所述路由器信息以及所述虛擬機信息發(fā)送至所述虛擬機所在的計算節(jié)點,以指示所述計算節(jié)點創(chuàng)建網(wǎng)關,并對所述網(wǎng)關進行配置,所述網(wǎng)關用于對虛擬專用網(wǎng)絡VPN報文進行轉發(fā)。
結合第三方面,在第一種可能的實現(xiàn)方式中,所述虛擬網(wǎng)絡管理裝置,具體用于,
根據(jù)所述網(wǎng)絡標識信息為所述網(wǎng)關添加下行接口,所述下行接口的網(wǎng)絡互連協(xié)議IP地址為所述第一子網(wǎng)的網(wǎng)關地址;
為所述網(wǎng)關添加上行接口,所述上行接口為所述外部網(wǎng)絡的接口,用于與用戶邊緣CE路由器進行VPN報文轉發(fā);
根據(jù)所述網(wǎng)絡標識信息為所述網(wǎng)關設置轉發(fā)策略,所述轉發(fā)策略包括:從所述虛擬機接收到的VPN報文,下一跳地址為所述CE路由器的下行接口的地址;從所述CE路由器的下行接口接收到的VPN報文,目的地址為所述虛擬機的地址。
結合第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述虛擬網(wǎng)絡管理裝置,還用于指示所述網(wǎng)絡節(jié)點創(chuàng)建路由信息發(fā)布模塊,并將所述虛擬機的路由信息發(fā)送至所述路由信息發(fā)布模塊;
所述路由信息發(fā)布模塊,用于向所述CE路由器發(fā)布所述虛擬機的路由信息,以便于所述CE路由器維護更新CE路由表,所述CE路由表記錄的內(nèi)容包括從所述外部網(wǎng)絡接收到的VPN報文,下一跳地址為所述網(wǎng)關上行接口的地址。
結合第三方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述虛擬網(wǎng)絡管理裝置,具體用于指示所述網(wǎng)絡節(jié)點創(chuàng)建路由信息發(fā)布器實例,為所述路由信息發(fā)布器實例配置獨立的地址空間,并將所述路由信息發(fā)布器實例與路由代理連接,所述路由信息發(fā)布器實例用于通過動態(tài)路由協(xié)議向所述CE路由器上對應的路由器實例發(fā)送所述虛擬機的路由信息。
結合第三方面的第二種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述虛擬網(wǎng)絡管理裝置,具體用于在所述虛擬機創(chuàng)建、遷移或者撤銷之后,通過所述路由信息發(fā)布模塊向所述CE路由器發(fā)布更新的所述虛擬機的路由信息。
結合第三方面至第三方面的第四種可能的實現(xiàn)方式中的任一種,在第五種可能的實現(xiàn)方式中,
所述虛擬網(wǎng)絡管理裝置,還用于獲取更新的路由器信息,根據(jù)所述更新的路由器信息,當所述第一子網(wǎng)與所述路由器之間的連接斷開時,或者所述路由器與所述外部網(wǎng)絡的連接斷開時,撤銷所述網(wǎng)關;
所述虛擬網(wǎng)絡管理裝置,還用于獲取更新的虛擬機信息,根據(jù)所述更新的虛擬機信息,當所述虛擬機與所述第一子網(wǎng)之間的連接斷開時,撤銷所述網(wǎng)關。
本發(fā)明的實施例所提供的數(shù)據(jù)傳輸方法、虛擬網(wǎng)絡管理裝置及數(shù)據(jù)傳輸系統(tǒng),通過獲取虛擬網(wǎng)絡的網(wǎng)絡標識信息,獲取路由器信息,獲取虛擬機信息,并根據(jù)網(wǎng)絡標識信息、路由器信息和虛擬機信息進行判斷,當確定虛擬機所連接的子網(wǎng)為第一子網(wǎng),且第一子網(wǎng)與路由器連接,且路由器與數(shù)據(jù)中心外部網(wǎng)絡連接時,在計算節(jié)點上創(chuàng)建分布式網(wǎng)關,并對分布式網(wǎng)關進行配置,從而通過分布式網(wǎng)關對VPN報文進行轉發(fā)。VPN報文無需依賴現(xiàn)有的集中式處理方案進行轉發(fā)。進一步地,在同一計算節(jié)點上的屬于同一虛擬網(wǎng)絡或者不同虛擬網(wǎng)絡的多個虛擬機,可以共用同一分布式網(wǎng)關。對于一個分布式網(wǎng)關,由于其只負責對所在計算節(jié)點上虛擬機的VPN報文進行轉發(fā),工作負荷小,分布式網(wǎng)關足以對這些虛擬機的VPN報文進行高效率的轉發(fā),避免了出現(xiàn)VPN報文擁堵的情況,減少了通信時延。
本申請的第四方面,提供了一種網(wǎng)關創(chuàng)建方法,包括:虛擬網(wǎng)絡管理裝置首先確定計算節(jié)點上建立的虛擬機VM所在的子網(wǎng)。
該虛擬網(wǎng)絡管理裝置具體可以通過該VM的IP地址查詢存儲的各個子網(wǎng)對應的IP地址段,以確認該VM所在的子網(wǎng)。
該虛擬網(wǎng)絡管理裝置確定該VM所在的子網(wǎng)對應的網(wǎng)關地址,該VM所在的子網(wǎng)的網(wǎng)絡標識ID,該VM所屬租戶對應的外部網(wǎng)絡的IP地址段,該外部網(wǎng)絡的網(wǎng)絡ID,以及該外部網(wǎng)絡對應的網(wǎng)關地址。
該虛擬網(wǎng)絡管理裝置確定該外部網(wǎng)絡的IP地址以及該外部網(wǎng)絡的IP地址對應的MAC地址,該外部網(wǎng)絡的IP地址屬于該外部網(wǎng)絡的IP地址段。
該租戶在不同計算節(jié)點上創(chuàng)建的網(wǎng)關的上行接口的IP地址均屬于該外部網(wǎng)絡的IP地址段。因此在該虛擬網(wǎng)絡裝置獲取了該外部網(wǎng)絡的IP地址段后,需要從該外部網(wǎng)絡的IP地址段中分配一個該外部網(wǎng)絡的IP地址以及分配該外部網(wǎng)絡的IP地址對應的MAC地址作為該網(wǎng)關的上行接口的地址。該分配動作可以由該虛擬網(wǎng)絡裝置執(zhí)行,也可以由云資源管理器執(zhí)行。
如果該分配動作由該虛擬網(wǎng)絡裝置執(zhí)行,則該虛擬網(wǎng)絡裝置從該外部網(wǎng)絡的IP地址段中分配一個未被占用的IP地址。如果該分配動作由云資源管理器執(zhí)行,則該虛擬網(wǎng)絡裝置請求云資源管理器從該外部網(wǎng)絡的IP地址段中分配一個未被占用的IP地址以及分配該外部網(wǎng)絡的IP地址對應的MAC地址,該云資源管理器將分配的該外部網(wǎng)絡的IP地址以及該外部網(wǎng)絡的IP地址對應的MAC地址后發(fā)送至該虛擬網(wǎng)絡裝置。
該虛擬網(wǎng)絡管理裝置將該VM所在的子網(wǎng)對應的網(wǎng)關地址,該外部網(wǎng)絡的IP地址與該外部網(wǎng)絡的IP地址對應的MAC地址發(fā)送至該計算節(jié)點,并指示該計算節(jié)點創(chuàng)建網(wǎng)關。
由于此處針對在一個計算節(jié)點上建立一個VM的場景,因此僅涉及在該計算節(jié)點上建立對應的網(wǎng)關,實際的數(shù)據(jù)傳輸系統(tǒng)中設置有多個計算節(jié)點,每個運行了VM的計算節(jié)點上均設置有對應的網(wǎng)關,這些網(wǎng)關分布式的部署于各個計算節(jié)點上,相對于傳統(tǒng)的在網(wǎng)絡節(jié)點上部署的集中式的路由器,采用分布式網(wǎng)關的場景下,VPN報文的處理效率不受限于網(wǎng)絡節(jié)點的處理能力。
該網(wǎng)關配置有上行接口和下行接口,該網(wǎng)關的上行接口的地址包括該外部網(wǎng)絡的IP地址與該外部網(wǎng)絡的IP地址對應的MAC地址,該網(wǎng)關的上行接口用于與CE路由器的下行接口通信,該CE路由器的下行接口的地址為該外部網(wǎng)絡對應的網(wǎng)關地址,該網(wǎng)關的下行接口的地址為該VM所在的子網(wǎng)對應的網(wǎng)關地址,該網(wǎng)關的下行接口用于與該VM所在的子網(wǎng)通信。
該虛擬網(wǎng)絡管理裝置根據(jù)該外部網(wǎng)絡對應的網(wǎng)關地址,該VM所在的子網(wǎng)的網(wǎng)絡ID以及該外部網(wǎng)絡的網(wǎng)絡ID為該網(wǎng)關配置轉發(fā)策略,該轉發(fā)策略指示該網(wǎng)關將該VM發(fā)出的第一VPN報文轉換為第二VPN報文,該第一VPN報文中攜帶該VM所在的子網(wǎng)的網(wǎng)絡ID,該第二VPN報文中攜帶該外部網(wǎng)絡的網(wǎng)絡ID,該轉發(fā)策略還指示該網(wǎng)關將該第二VPN報文通過該網(wǎng)關的上行接口發(fā)送至該CE路由器的下行接口。
結合第四方面,在第四方面的第一種實現(xiàn)方式中,該虛擬網(wǎng)絡管理裝置確定計算節(jié)點上建立的VM所在的子網(wǎng)之前,該方法還包括:該虛擬網(wǎng)絡管理裝置獲取N個子網(wǎng)的子網(wǎng)信息,每個子網(wǎng)的子網(wǎng)信息包括網(wǎng)絡標識ID和IP地址段,N為大于0的整數(shù),該N個子網(wǎng)均屬于該租戶;該虛擬網(wǎng)絡管理裝置獲取該每個子網(wǎng)對應的網(wǎng)關地址,該外部網(wǎng)絡的IP地址段,該外部網(wǎng)絡的網(wǎng)絡ID,以及該外部網(wǎng)絡對應的網(wǎng)關地址;該虛擬網(wǎng)絡管理裝置確定計算節(jié)點上建立的VM所在的子網(wǎng)包括:該虛擬網(wǎng)絡管理裝置獲取該VM的IP地址,根據(jù)該VM的IP地址確定該VM所在的子網(wǎng)。
該虛擬管理裝置根據(jù)該VM的IP地址確定的各類信息,由云資源管理器預先發(fā)送至該虛擬網(wǎng)絡管理裝置。
結合第四方面或第四方面的第一種實現(xiàn)方式,在第四方面的第二種實現(xiàn)方式中,該方法還包括:該虛擬網(wǎng)絡管理裝置向該CE路由器發(fā)布該VM的路由信息,該路由信息用于指示該CE路由器將目的地為該VM的報文發(fā)送至該網(wǎng)關的上行接口。
由于本方面提供的網(wǎng)關分布式的部署于各個計算節(jié)點之上,因此CE路由器接收到公網(wǎng)發(fā)來的報文時,該CE路由器需要根據(jù)該路由信息確認該報文是發(fā)往哪個網(wǎng)關的上行接口。
除了VM新建的場景中需要向該CE路由器發(fā)布VM的路由信息,當VM撤銷或VM遷移時,也需要向該CE路由器更新被撤銷的VM或者被遷移的VM對應的路由信息。
結合第四方面或第四方面的前述任一種實現(xiàn)方式,在第四方面的第三種實現(xiàn)方式中,該方法還包括:該虛擬網(wǎng)絡管理裝置確定該計算節(jié)點上屬于該租戶的全部VM均撤銷;該虛擬網(wǎng)絡管理裝置指示該計算節(jié)點撤銷該網(wǎng)關。
在確定該計算節(jié)點上屬于該租戶的全部VM均撤銷的情況下,也即確定了該網(wǎng)關所連接的VM全部撤銷,此時撤銷該網(wǎng)關有助于節(jié)省該計算節(jié)點的物理資源,并且也可以釋放之前為該網(wǎng)關分配的外部網(wǎng)絡的IP地址和MAC地址,由于每個租戶所屬的外部網(wǎng)絡的地址資源有限,合理回收已分配的外部網(wǎng)絡的地址資源有助于提升外部網(wǎng)絡的地址資源的利用率。
本申請的第五方面,提供了一種虛擬網(wǎng)絡管理裝置,該虛擬網(wǎng)絡管理裝置用于為在新創(chuàng)建了VM的計算節(jié)點上創(chuàng)建網(wǎng)關。該裝置包括了用于執(zhí)行第四方面或第四方面的任意一種實現(xiàn)方式提供的網(wǎng)關創(chuàng)建方法的至少一個模塊。
本申請的第六方面,提供了一種計算設備,該計算設備包括處理器、存儲器。該計算設備可以為數(shù)據(jù)傳輸系統(tǒng)中的虛擬網(wǎng)絡管理裝置,該計算設備上可以運行用于實現(xiàn)SDN控制器的軟件,以使得該計算設備實現(xiàn)SDN控制器的功能。該計算設備運行時執(zhí)行第四方面或第四方面的任意一種實現(xiàn)方式提供的網(wǎng)關創(chuàng)建方法。
本申請的第七方面,提供了一種數(shù)據(jù)傳輸系統(tǒng),該數(shù)據(jù)傳輸系統(tǒng)包括了云資源管理器、第五方面或第六方面提供的虛擬網(wǎng)絡管理裝置、CE路由器以及至少一個計算節(jié)點。其中,云資源管理器與虛擬網(wǎng)絡管理裝置建立通信連接,虛擬網(wǎng)絡管理裝置與每個計算節(jié)點建立通信連接,CE路由器與每個計算節(jié)點建立通信連接。
該云資源管理器,用于將N個子網(wǎng)的子網(wǎng)信息,每個子網(wǎng)的子網(wǎng)信息包括網(wǎng)絡ID和IP地址段,N為大于0的整數(shù),該N個子網(wǎng)均屬于一個租戶,每個子網(wǎng)對應的網(wǎng)關地址,該租戶對應的外部網(wǎng)絡的IP地址段,該外部網(wǎng)絡的網(wǎng)絡ID,以及該外部網(wǎng)絡對應的網(wǎng)關地址發(fā)送至該虛擬網(wǎng)絡管理裝置。
該虛擬網(wǎng)絡管理裝置,用于確定第一計算節(jié)點上創(chuàng)建的VM的IP地址,該VM屬于該租戶,根據(jù)該VM的IP地址確定該VM所在的子網(wǎng),并確定該VM所在的子網(wǎng)對應的網(wǎng)關地址,該VM所在的子網(wǎng)的網(wǎng)絡ID,該外部網(wǎng)絡的IP地址以及該外部網(wǎng)絡的IP地址對應的MAC地址,該外部網(wǎng)絡的網(wǎng)絡ID。
該虛擬網(wǎng)絡管理裝置,還用于將該VM所在的子網(wǎng)對應的網(wǎng)關地址,該外部網(wǎng)絡的IP地址與該外部網(wǎng)絡的IP地址對應的MAC地址發(fā)送至該計算節(jié)點,并指示該第一計算節(jié)點創(chuàng)建網(wǎng)關。
該網(wǎng)關配置有上行接口和下行接口,該網(wǎng)關的上行接口的地址包括該外部網(wǎng)絡的IP地址與該外部網(wǎng)絡的IP地址對應的MAC地址,該網(wǎng)關的上行接口用于與該CE路由器的下行接口通信,該CE路由器的下行接口的地址為該外部網(wǎng)絡對應的網(wǎng)關地址,該網(wǎng)關的下行接口的地址為該VM所在的子網(wǎng)對應的網(wǎng)關地址,該網(wǎng)關的下行接口用于與該VM所在的子網(wǎng)通信。
該虛擬網(wǎng)絡管理裝置,還用于根據(jù)該外部網(wǎng)絡對應的網(wǎng)關地址,該VM所在的子網(wǎng)的網(wǎng)絡標識ID以及該外部網(wǎng)絡的網(wǎng)絡ID生成轉發(fā)策略,該轉發(fā)策略指示該網(wǎng)關將該VM發(fā)出的第一VPN報文轉換為第二VPN報文,該第一VPN報文中攜帶該VM所在的子網(wǎng)的網(wǎng)絡標識ID,該第二VPN報文中攜帶該外部網(wǎng)絡的網(wǎng)絡ID,該轉發(fā)策略還指示該網(wǎng)關將該第二VPN報文通過該網(wǎng)關的上行接口發(fā)送至該CE路由器的下行接口。
該第一計算節(jié)點,用于創(chuàng)建該網(wǎng)關以及接收該轉發(fā)策略,并為該網(wǎng)關配置該轉發(fā)策略。
結合第七方面,在第七方面的第一種實現(xiàn)方式中,該虛擬網(wǎng)絡管理裝置,還用于向該CE路由器發(fā)布該VM的路由信息,該路由信息用于指示該CE路由器將目的地為該VM的報文發(fā)送至該網(wǎng)關的上行接口。
結合第七方面,在第七方面的第二種實現(xiàn)方式中,該數(shù)據(jù)傳輸系統(tǒng)還包括路由信息發(fā)布模塊,該路由信息發(fā)布模塊設置于該數(shù)據(jù)傳輸系統(tǒng)的計算節(jié)點或網(wǎng)絡節(jié)點;
該虛擬網(wǎng)絡管理裝置,還用于生成該VM的路由信息,該路由信息用于指示該CE路由器將目的地為該VM的報文發(fā)送至該網(wǎng)關的上行接口;
該路由信息發(fā)布模塊,用于向該CE路由器發(fā)布該VM的路由信息。
結合第七方面或第七方面的任一種實現(xiàn)方式,在第七方面的第三種實現(xiàn)方式中,該虛擬網(wǎng)絡管理裝置,還用于確定該計算節(jié)點上屬于該租戶的全部VM均撤銷,指示該計算節(jié)點撤銷該網(wǎng)關。
本申請的第八方面,提供了一種存儲介質(zhì),該存儲介質(zhì)中存儲了程序代碼,該程序代碼被運行時,執(zhí)行第四方面或第四方面的任意一種實現(xiàn)方式提供的方法。該存儲介質(zhì)包括但不限于快閃存儲器(英文:flash memory),硬盤(英文:hard disk drive,縮寫:HDD)或固態(tài)硬盤(英文:solid state drive,縮寫:SSD)。
本申請的第九方面,提供了一種計算機程序產(chǎn)品,該計算機程序產(chǎn)品可以為一個軟件安裝包,該軟件安裝包被運行時,執(zhí)行第四方面或第四方面的任意一種實現(xiàn)方式提供的方法。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術中數(shù)據(jù)中心內(nèi)虛擬網(wǎng)絡之間通信方式的示意圖;
圖2為本發(fā)明的實施例一所提供的一種數(shù)據(jù)傳輸方法流程示意圖;
圖3為本發(fā)明的實施例二所提供的一種數(shù)據(jù)傳輸方法流程示意圖;
圖4為SDN控制器通過路由信息發(fā)布模塊發(fā)布虛擬機的路由信息的示意圖;
圖5為本發(fā)明的實施例二中虛擬機與通信對端之間進行直連網(wǎng)絡方式南北向通信的示意圖;
圖6為本發(fā)明的實施例三所提供的一種虛擬網(wǎng)絡管理裝置結構示意圖;
圖7為本發(fā)明的實施例四所提供的一種數(shù)據(jù)傳輸系統(tǒng)的結構示意圖;
圖8為本發(fā)明的實施例五所提供的一種數(shù)據(jù)傳輸系統(tǒng)的結構示意圖;
圖9為本發(fā)明的實施例提供的計算設備的組織結構示意圖;
圖10為本發(fā)明的實施例所提供的一種虛擬網(wǎng)絡管理裝置結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例一
本發(fā)明的實施例提供一種數(shù)據(jù)傳輸方法,應用于云計算場景中,提供對直連網(wǎng)絡方式南北向通信的分布式解決方案。方法涉及云資源管理器、虛擬網(wǎng)絡管理裝置、網(wǎng)絡節(jié)點、計算節(jié)點以及CE路由器。
其中,云資源管理器用于資源的分配和管理,包括虛擬網(wǎng)絡創(chuàng)建,虛擬機創(chuàng)建、遷移和刪除等。具體的,云資源管理器可以是Openstack,或者其它的云資源管理平臺所提供的具有相同或者類似功能的對象。
網(wǎng)絡節(jié)點,用于對網(wǎng)絡數(shù)據(jù)進行傳輸、轉發(fā)等,在本發(fā)明的實施例主要涉及對南北向通信數(shù)據(jù)的轉發(fā)功能。
計算節(jié)點,本發(fā)明的實施例中在計算節(jié)點內(nèi)創(chuàng)建虛擬機,虛擬機作為虛擬網(wǎng)絡內(nèi)的主機,是與通信對端進行南北向通信的主體。
虛擬網(wǎng)絡管理裝置,是對虛擬網(wǎng)絡進行管理的主體。在本發(fā)明的實施例中,虛擬網(wǎng)絡管理裝置從網(wǎng)絡節(jié)點和計算節(jié)點上報的信息中獲取整個虛擬網(wǎng)絡的拓撲結構,包括虛擬網(wǎng)絡中虛擬機和路由器之間,以及路由器和數(shù)據(jù)中心外部網(wǎng)絡之間的連接狀態(tài),從而根據(jù)虛擬網(wǎng)絡的拓撲結構對虛擬網(wǎng)絡進行管理。
用戶邊緣(英文全稱:customer edge,縮寫CE)路由器,連接數(shù)據(jù)中心和外部網(wǎng)絡的路由器,虛擬網(wǎng)絡的南北向通信的數(shù)據(jù)報文從數(shù)據(jù)中心發(fā)出后,通過CE路由器進入VPN,最終發(fā)往通信對端。通信對端發(fā)往數(shù)據(jù)中心內(nèi)虛擬網(wǎng)絡的南北向通信的數(shù)據(jù)報文,通過VPN發(fā)送至CE路由器,通過CE路由器轉發(fā)至數(shù)據(jù)中心。
本發(fā)明的實施例所提供的數(shù)據(jù)傳輸方法,應用于虛擬網(wǎng)絡管理裝置,參照圖2所示,包括以下步驟:
201、虛擬網(wǎng)絡管理裝置獲取虛擬網(wǎng)絡的網(wǎng)絡標識信息。
網(wǎng)絡標識信息包括虛擬網(wǎng)絡的網(wǎng)絡ID,以及虛擬網(wǎng)絡的子網(wǎng)信息。其中,子網(wǎng)信息用于標識虛擬網(wǎng)絡的子網(wǎng)。
用戶通過云資源管理器創(chuàng)建虛擬網(wǎng)絡,并在虛擬網(wǎng)絡內(nèi)創(chuàng)建子網(wǎng)。子網(wǎng)信息用于標識虛擬網(wǎng)絡所包括的各個子網(wǎng),其中包括第一子網(wǎng)。具體的,不同子網(wǎng)通過各自的網(wǎng)際互連協(xié)議(英文全稱:Internet Protocol,英文簡稱:IP)地址以及對應的子網(wǎng)掩碼進行標識。當然,虛擬網(wǎng)絡也可以只包括一個子網(wǎng),即第一子網(wǎng)。
可選的,虛擬網(wǎng)絡管理裝置為軟件定義網(wǎng)絡(英文全稱:Software Defined Network,英文簡稱:SDN)控制器。本發(fā)明的實施例以虛擬網(wǎng)絡管理裝置為SDN控制器的應用場景為例進行說明。虛擬網(wǎng)絡創(chuàng)建完成之后,網(wǎng)絡節(jié)點將虛擬網(wǎng)絡的網(wǎng)絡標識信息發(fā)送至SDN控制器。
202、獲取路由器信息。
其中,路由器信息用于指示路由器的連接狀態(tài),包括路由器和虛擬網(wǎng)絡的哪些子網(wǎng)連接,以及路由器是否和數(shù)據(jù)中心的外部網(wǎng)絡連接。例如,虛擬網(wǎng)絡包括兩個子網(wǎng),如果兩個子網(wǎng)均與路由器連接,則兩個子網(wǎng)之間可以進行東西向通信。如果路由器進一步與外部網(wǎng)絡連接,則兩個子網(wǎng)中的任一子網(wǎng)可以進行南北向通信。
具體的,云資源管理器創(chuàng)建虛擬網(wǎng)絡之后,指示網(wǎng)絡節(jié)點創(chuàng)建路由器,以為創(chuàng)建的虛擬網(wǎng)絡提供路由服務。路由器創(chuàng)建后,云資源管理器對其進行配置,即將路由器與虛擬網(wǎng)絡內(nèi)的部分或者全部子網(wǎng)連接,或者還可以進一步將路由器與數(shù)據(jù)中心的外部網(wǎng)絡連接。云資源管理器對路由器進行配置之后,網(wǎng)絡節(jié)點根據(jù)路由器的連接狀態(tài),將路由器信息發(fā)送至SDN控制器。
203、獲取虛擬機信息,虛擬機信息用于指示虛擬機所連接的子網(wǎng)。
云資源管理器創(chuàng)建虛擬網(wǎng)絡之后,指示計算節(jié)點創(chuàng)建虛擬機,并將虛擬機與虛擬網(wǎng)絡的一個子網(wǎng)連接。本實施例中以虛擬機所連接的子網(wǎng)為第一子網(wǎng)的情況為例進行說明。虛擬機與第一子網(wǎng)連接之后,計算節(jié)點將虛擬機信息發(fā)送至SDN控制器。
204、當確定虛擬機所連接的子網(wǎng)為第一子網(wǎng),且第一子網(wǎng)與路由器連接,且路由器與外部網(wǎng)絡連接時,將網(wǎng)絡標識信息、路由器信息以及虛擬機信息發(fā)送至虛擬機所在的計算節(jié)點,以指示計算節(jié)點創(chuàng)建分布式網(wǎng)關,并對分布式網(wǎng)關進行配置。
其中,分布式網(wǎng)關用于對虛擬專用網(wǎng)絡VPN報文進行轉發(fā)。具體的,VPN報文為虛擬機進行直連網(wǎng)絡方式南北向通信時的數(shù)據(jù)報文。
特別地,在包括多個計算節(jié)點的應用場景中,針對不同計算節(jié)點,分別執(zhí)行步驟201-204,在多個計算節(jié)點上建立分布式網(wǎng)關,對不同計算節(jié)點上的虛擬機VPN報文進行轉發(fā)。
SDN控制器根據(jù)虛擬網(wǎng)絡的網(wǎng)絡標識信息、路由器信息和虛擬機信息進行判斷,如果第一子網(wǎng)與路由器連接,且路由器與外部網(wǎng)絡連接,則表示虛擬機有進行直連網(wǎng)絡方式南北向通信的需求,此時建立分布式網(wǎng)關。
分布式網(wǎng)關建立之后,對分布式網(wǎng)關進行配置,具體包括將第一子網(wǎng)與分布式網(wǎng)關連接,并將分布式網(wǎng)關與外部網(wǎng)絡連接。這樣虛擬機可以通過分布式網(wǎng)關向通信對端發(fā)送VPN報文,或者通過分布式網(wǎng)關接收通信對端發(fā)送的VPN報文。
本發(fā)明的實施例所提供的數(shù)據(jù)傳輸方法,SDN控制器通過從云資源管理器獲取虛擬網(wǎng)絡的網(wǎng)絡標識信息,從網(wǎng)絡節(jié)點獲取路由器信息,從計算節(jié)點獲取虛擬機信息,并根據(jù)網(wǎng)絡標識信息、路由器信息和虛擬機信息進行判斷,當確定虛擬機所連接的子網(wǎng)為第一子網(wǎng),且第一子網(wǎng)與路由器連接,且路由器與外部網(wǎng)絡連接時,在計算節(jié)點上創(chuàng)建分布式網(wǎng)關,并對分布式網(wǎng)關進行配置,從而通過分布式網(wǎng)關對VPN報文進行轉發(fā)。VPN報文無需依賴現(xiàn)有的集中式處理方案進行轉發(fā)。進一步地,在同一計算節(jié)點上的屬于同一虛擬網(wǎng)絡或者不同虛擬網(wǎng)絡的多個虛擬機,可以共用同一分布式網(wǎng)關。對于一個分布式網(wǎng)關,由于其只負責對所在計算節(jié)點上虛擬機的VPN報文進行轉發(fā),工作負荷小,分布式網(wǎng)關足以對這些虛擬機的VPN報文進行高效率的轉發(fā),避免了出現(xiàn)VPN報文擁堵的情況,減少了通信時延。
實施例二
基于圖2對應的實施例,本發(fā)明實施例二提供一種數(shù)據(jù)傳輸方法,參照圖3所示,包括以下步驟:
301、云資源管理器創(chuàng)建虛擬網(wǎng)絡,并將虛擬網(wǎng)絡的網(wǎng)絡標識信息發(fā)送至SDN控制器。
網(wǎng)絡標識信息包括虛擬網(wǎng)絡的網(wǎng)絡ID,以及虛擬網(wǎng)絡的子網(wǎng)信息。其中,子網(wǎng)信息用于標識虛擬網(wǎng)絡的子網(wǎng),虛擬網(wǎng)絡的子網(wǎng)包括第一子網(wǎng)。
可選的,網(wǎng)絡ID具體可以為虛擬局域網(wǎng)(英文全稱:Virtual Local Area Network,英文簡稱:VLAN)ID或者虛擬可擴展局域網(wǎng)(英文全稱:Virtual Extensible Local Area Network,英文簡稱:VxLAN)ID。虛擬網(wǎng)絡的子網(wǎng)信息用于指示虛擬網(wǎng)絡所包括的各個子網(wǎng),具體可以包括各個子網(wǎng)的IP地址以及子網(wǎng)掩碼。
302、云資源管理器指示網(wǎng)絡節(jié)點創(chuàng)建路由器,并配置路由器的連接狀態(tài)。
其中,配置路由器的連接狀態(tài)是指,將路由器與虛擬網(wǎng)絡內(nèi)的部分或者全部子網(wǎng)連接,或者還可以進一步將路由器與外部網(wǎng)絡連接。
以第一子網(wǎng)為例,將路由器與第一子網(wǎng)連接是指,為路由器添加子網(wǎng)接口,該子網(wǎng)接口的IP地址就是第一子網(wǎng)的網(wǎng)關地址。其中第一子網(wǎng)為虛擬網(wǎng)絡的任一子網(wǎng)。類似地,將路由器與外部網(wǎng)絡連接是指,為路由器添加外部網(wǎng)絡接口。
可選的,在一種具體的應用場景中,虛擬網(wǎng)絡需要進行浮動IP方式南北向通信或者SNAT方式南北向通信時,還可以進一步為路由器創(chuàng)建命名空間(Name Space)。若虛擬網(wǎng)絡只需要進行直連網(wǎng)絡方式南北向通信,則無需為路由器創(chuàng)建命名空間。
303、網(wǎng)絡節(jié)點將路由器信息發(fā)送至SDN控制器。
其中,路由器信息用于指示路由器的連接狀態(tài)。具體用于指示路由器與虛擬網(wǎng)絡中的哪些子網(wǎng)連接,以及是否與外部網(wǎng)絡連接。
304、云資源管理器指示計算節(jié)點創(chuàng)建虛擬機,并將該虛擬機與虛擬網(wǎng)絡的子網(wǎng)連接。
305、計算節(jié)點將虛擬機信息發(fā)送至SDN控制器。
其中,虛擬機信息用于指示虛擬機所連接的子網(wǎng)。
通過步驟301-305,SDN控制器獲取虛擬網(wǎng)絡的網(wǎng)絡標識信息、路由器信息以及虛擬機信息,這些信息描述了虛擬網(wǎng)絡的拓撲結構,包括虛擬網(wǎng)絡內(nèi)的子網(wǎng)與路由器之間的連接關系,子網(wǎng)所連接的虛擬機,以及虛擬網(wǎng)絡與外部網(wǎng)絡的連接狀態(tài)。
306、當SDN控制器確定虛擬機所連接的子網(wǎng)為第一子網(wǎng),且第一子網(wǎng)與路由器連接,且路由器與外部網(wǎng)絡連接時,將網(wǎng)絡標識信息、路由器信息以及虛擬機信息發(fā)送至虛擬機所在的計算節(jié)點,以指示計算節(jié)點創(chuàng)建分布式網(wǎng)關。
其中,分布式網(wǎng)關用于對虛擬專用網(wǎng)絡VPN報文進行轉發(fā),VPN報文是指虛擬機進行直連網(wǎng)絡方式南北向通信時的數(shù)據(jù)報文。
SDN控制器根據(jù)虛擬網(wǎng)絡的拓撲結構進行判斷,確定是否建立分布式網(wǎng)關。具體的,如果路由器與外部網(wǎng)絡沒有連接,即沒有為路由器配置外部網(wǎng)絡接口,表示虛擬機沒有進行直連網(wǎng)絡方式南北向通信的需求,則無需建立分布式網(wǎng)關。如果路由器與外部網(wǎng)絡連接,表示虛擬機有進行直連網(wǎng)絡方式南北向通信的需求,則建立分布式網(wǎng)關。
307、SDN控制器對分布式網(wǎng)關進行配置。
對分布式網(wǎng)關進行配置,經(jīng)過配置后分布式網(wǎng)關即可對VPN報文進行轉發(fā)。對分布式網(wǎng)關的配置包括三點,為分布式網(wǎng)關添加下行接口,為分布式網(wǎng)關添加上行接口,以及為分布式網(wǎng)關設置轉發(fā)策略。
分布式網(wǎng)關下行接口,是分布式網(wǎng)關與虛擬網(wǎng)絡子網(wǎng)的接口,本實施例僅針對第一子網(wǎng)進行說明。SDN控制器根據(jù)網(wǎng)絡標識信息確定第一子網(wǎng)在虛擬網(wǎng)絡內(nèi)所屬的網(wǎng)段,然后為分布式網(wǎng)關添加下行接口,下行接口的I P地址為第一子網(wǎng)的網(wǎng)關地址。
分布式網(wǎng)關的上行接口,是分布式網(wǎng)關與CE路由器的接口。SDN控制器為分布式網(wǎng)關添加上行接口,上行接口為外部網(wǎng)絡的接口,且與CE路由器下行接口屬于同一外部網(wǎng)絡,這樣,分布式網(wǎng)關就可以與CE路由器進行VPN報文轉發(fā)。
分布式網(wǎng)關的轉發(fā)策略,即分布式網(wǎng)關對VPN報文進行轉發(fā)的規(guī)則??蛇x的,轉發(fā)策略具體可以是路由表的形式實現(xiàn)。或者通過OpenFlow流表的形式實現(xiàn)。基于OpenFlow的轉發(fā)規(guī)則更加靈活,適用面更廣,計算節(jié)點無需支持Name Space,也無需具備IP路由的能力,因此降低了對計算節(jié)點的要求。具體的,SDN控制器根據(jù)網(wǎng)絡標識信息為分布式網(wǎng)關設置轉發(fā)策略,轉發(fā)策略包括:從虛擬機接收到的VPN報文,下一跳地址為CE路由器的下行接口的地址;從CE路由器的下行接口接收到的VPN報文,目的地址為虛擬機的地址。
308、SDN控制器指示網(wǎng)絡節(jié)點創(chuàng)建路由信息發(fā)布模塊,通過路由信息發(fā)布模塊向CE路由器動態(tài)發(fā)布虛擬機的路由信息。
步驟307中,分布式網(wǎng)關接收到VPN報文后,根據(jù)分布式網(wǎng)關的轉發(fā)策略,完成VPN報文從分布式網(wǎng)關向CE路由器的轉發(fā)。
步驟308中,SDN控制器指示網(wǎng)絡節(jié)點創(chuàng)建路由信息發(fā)布模塊,并將虛擬機的路由信息動態(tài)發(fā)送至路由信息發(fā)布模塊,由路由信息發(fā)布模塊向CE路由器發(fā)布虛擬機的路由信息,以便于CE路由器維護更新CE路由表,CE路由表記錄的內(nèi)容包括,從外部網(wǎng)絡接收到的VPN報文,下一跳地址為分布式網(wǎng)關上行接口的地址。CE路由器接收到通信對端發(fā)送的VPN報文后,根據(jù)CE路由表完成VPN報文從CE路由器到分布式網(wǎng)關的轉發(fā)。
路由信息發(fā)布模塊包括路由代理(英文全稱:Routing Agent)和路由信息發(fā)布器實例。指示網(wǎng)絡節(jié)點創(chuàng)建路由信息發(fā)布模塊,具體是指創(chuàng)建路由信息發(fā)布器實例,為路由信息發(fā)布器實例配置獨立的地址空間,并將路由信息發(fā)布器實例與路由代理連接。
其中,路由代理用于和SDN控制器進行通信,獲取虛擬機的路由信息。路由代理獲取的虛擬機的路由信息,經(jīng)路由信息發(fā)布器實例根據(jù)動態(tài)路由協(xié)議進行封裝后向CE路由器發(fā)布。動態(tài)路由協(xié)議具體可以是邊界網(wǎng)關協(xié)議(英文全稱:Border Gateway Protocol,英文簡稱:BGP)。一個路由信息發(fā)布器實例可以向CE路由器發(fā)布虛擬網(wǎng)絡內(nèi)不同子網(wǎng)的多臺虛擬機的路由信息。
向CE路由器動態(tài)發(fā)布虛擬機的路由信息,是指當虛擬機的路由信息有更新時,就向CE路由器發(fā)布更新的虛擬機的路由信息。例如在虛擬機創(chuàng)建、遷移或者撤銷之后,SDN控制器通過路由信息發(fā)布模塊向CE路由器發(fā)布更新的虛擬機的路由信息。
優(yōu)選的,如圖4所示,在一種具體的應用場景中,路由信息發(fā)布模塊可以包括多個路由信息發(fā)布器實例,每個路由信息發(fā)布器實例配置獨立的地址空間。同時,CE路由器通過VPN路由轉發(fā)(英文全稱:VPN Routing and Forwarding,英文簡稱:VRF)功能創(chuàng)建多個路由器實例,路由器實例與路由信息發(fā)布器實例一一對應。圖4中,路由器實例1與路由信息發(fā)布器實例1對應,路由器實例2與路由信息發(fā)布器實例2對應。
路由信息發(fā)布器實例1將可以將N個虛擬網(wǎng)絡內(nèi)虛擬機的路由信息向路由器實例1發(fā)布,其中N為大于等于1的整數(shù)。這樣,這N個虛擬網(wǎng)絡共享路由器實例1,或者說路由器實例1為這N個虛擬網(wǎng)絡提供路由服務。
同樣地,路由信息發(fā)布器實例2也可以為至少一個虛擬網(wǎng)絡提供路由服務。在云計算應用場景中,通常為一個租戶配置一個路由器實例,該路由器實例為該租戶的至少一個虛擬網(wǎng)絡提供路由服務。不同路由器實例為不同租戶的虛擬網(wǎng)絡提供路由服務。
309、虛擬機通過分布式路由器和CE路由器與通信對端進行直連網(wǎng)絡方式南北向通信。
結合圖5,對虛擬機與通信對端進行直連網(wǎng)絡方式南北向通信時,VPN報文的轉發(fā)過程進行舉例說明。
圖5中,虛擬機的IP地址為192.168.100.6,媒體訪問控制(英文全稱:Media Access Control,英文簡稱:MAC)地址為1122-3344-6666。
分布式網(wǎng)關下行接口,即第一子網(wǎng)的網(wǎng)關為192.168.100.1,MAC地址為1122-3344-5555。
分布式網(wǎng)關的上行接口,即分布式網(wǎng)關與CE路由器的接口,IP地址為192.168.120.3,MAC地址為1122-3344-3333。
CE路由器下行接口,IP地址為192.168.120.1,MAC地址為1122-3344-1111。
通信對端的IP地址為192.168.200.35。通信對端與CE路由器之間通過穿過公網(wǎng)的VPN連接。
虛擬機向通信對端發(fā)送VPN報文過程:
虛擬機通過地址解析協(xié)議(英文全稱:Address Resolution Protocol,英文簡稱:ARP)請求分布式網(wǎng)關下行接口MAC地址。獲取到分布式網(wǎng)關下行接口MAC地址后,向分布式網(wǎng)關發(fā)送VPN報文,VPN報文的報頭內(nèi)容如表一所示,其中,虛擬網(wǎng)絡的VLAN ID為500,外部網(wǎng)絡的VLAN ID為100。
分布式網(wǎng)關接收到虛擬機發(fā)送的VPN數(shù)據(jù)報文后,根據(jù)目的IP查詢轉發(fā)策略(分布式網(wǎng)關的路由表或者OpenFlow流表),確定下一跳地址為CE路由器的下行接口的地址,則將源MAC修改為分布式網(wǎng)關的上行接口MAC地址,目的MAC修改為CE路由器下行接口MAC地址。同時將虛擬網(wǎng)絡的VLAN ID修改為外部網(wǎng)絡的VLAN ID。然后將VPN報文通過分布式網(wǎng)關的上行接口發(fā)送至CE路由器下行接口。這樣,分布式網(wǎng)關就將虛擬機發(fā)出的VPN報文從虛擬網(wǎng)絡(VLAN ID 500)轉發(fā)到了外部網(wǎng)絡(VLAN ID100),并最終通過VPN穿過公網(wǎng),被發(fā)送至通信對端。
通信對端向虛擬機發(fā)送VPN報文過程:
通信對端發(fā)送的VPN報文到達CE路由器后,根據(jù)CE路由表確定下一跳地址為分布式網(wǎng)關上行接口的地址,則將源MAC修改為CE路由器下行接口MAC地址,目的MAC修改為分布式網(wǎng)關的上行接口MAC地址,然后將VPN報文通過CE路由器下行接口發(fā)送至分布式網(wǎng)關上行接口。
分布式網(wǎng)關接收到CE路由器發(fā)送的VPN數(shù)據(jù)報文后,根據(jù)目的IP確定虛擬機所連接的虛擬網(wǎng)絡子網(wǎng),將源MAC修改為分布式網(wǎng)關下行接口MAC地址,目的MAC修改為虛擬機MAC地址,同時將外部網(wǎng)絡的VLAN ID修改為虛擬網(wǎng)絡的VLAN ID,然后將VPN報文通過分布式網(wǎng)關下行接口發(fā)送至虛擬機。
表一
310、SDN控制器從網(wǎng)絡節(jié)點獲取更新的路由器信息。
當路由器的連接狀態(tài)發(fā)生變化時,例如,第一子網(wǎng)與路由器斷開連接,或者路由器與外部網(wǎng)絡斷開連接,則網(wǎng)絡節(jié)點向SDN控制器上報更新的路由器信息。
311、根據(jù)更新的路由器信息,當?shù)谝蛔泳W(wǎng)與路由器之間的連接斷開時,或者路由器與外部網(wǎng)絡之間的連接斷開時,SDN控制器撤銷分布式網(wǎng)關。
312、SDN控制器從計算節(jié)點獲取更新的虛擬機信息。
當虛擬機的連接狀態(tài)發(fā)生變化時,例如虛擬機與第一子網(wǎng)的連接斷開,包括創(chuàng)建新的虛擬機,或已有的虛擬機撤銷、遷移的情況。此時,計算節(jié)點向SDN控制器上報更新的虛擬機信息。
313、根據(jù)更新的虛擬機信息,當虛擬機與第一子網(wǎng)的連接斷開時,撤銷分布式網(wǎng)關。
虛擬機與第一子網(wǎng)的連接斷開,包括虛擬機撤銷、遷移的情況。當然,在第一子網(wǎng)有多個虛擬機位于計算節(jié)點內(nèi)的應用場景中,當計算節(jié)點內(nèi)第一子網(wǎng)的全部虛擬機均與第一子網(wǎng)斷開時,SDN控制器撤銷分布式網(wǎng)關。
結合步驟306,如果虛擬機沒有進行直連網(wǎng)絡方式南北向通信的需求,則可以撤銷分布式網(wǎng)關。只在需要進行直連網(wǎng)絡方式南北向通信的計算節(jié)點上創(chuàng)建分布式網(wǎng)關,以盡可能地減小外部網(wǎng)絡的規(guī)模,節(jié)約計算節(jié)點的軟硬件資源。
本發(fā)明的實施例所提供的數(shù)據(jù)傳輸方法,SDN控制器通過從云資源管理器獲取虛擬網(wǎng)絡的網(wǎng)絡標識信息,從網(wǎng)絡節(jié)點獲取路由器信息,從計算節(jié)點獲取虛擬機信息,并根據(jù)網(wǎng)絡標識信息、路由器信息和虛擬機信息進行判斷,當確定虛擬機所連接的子網(wǎng)為第一子網(wǎng),第一子網(wǎng)與路由器連接,且路由器與外部網(wǎng)絡連接時,在計算節(jié)點上創(chuàng)建分布式網(wǎng)關,并對分布式網(wǎng)關進行配置,從而通過分布式網(wǎng)關對VPN報文進行轉發(fā)。VPN報文無需依賴現(xiàn)有的集中式處理方案進行轉發(fā)。進一步地,在同一計算節(jié)點上的屬于同一虛擬網(wǎng)絡或者不同虛擬網(wǎng)絡的多個虛擬機,可以共用同一分布式網(wǎng)關。對于一個分布式網(wǎng)關,由于其只負責對所在計算節(jié)點上虛擬機的VPN報文進行轉發(fā),工作負荷小,分布式網(wǎng)關足以對這些虛擬機的VPN報文進行高效率的轉發(fā),避免了出現(xiàn)VPN報文擁堵的情況,減少了通信時延。
實施例三
基于實施例一及實施例二所提供的數(shù)據(jù)傳輸方法,本發(fā)明的實施例三提供一種虛擬網(wǎng)絡管理裝置,用于執(zhí)行上述實施例中SDN控制器所完成的功能。結合圖6所示,虛擬網(wǎng)絡管理裝置600包括:
虛擬網(wǎng)絡管理模塊601,用于獲取虛擬網(wǎng)絡的網(wǎng)絡標識信息,網(wǎng)絡標識信息包括虛擬網(wǎng)絡的子網(wǎng)信息,子網(wǎng)信息用于標識虛擬網(wǎng)絡的子網(wǎng),虛擬網(wǎng)絡的子網(wǎng)包括第一子網(wǎng)。
網(wǎng)絡節(jié)點管理模塊602,用于獲取路由器信息,路由器信息用于指示路由器與虛擬網(wǎng)絡的子網(wǎng)之間的連接狀態(tài),以及路由器與外部網(wǎng)絡之間的連接狀態(tài)。
計算節(jié)點管理模塊603,用于獲取虛擬機信息,虛擬機信息用于指示虛擬機所連接的子網(wǎng)。
當計算節(jié)點管理模塊603確定虛擬機所連接的子網(wǎng)為第一子網(wǎng),且第一子網(wǎng)與路由器連接,且路由器與外部網(wǎng)絡連接時,將網(wǎng)絡標識信息、路由器信息以及虛擬機信息發(fā)送至虛擬機所在的計算節(jié)點,以指示計算節(jié)點創(chuàng)建網(wǎng)關,并對網(wǎng)關進行配置,網(wǎng)關用于對虛擬專用網(wǎng)絡VPN報文進行轉發(fā)。
可選的,計算節(jié)點管理模塊603,具體用于,
根據(jù)網(wǎng)絡標識信息為網(wǎng)關添加下行接口,下行接口的網(wǎng)絡互連協(xié)議I P地址為第一子網(wǎng)的網(wǎng)關地址。
為網(wǎng)關添加上行接口,上行接口為外部網(wǎng)絡的接口,用于與用戶邊緣CE路由器進行VPN報文轉發(fā)。
根據(jù)網(wǎng)絡標識信息為網(wǎng)關設置轉發(fā)策略,轉發(fā)策略包括:從虛擬機接收到的VPN報文,下一跳地址為CE路由器的下行接口的地址;從CE路由器的下行接口接收到的VPN報文,目的地址為虛擬機的地址。
可選的,網(wǎng)絡節(jié)點管理模塊602,還用于創(chuàng)建路由信息發(fā)布模塊,通過路由信息發(fā)布模塊向CE路由器發(fā)布虛擬機的路由信息,以便于CE路由器維護更新CE路由表,CE路由表記錄的內(nèi)容包括從外部網(wǎng)絡接收到的VPN報文,下一跳地址為網(wǎng)關上行接口的地址。
可選的,網(wǎng)絡節(jié)點管理模塊602,具體用于創(chuàng)建路由信息發(fā)布器實例,為路由信息發(fā)布器實例配置獨立的地址空間,并將路由信息發(fā)布器實例與路由代理連接,路由信息發(fā)布器實例用于通過動態(tài)路由協(xié)議向CE路由器上對應的路由器實例發(fā)送虛擬機的路由信息。
可選的,網(wǎng)絡節(jié)點管理模塊602,具體用于在虛擬機創(chuàng)建、遷移或者撤銷之后,通過路由信息發(fā)布模塊向CE路由器發(fā)布更新的虛擬機的路由信息。
可選的,網(wǎng)絡節(jié)點管理模塊602,還用于獲取更新的路由器信息。
計算節(jié)點管理模塊603,還用于根據(jù)更新的路由器信息,當?shù)谝蛔泳W(wǎng)與路由器之間的連接斷開時,或者路由器與外部網(wǎng)絡之間的連接斷開時,撤銷網(wǎng)關。
計算節(jié)點管理模塊603,還用于從計算節(jié)點獲取更新的虛擬機信息。
計算節(jié)點管理模塊603,還用于根據(jù)更新的虛擬機信息,當虛擬機與第一子網(wǎng)之間的連接斷開時,撤銷網(wǎng)關。
本發(fā)明的實施例所提供的虛擬網(wǎng)絡管理裝置,通過從云資源管理器獲取虛擬網(wǎng)絡的網(wǎng)絡標識信息,從網(wǎng)絡節(jié)點獲取路由器信息,從計算節(jié)點獲取虛擬機信息,并根據(jù)網(wǎng)絡標識信息、路由器信息和虛擬機信息進行判斷,當確定虛擬機所連接的子網(wǎng)為第一子網(wǎng),第一子網(wǎng)與路由器連接,且路由器與數(shù)據(jù)中心外部網(wǎng)絡連接時,在計算節(jié)點上創(chuàng)建分布式網(wǎng)關,并對分布式網(wǎng)關進行配置,從而通過分布式網(wǎng)關對VPN報文進行轉發(fā)。VPN報文無需依賴現(xiàn)有的集中式處理方案進行轉發(fā)。進一步地,在同一計算節(jié)點上的屬于同一虛擬網(wǎng)絡或者不同虛擬網(wǎng)絡的多個虛擬機,可以共用同一分布式網(wǎng)關。對于一個分布式網(wǎng)關,由于其只負責對所在計算節(jié)點上虛擬機的VPN報文進行轉發(fā),工作負荷小,分布式網(wǎng)關足以對這些虛擬機的VPN報文進行高效率的轉發(fā),避免了出現(xiàn)VPN報文擁堵的情況,減少了通信時延。
實施例四
本發(fā)明的實施例四提供一種數(shù)據(jù)傳輸系統(tǒng),參照圖7所示,數(shù)據(jù)傳輸系統(tǒng)70包括:云資源管理器701,虛擬網(wǎng)絡管理裝置702,網(wǎng)絡節(jié)點703和計算節(jié)點704,用于完成實施例二中各執(zhí)行主體對應的功能,實現(xiàn)實施例二所提供的數(shù)據(jù)傳輸方法。
其中,云資源管理器701,用于創(chuàng)建虛擬網(wǎng)絡,并將虛擬網(wǎng)絡的網(wǎng)絡標識信息發(fā)送至虛擬網(wǎng)絡管理裝置702,網(wǎng)絡標識信息包括虛擬網(wǎng)絡的子網(wǎng)信息,子網(wǎng)信息用于標識虛擬網(wǎng)絡的子網(wǎng),虛擬網(wǎng)絡的子網(wǎng)包括第一子網(wǎng)。
云資源管理器701,還用于指示網(wǎng)絡節(jié)點703創(chuàng)建路由器,并配置路由器與虛擬網(wǎng)絡的子網(wǎng)之間的連接狀態(tài),以及路由器與外部網(wǎng)絡之間的連接狀態(tài)。
網(wǎng)絡節(jié)點703,用于將路由器信息發(fā)送至虛擬網(wǎng)絡管理裝置702,路由器信息用于指示路由器與虛擬網(wǎng)絡的子網(wǎng)之間的連接狀態(tài),以及路由器與外部網(wǎng)絡之間的連接狀態(tài)。
云資源管理器701,還用于指示計算節(jié)點704創(chuàng)建虛擬機,并將虛擬機與虛擬網(wǎng)絡的子網(wǎng)連接。
計算節(jié)點704,還用于將虛擬機信息發(fā)送至虛擬網(wǎng)絡管理裝置702,虛擬機信息用于指示虛擬機所連接的子網(wǎng)。
當虛擬網(wǎng)絡管理裝置702確定虛擬機所連接的子網(wǎng)為第一子網(wǎng),且第一子網(wǎng)與路由器連接,且路由器與外部網(wǎng)絡連接時,將網(wǎng)絡標識信息、路由器信息以及虛擬機信息發(fā)送至虛擬機所在的計算節(jié)點704,以指示計算節(jié)點704創(chuàng)建網(wǎng)關,并對網(wǎng)關進行配置,網(wǎng)關用于對虛擬專用網(wǎng)絡VPN報文進行轉發(fā)。
可選的,虛擬網(wǎng)絡管理裝置702,具體用于,
根據(jù)網(wǎng)絡標識信息為網(wǎng)關添加下行接口,下行接口的網(wǎng)絡互連協(xié)議IP地址為第一子網(wǎng)的網(wǎng)關地址。
為網(wǎng)關添加上行接口,上行接口為外部網(wǎng)絡的接口,用于與用戶邊緣CE路由器進行VPN報文轉發(fā)。
根據(jù)網(wǎng)絡標識信息為網(wǎng)關設置轉發(fā)策略,轉發(fā)策略包括:從虛擬機接收到的VPN報文,下一跳地址為CE路由器的下行接口的地址;從CE路由器的下行接口接收到的VPN報文,目的地址為虛擬機的地址。
可選的,虛擬網(wǎng)絡管理裝置702,還用于指示網(wǎng)絡節(jié)點703創(chuàng)建路由信息發(fā)布模塊,并將虛擬機的路由信息發(fā)送至路由信息發(fā)布模塊。
路由信息發(fā)布模塊,用于向CE路由器發(fā)布虛擬機的路由信息,以便于CE路由器維護更新CE路由表,CE路由表記錄的內(nèi)容包括從外部網(wǎng)絡接收到的VPN報文,下一跳地址為網(wǎng)關上行接口的地址。
可選的,虛擬網(wǎng)絡管理裝置702,具體用于指示網(wǎng)絡節(jié)點703創(chuàng)建路由信息發(fā)布器實例,為路由信息發(fā)布器實例配置獨立的地址空間,并將路由信息發(fā)布器實例與路由代理連接,路由信息發(fā)布器實例用于通過動態(tài)路由協(xié)議向CE路由器上對應的路由器實例發(fā)送虛擬機的路由信息。
可選的,虛擬網(wǎng)絡管理裝置702,具體用于在虛擬機創(chuàng)建、遷移或者撤銷之后,通過路由信息發(fā)布模塊向CE路由器發(fā)布更新的虛擬機的路由信息。
可選的,虛擬網(wǎng)絡管理裝置702,還用于獲取更新的路由器信息,根據(jù)更新的路由器信息,當?shù)谝蛔泳W(wǎng)與路由器之間的連接斷開時,或者路由器與外部網(wǎng)絡的連接斷開時,撤銷網(wǎng)關。
虛擬網(wǎng)絡管理裝置702,還用于獲取更新的虛擬機信息,根據(jù)更新的虛擬機信息,當虛擬機與第一子網(wǎng)之間的連接斷開時,撤銷網(wǎng)關。
本發(fā)明的實施例所提供的數(shù)據(jù)傳輸系統(tǒng),虛擬網(wǎng)絡管理裝置通過從云資源管理器獲取虛擬網(wǎng)絡的網(wǎng)絡標識信息,從網(wǎng)絡節(jié)點獲取路由器信息,從計算節(jié)點獲取虛擬機信息,并根據(jù)網(wǎng)絡標識信息、路由器信息和虛擬機信息進行判斷,當確定虛擬機所連接的子網(wǎng)為第一子網(wǎng),第一子網(wǎng)與路由器連接,且路由器與數(shù)據(jù)中心外部網(wǎng)絡連接時,在計算節(jié)點上創(chuàng)建分布式網(wǎng)關,并對分布式網(wǎng)關進行配置,從而通過分布式網(wǎng)關對VPN報文進行轉發(fā)。VPN報文無需依賴現(xiàn)有的集中式處理方案進行轉發(fā)。進一步地,在同一計算節(jié)點上的屬于同一虛擬網(wǎng)絡或者不同虛擬網(wǎng)絡的多個虛擬機,可以共用同一分布式網(wǎng)關。對于一個分布式網(wǎng)關,由于其只負責對所在計算節(jié)點上虛擬機的VPN報文進行轉發(fā),工作負荷小,分布式網(wǎng)關足以對這些虛擬機的VPN報文進行高效率的轉發(fā),避免了出現(xiàn)VPN報文擁堵的情況,減少了通信時延。
實施例五
本發(fā)明實施例五提供一種網(wǎng)關創(chuàng)建方法,該方法運用于圖8所示的數(shù)據(jù)傳輸系統(tǒng),該方法包括:
步驟802,云資源管理器發(fā)送N個子網(wǎng)的子網(wǎng)信息至SDN控制器,N為大于0的整數(shù)。
租戶通過云資源管理器創(chuàng)建N個子網(wǎng),這N個子網(wǎng)可以為VLAN子網(wǎng)或VxLAN子網(wǎng)或其他類型的子網(wǎng)。每個子網(wǎng)的子網(wǎng)信息包括:該子網(wǎng)對應的網(wǎng)絡ID以及該子網(wǎng)的IP地址段。例如第一子網(wǎng)的子網(wǎng)信息包括:VLAN ID 500,192.168.100.0/24。
步驟804,該云資源管理器將每個子網(wǎng)對應的網(wǎng)關地址發(fā)送至該SDN控制器。網(wǎng)關地址具體包括:網(wǎng)關的IP地址與MAC地址。例如,該第一子網(wǎng)的網(wǎng)關地址包括,IP地址192.168.100.1,MAC地址1122-3344-5555。
步驟806,該云資源管理器將該N個子網(wǎng)對應的外部網(wǎng)絡的IP地址段,該外部網(wǎng)絡的網(wǎng)絡ID,以及該外部網(wǎng)絡對應的網(wǎng)關地址發(fā)送至該SDN控制器。
例如,該外部網(wǎng)絡的IP地址段包括:192.168.120.0/24,該外部網(wǎng)絡的網(wǎng)絡ID為VLAN ID 100,該外部網(wǎng)絡對應的網(wǎng)關地址包括:IP地址192.168.10 120.1,MAC地址1122-3344-1111。
該外部網(wǎng)絡實際可以為VPN為本數(shù)據(jù)傳輸系統(tǒng)分配的多個外部網(wǎng)絡中的一個。本數(shù)據(jù)傳輸系統(tǒng)的每個租戶均被分配了一個IP地址段,作為該租戶的外部網(wǎng)絡。該外部網(wǎng)絡用于在該租戶所屬的分布式網(wǎng)關和CE路由器之間路由報文。
步驟804和步驟806的執(zhí)行順序可以互換,或者步驟802、步驟804、步驟806可以合并為同一步驟,或者步驟804和步驟806可以合并為同一步驟。
可選的,該數(shù)據(jù)中心中實際可能存在多個租戶,因此云資源管理器向SDN控制器發(fā)送各類信息時還需要發(fā)送租戶標識。同一租戶所屬的子網(wǎng)對應的外部網(wǎng)絡的IP地址段以及該外部網(wǎng)絡對應的網(wǎng)關地址相同。一個租戶的外部網(wǎng)絡對應的網(wǎng)關地址實際為該租戶在CE路由器上對應的下行接口的地址。
步驟806后,該SDN控制器內(nèi)存儲有各個租戶對應的子網(wǎng)的子網(wǎng)信息,每個子網(wǎng)對應的網(wǎng)關地址,外部網(wǎng)絡的IP地址段,外部網(wǎng)絡的網(wǎng)絡ID以及該外部網(wǎng)絡對應的網(wǎng)關地址。
例如:
租戶1子網(wǎng)信息11子網(wǎng)的網(wǎng)關地址11外部網(wǎng)絡的IP地址段1外部網(wǎng)絡的網(wǎng)絡ID1外部網(wǎng)絡的網(wǎng)關地址1
其中,子網(wǎng)信息11包括VLAN ID 500,192.168.10 0.0/24;子網(wǎng)的網(wǎng)關地址11為IP地址192.168.100.1,MAC地址1122-3344-5555;外部網(wǎng)絡的IP地址段1為192.168.120.0/24;外部網(wǎng)絡的網(wǎng)絡ID為VLAN ID100;外部網(wǎng)絡的網(wǎng)關地址1為IP地址192.168.10 120.1,MAC地址1122-3344-1111。
租戶1子網(wǎng)信息12子網(wǎng)的網(wǎng)關地址12外部網(wǎng)絡的IP地址段1外部網(wǎng)絡的網(wǎng)絡ID1外部網(wǎng)絡的網(wǎng)關地址1
…
租戶1子網(wǎng)信息1N子網(wǎng)的網(wǎng)關地址1N外部網(wǎng)絡的IP地址段1外部網(wǎng)絡的網(wǎng)絡ID1外部網(wǎng)絡的網(wǎng)關地址1
租戶2子網(wǎng)信息21子網(wǎng)的網(wǎng)關地址21外部網(wǎng)絡的IP地址段2外部網(wǎng)絡的網(wǎng)絡ID2外部網(wǎng)絡的網(wǎng)關地址2
…
租戶3子網(wǎng)信息31子網(wǎng)的網(wǎng)關地址31外部網(wǎng)絡的IP地址段3外部網(wǎng)絡的網(wǎng)絡ID3外部網(wǎng)絡的網(wǎng)關地址3
….
步驟808,該云資源管理器指示一個計算節(jié)點創(chuàng)建VM。
示例性的,以步驟808中在計算節(jié)點1上創(chuàng)建VM-1為例,該VM-1的IP地址為192.168.100.6,MAC地址為1122-3344-6666。該VM-1屬于租戶1。
步驟808中,該云資源管理器除了將待創(chuàng)建的VM的IP地址和MAC地址發(fā)送至計算節(jié)點之外,還將該VM所在子網(wǎng)對應的子網(wǎng)信息也發(fā)送至計算節(jié)點。
步驟810,該計算節(jié)點向該SDN控制器發(fā)送VM創(chuàng)建消息。該VM創(chuàng)建消息指示該SDN控制器該計算節(jié)點上創(chuàng)建完成該VM。
計算節(jié)點1創(chuàng)建成功VM-1后,通知該SDN控制器VM-1創(chuàng)建完成,SDN控制器獲取VM-1的IP地址。
該VM-1的IP地址具體可以攜帶于計算節(jié)點1發(fā)送給該SDN控制器的該VM創(chuàng)建消息中。
步驟812,該SDN控制器確定該VM所在子網(wǎng)對應的信息,包括子網(wǎng)的網(wǎng)關地址,外部網(wǎng)絡的IP地址段,外部網(wǎng)絡的網(wǎng)絡ID,外部網(wǎng)絡的網(wǎng)關地址。
步驟814,該SDN控制器確定該外部網(wǎng)絡的IP地址以及該IP地址對應的MAC地址。
該SDN控制器從該外部網(wǎng)絡的IP地址段中分配IP地址,并且分配一個對應于該IP地址的MAC地址。
或者,該SDN控制器請求該云資源管理器從該外部網(wǎng)絡的IP地址段中分配IP地址,并且分配一個對應于該IP地址的MAC地址。
以步驟808中創(chuàng)建VM-1為例,步驟810中,該SDN控制器獲知VM-1的IP地址為192.168.100.6。步驟812中,該SDN控制器根據(jù)VM-1的IP地址確定VM-1所在的子網(wǎng)對應的信息包括:子網(wǎng)信息VLAN ID 500,192.168.10 0.0/24;子網(wǎng)的網(wǎng)關地址IP地址192.168.100.1,MAC地址1122-3344-5555;外部網(wǎng)絡的IP地址段192.168.120.0/24;外部網(wǎng)絡的網(wǎng)絡ID VLAN ID100;外部網(wǎng)絡的網(wǎng)關的IP地址192.168.10 120.1,MAC地址1122-3344-1111。
該SDN控制器從192.168.120.0/24中分配IP地址,作為后續(xù)計算節(jié)點1上創(chuàng)建的分布式網(wǎng)關的上行接口的IP地址,例如為192.168.120.3。該SDN控制器還分配與該IP地址對應的MAC地址,例如為1122-3344-3333,作為計算節(jié)點1上創(chuàng)建的分布式網(wǎng)絡的上行接口的MAC地址。
或者,云資源管理器統(tǒng)一管理整個數(shù)據(jù)傳輸系統(tǒng)中IP地址和MAC地址,則步驟814中,該SDN控制器請求該云資源管理器從192.168.120.0/24中分配IP地址,并分配該IP地址對應的MAC地址。
步驟816,該計算節(jié)點接收該VM所在子網(wǎng)對應的子網(wǎng)的網(wǎng)關地址,該外部網(wǎng)絡的IP地址以及該IP地址對應的MAC地址。
步驟816中接收的信息用于在該計算節(jié)點上創(chuàng)建分布式網(wǎng)關。其中,該子網(wǎng)的網(wǎng)關地址用于創(chuàng)建該分布式網(wǎng)關對應于該VM所在子網(wǎng)的下行接口,該外部網(wǎng)絡的IP地址和MAC地址用于創(chuàng)建該分布式網(wǎng)關的上行接口。
步驟818,該計算節(jié)點根據(jù)該VM所在子網(wǎng)對應的子網(wǎng)的網(wǎng)關地址,外部網(wǎng)絡的IP地址和MAC地址,建立分布式網(wǎng)關。
步驟820,該SDN控制器生成該分布式網(wǎng)關的轉發(fā)策略,并將該轉發(fā)策略發(fā)送至該計算節(jié)點,以供該計算節(jié)點通過該轉發(fā)策略配置該分布式網(wǎng)關。
該SDN控制器根據(jù)該外部網(wǎng)絡對應的網(wǎng)關地址,該VM所在的子網(wǎng)的網(wǎng)絡ID以及該外部網(wǎng)絡的網(wǎng)絡ID為該分布式網(wǎng)關配置轉發(fā)策略。
由于該分布式網(wǎng)關將該VM所在的子網(wǎng)發(fā)出的報文發(fā)送至該外部網(wǎng)絡的過程中,該報文跨越了子網(wǎng),也即該報文攜帶的網(wǎng)絡ID由該VM所在的子網(wǎng)的網(wǎng)絡ID轉換為該外部網(wǎng)絡的網(wǎng)絡ID。
該VM所在的子網(wǎng)的網(wǎng)絡標識ID以及該外部網(wǎng)絡的網(wǎng)絡ID用于設置該轉發(fā)策略。該轉發(fā)策略包括將該VM發(fā)出的第一VPN報文轉換為第二VPN報文,該第一VPN報文中攜帶該VM所在的子網(wǎng)的網(wǎng)絡標識ID,該第二VPN報文中攜帶該外部網(wǎng)絡的網(wǎng)絡ID。
該轉發(fā)策略除了用于修改報文攜帶的網(wǎng)絡ID之外,還需要指示報文的路由路徑。
該外部網(wǎng)絡的MAC地址和該外部網(wǎng)絡的網(wǎng)關地址用于在該分布式網(wǎng)關中設置該轉發(fā)策略,該轉發(fā)策略指示將該VM發(fā)出的報文通過該分布式網(wǎng)關的上行接口發(fā)送至該外部網(wǎng)絡的網(wǎng)關地址,也即將VM-1發(fā)出的報文,通過該分布式網(wǎng)關的上行接口發(fā)送至該CE路由器上對應于租戶1的下行接口。
該轉發(fā)策略具體可以通過流表或路由表的形式實現(xiàn)。通過流表實現(xiàn)的情況下,該流表需要將VM發(fā)出的報文的源MAC地址修改為該分布式網(wǎng)絡上行接口的MAC地址,將該報文的目的MAC地址修改為該CE路由器上對應于該VM所屬的租戶對應的下行接口的MAC地址,還將該報文攜帶的該VM所屬子網(wǎng)的網(wǎng)絡ID修改為該VM所屬的租戶對應的外部網(wǎng)絡的網(wǎng)絡ID。
在步驟814后,該SDN控制器獲知該VM的IP地址,同時該SDN控制器也獲知該分布式網(wǎng)關的上行接口的IP地址和MAC地址,因此該SDN控制器需要向CE路由器發(fā)布該VM的路由信息,以指示該CE路由器將到發(fā)往該VM的報文發(fā)送至該分布式網(wǎng)關的上行接口。
步驟822,該SDN控制器通過路由信息發(fā)布模塊向CE路由器發(fā)布路由信息,該路由信息指示該CE路由器將到目的地為該VM的報文發(fā)送至該分布式網(wǎng)關的上行接口。
該路由信息發(fā)布模塊可以部署于SDN控制器內(nèi)部,或部署于任一計算節(jié)點。該路由信息具體可以指示發(fā)往該VM的報文的下一跳為該分布式網(wǎng)關的上行接口的IP地址。
該路由信息發(fā)布模塊的具體實現(xiàn)方式,參考前述實施例中與圖4對應的部分。
步驟822在步驟814之后任意時刻執(zhí)行,分布式網(wǎng)關的建立過程與向CE路由器的路由發(fā)布過程也可以同步進行。
除了前述新建VM的場景,在已經(jīng)建立的VM發(fā)生遷移情況下,該SDN控制器也可以通過該路由信息發(fā)布模塊向CE路由器發(fā)布遷移后的VM的路由信息,或者在已經(jīng)建立的VM撤銷的情況下,該SDN控制器通知CE路由器將該撤銷的VM的路由信息刪除。
步驟824,該SDN控制器確定該計算節(jié)點上屬于該VM所屬的租戶的全部VM均撤銷,則指示該計算節(jié)點撤銷該分布式網(wǎng)關。
前述步驟808至步驟818中介紹了一個租戶在一個計算節(jié)點上建立的第一個VM后,該SDN控制器為該租戶在該計算節(jié)點上建立分布式網(wǎng)關的過程。實際中,若該數(shù)據(jù)傳輸系統(tǒng)中還包括其他租戶,并且其他租戶也在該計算節(jié)點上建立了VM,則該SDN控制器還需要為每個在該計算節(jié)點上建立的VM的租戶建立一個分布式網(wǎng)關。
該SDN控制器管理了該數(shù)據(jù)傳輸系統(tǒng)中,每個租戶所屬的每個VM建立于哪個計算節(jié)點。因此,當該SDN控制器確認某一租戶在某一計算節(jié)點上的全部VM均撤銷,則該SDN控制器指示該計算節(jié)點將之前建立的分布式網(wǎng)關撤銷。
步驟824的執(zhí)行與前述步驟沒有時序關系,也即該SDN控制器在為新建的VM建立分布式網(wǎng)關的同時,也可以監(jiān)控每個租戶在每個計算節(jié)點上所屬VM的運行情況,一旦發(fā)現(xiàn)有某一租戶在某一計算節(jié)點上的全部VM均撤銷,則該SDN控制器指示該計算節(jié)點將之前建立的分布式網(wǎng)關撤銷。
步驟824的執(zhí)行,使得如果某一計算節(jié)點上屬于某一租戶的全部VM都被撤銷,則可以刪除該計算節(jié)點上屬于該租戶的分布式網(wǎng)關,釋放該計算節(jié)點的資源,提升了計算節(jié)點的資源的使用效率。同時也可以釋放出該分布式網(wǎng)關占用的該租戶對應的外部網(wǎng)絡的IP和MAC地址,提升外部網(wǎng)絡的地址的使用效率。
本發(fā)明的實施例所提供的方法,在計算節(jié)點上創(chuàng)建分布式網(wǎng)關,并對分布式網(wǎng)關進行配置,從而通過分布式網(wǎng)關對VPN報文進行轉發(fā)。VPN報文無需依賴現(xiàn)有的集中式處理方案進行轉發(fā),提升了VPN報文的處理效率。
以上提供的數(shù)據(jù)傳輸系統(tǒng)中,VM發(fā)出的VPN報文的處理過程和VM接收到VPN報文的處理過程參考前述圖5對應的實施例。
前述附圖中的虛擬網(wǎng)絡管理裝置或SDN控制器可以通過計算設備1000實現(xiàn)。計算設備1000的組織結構示意圖如圖9所示,包括處理器1002、存儲器1004,還可以包括總線1008、通信接口1006。
其中,處理器1002、存儲器1004和通信接口1006可以通過總線1008實現(xiàn)彼此之間的通信連接,也可以通過無線傳輸?shù)绕渌侄螌崿F(xiàn)通信。
處理器1002可以為中央處理器(英文:central processing unit,縮寫:CPU)。
存儲器1004可以包括易失性存儲器(英文:volatile memory),例如隨機存取存儲器(英文:random-access memory,縮寫:RAM);存儲器也可以包括非易失性存儲器(英文:non-volatile memory),例如只讀存儲器(英文:read-only memory,縮寫:ROM),快閃存儲器,HDD或SSD;存儲器204還可以包括上述種類的存儲器的組合。用于實現(xiàn)本申請圖8提供的方法中SDN控制器執(zhí)行的部分的程序代碼保存在存儲器1004中,并由處理器1002來執(zhí)行。計算設備1000通過通信接口1006與數(shù)據(jù)傳輸網(wǎng)絡中其他節(jié)點以及云資源管理通信。
基于實施例五所提供的數(shù)據(jù)傳輸方法,本發(fā)明的實施例提供一種虛擬網(wǎng)絡管理裝置,用于執(zhí)行上述實施例中SDN控制器所完成的功能。如圖10所示,虛擬網(wǎng)絡管理裝置1200包括:處理模塊1202,發(fā)送模塊1204,以及接收模塊1206。
虛擬網(wǎng)絡管理裝置1200可以通過專用集成電路(英文:application-specific integrated circuit,縮寫:ASIC)實現(xiàn),或可編程邏輯器件(英文:programmable logic device,縮寫:PLD)實現(xiàn)。上述PLD可以是復雜可編程邏輯器件(英文:complex programmable logic device,縮寫:CPLD),現(xiàn)場可編程門陣列(英文:field programmable gate array,縮寫:FPGA),通用陣列邏輯(英文:generic array logic,縮寫:GAL)或其任意組合。
接收模塊1206,用于接收云資源管理器發(fā)送的N個子網(wǎng)的子網(wǎng)信息,每個子網(wǎng)對應的網(wǎng)關地址,該N個子網(wǎng)對應的外部網(wǎng)絡的IP地址段,該外部網(wǎng)絡的網(wǎng)絡ID,以及該外部網(wǎng)絡對應的網(wǎng)關地址。
接收模塊1206將接收的N個子網(wǎng)的子網(wǎng)信息,每個子網(wǎng)對應的網(wǎng)關地址,該N個子網(wǎng)對應的外部網(wǎng)絡的IP地址段,該外部網(wǎng)絡的網(wǎng)絡ID,以及該外部網(wǎng)絡對應的網(wǎng)關地址發(fā)送至處理模塊1202。
接收模塊1206,還用于接收VM創(chuàng)建消息。
處理模塊1202,用于確定該VM所在子網(wǎng)對應的信息,包括子網(wǎng)的網(wǎng)關地址,外部網(wǎng)絡的IP地址段,外部網(wǎng)絡的網(wǎng)絡ID,外部網(wǎng)絡的網(wǎng)關地址,并確定該外部網(wǎng)絡的IP地址以及該IP地址對應的MAC地址。
發(fā)送模塊1204,還用于將該VM所在子網(wǎng)對應的子網(wǎng)的網(wǎng)關地址,該外部網(wǎng)絡的IP地址以及該IP地址對應的MAC地址發(fā)送至創(chuàng)建該VM的計算節(jié)點。
處理模塊1202,還用于該SDN控制器根據(jù)該外部網(wǎng)絡對應的網(wǎng)關地址,該VM所在的子網(wǎng)的網(wǎng)絡標識ID以及該外部網(wǎng)絡的網(wǎng)絡ID生成轉發(fā)策略。
發(fā)送模塊1204,還用于將該轉發(fā)策略發(fā)送至該計算節(jié)點。
可選的,處理模塊1202,還用于生成該VM的路由信息,該路由信息用于指示該CE路由器將目的地為該VM的報文發(fā)送至該網(wǎng)關的上行接口。發(fā)送模塊1204,還用于向該CE路由器發(fā)布該VM的路由信息。
處理模塊1202和發(fā)送模塊1204的以上功能參考實施例五中的步驟822。
可選的,處理模塊1202,還用于確定該計算節(jié)點上屬于該VM所屬的租戶的全部VM均撤銷。發(fā)送模塊1204,還用于指示該計算節(jié)點撤銷該網(wǎng)關。
處理模塊1202和發(fā)送模塊1204的以上功能參考實施例五中的步驟824。
通過以上的實施方式的描述,所屬領域的技術人員可以清楚地了解到本發(fā)明可以用硬件實現(xiàn),或固件實現(xiàn),或它們的組合方式來實現(xiàn)。當使用軟件實現(xiàn)時,可以將上述功能存儲在計算機可讀介質(zhì)中或作為計算機可讀介質(zhì)上的一個或多個指令或代碼進行傳輸。計算機可讀介質(zhì)包括計算機存儲介質(zhì)和通信介質(zhì),其中通信介質(zhì)包括便于從一個地方向另一個地方傳送計算機程序的任何介質(zhì)。存儲介質(zhì)可以是計算機能夠存取的任何可用介質(zhì)。以此為例但不限于:計算機可讀介質(zhì)可以包括隨機存儲器(英文全稱:Random Access Memory,英文簡稱:RAM)、只讀存儲器(英文全稱:Read Only Memory,英文簡稱:ROM)、電可擦可編程只讀存儲器(英文全稱:Electrically Erasable Programmable Read Only Memory,英文簡稱:EEPROM)、只讀光盤(英文全稱:Compact Disc Read Only Memory,英文簡稱:CD-ROM)或其他光盤存儲、磁盤存儲介質(zhì)或者其他磁存儲設備、或者能夠用于攜帶或存儲具有指令或數(shù)據(jù)結構形式的期望的程序代碼并能夠由計算機存取的任何其他介質(zhì)。此外。任何連接可以適當?shù)某蔀橛嬎銠C可讀介質(zhì)。例如,如果軟件是使用同軸電纜、光纖光纜、雙絞線、數(shù)字用戶專線(英文全稱:Digital Subscriber Line,英文簡稱:DSL)或者諸如紅外線、無線電和微波之類的無線技術從網(wǎng)站、服務器或者其他遠程源傳輸?shù)?,那么同軸電纜、光纖光纜、雙絞線、DSL或者諸如紅外線、無線和微波之類的無線技術包括在所屬介質(zhì)的定影中。如本發(fā)明所使用的,盤和碟包括壓縮光碟(英文全稱:Compact Disc,英文簡稱:CD)、激光碟、光碟、數(shù)字通用光碟(英文全稱:Digital Versatile Disc,英文簡稱:DVD)、軟盤和藍光光碟,其中盤通常磁性的復制數(shù)據(jù),而碟則用激光來光學的復制數(shù)據(jù)。上面的組合也應當包括在計算機可讀介質(zhì)的保護范圍之內(nèi)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應所述以權利要求的保護范圍為準。