本發明涉及計算機網絡應用
技術領域:
,更具體地,涉及一種SDN網絡與IP網絡的數據交互方法。
背景技術:
:軟件定義網絡(SoftwareDefineNetworking)最早是由美國斯坦福大學Cleanslate研究組提出的一種新型的網絡體系架構,其核心思想是將控制平面與轉發平面分離,采用集中控制的方式,通過軟件編程和標準化的開發接口使網絡更加開放、靈活及具備可拓展性,從而能夠在了解整個網絡信息的基礎上更好的實現對網絡的精細管理和優化,有利于促進網絡技術的發展與進步。雖然SDN網絡具有眾多優點,但由于SDN網絡的架構對于現階段的網絡架構是顛覆性的改變,其對數據報文的處理模式和硬件設備與現在的路由交換設備有很大差異,目前SDN網絡與IP網絡并不能直接實現互連通信,從傳統的IP網絡過渡到SDN網絡將會是一個異常復雜和漫長的道路,因此研究IP網絡和SDN網絡共存下的通信機制具有非常重要的意義。現有的一種利用BGP協議完成SDN網絡和IP網絡互連的通信方法是將整個SDN網絡看作一個虛擬標準路由器。這種方案中將SDN控制器模擬成一個路由器向BGP邊緣路由器發送SDN網絡信息,然后SDN控制器從BGP邊緣路由器獲取IP網絡的路由信息。但是這種方法在具體實施的時候SDN控制器需要有多個物理網口與BGP邊緣路由器相連,并且需要控制器參與處理龐大的EBGP路由信息,給控制器帶來一定負擔。這種方法的靈活性和可拓展性較差。技術實現要素:本發明為解決以上現有技術的難題,提供了一種SDN網絡與IP網絡的數據交互方法,該方法在SDN網絡內增設一個本地主機,并使本地主機和IP網絡的邊緣路由器實現SDN網絡、IP網絡拓撲信息的共享,SDN控制器根據共享的路由信息即可確定數據轉發的路徑,而在構建數據轉發路徑后,不需要SDN控制器再參與消息解析和計算新路徑,減輕了SDN控制器處理負擔。為實現以上發明目的,采用的技術方案是:一種SDN網絡與IP網絡的數據交互方法,所述SDN網絡包括SDN控制器、本地主機、主機j和邊緣交換機;所述IP網絡包括邊緣路由器和主機k,主機k和邊緣路由器物理連接;SDN控制器與本地主機物理連接,SDN控制器與邊緣交換機邏輯連接,邊緣交換機與邊緣路由器、主機j物理連接,本地主機與邊緣交換機邏輯連接,本地主機與邊緣路由器邏輯連接;所述數據交互方法具體包括以下步驟:(1)本地主機與邊緣路由器實現SDN網絡、IP網絡拓撲信息的共享S11.SDN控制器從本地主機處獲取SDN網絡的路由信息,了解SDN網絡的拓撲結構;S12.邊緣路由器通過邊緣交換機向本地主機發送協議數據包,邊緣交換機接收協議數據包后將協議數據包以Packet_In消息的形式轉發至SDN控制器;S13.SDN控制器判斷協議數據包的目的地是否為本地主機,若是則計算并選擇協議數據包從邊緣交換機傳輸至本地主機的路徑,然后SDN控制器向選擇的路徑沿途的邊緣交換機下發流表項,從而建立起數據路徑;S14.邊緣路由器的發送的協議數據包通過數據路徑傳輸至本地主機,本地主機對接收的協議數據包進行處理后得到IP網絡的路由信息,然后將得到的IP網絡的路由信息傳輸給SDN控制器,SDN控制器進行存儲;S15.本地主機通過邊緣交換機向邊緣路由器發送協議數據包,邊緣交換機接收協議數據包后將協議數據包以Packet_In消息的形式轉發至SDN控制器;S16.SDN控制器判斷協議數據包的目的地是否為邊緣路由器,若是則計算并選擇協議數據包由本地主機傳輸至邊緣路由器的路徑,然后SDN控制器向選擇的路徑沿途的邊緣交換機下發流表項,從而建立起數據路徑;S17.本地主機的發送的協議數據包通過數據路徑傳輸至邊緣路由器,邊緣路由器對接收的協議數據包進行處理后得到SDN網絡的路由信息,然后進行存儲;(2)SDN網絡與IP網絡的數據交互1)IP網絡的主機k向SDN網絡的主機j發送數據S21.IP網絡的主機k發送ARP請求數據報文,目的IP為主機j,ARP請求數據報文通過邊緣路由器的傳遞作用后到達邊緣交換機,邊緣交換機將ARP請求數據報文以Packet_In消息的形式轉發至SDN控制器;S22.SDN控制器判斷ARP請求數據報文的目的IP是否為SDN網絡的主機,若是則對邊緣交換機至主機j之間的路徑進行選擇,然后SDN控制器向選擇的路徑沿途的邊緣交換機下發雙向的流表項,從而建立起邊緣交換機至主機j之間的數據路徑;S23.SDN控制器封裝ARP回復數據包,并以Packet_Out消息的形式下發給邊緣交換機,邊緣交換機將該消息轉發至邊緣路由器,邊緣路由器再傳遞至主機k;S24.主機k接收到ARP回復數據包后,開始向主機j發送數據;2)SDN網絡的主機j向IP網絡的主機k發送數據S25.SDN網絡的主機j發送ARP請求數據報文,目的IP為主機k,ARP請求數據報文傳遞到邊緣交換機,邊緣交換機將ARP請求數據報文以Packet_In消息的形式轉發至SDN控制器;S26.SDN控制器判斷ARP請求數據報文的來源IP是否為SDN網絡的主機,若是則對邊緣交換機至邊緣路由器之間的路徑進行選擇,SDN控制器向選擇的路徑沿途的邊緣交換機下發雙向的流表項,從而建立起邊緣交換機到邊緣路由器之間的數據路徑;S27.SDN控制器封裝ARP回復數據包,并以Packet_Out消息的形式下發給邊緣交換機,邊緣交換機將該消息轉發至主機j;S28.主機j接收到ARP回復數據包后,開始向主機k發送數據。優選地,所述SDN控制器定時向SDN網絡中的邊緣交換機發送狀態請求信息,然后根據邊緣交換機的回復計算出邊緣交換機各個端口的實時流量數據,根據計算的數據為路徑的選取提供依據。優選地,所述(1)、(2)中對路徑進行選取時,選取的是兩個設備之間最短的路徑。優選地,所述(1)、(2)中建立起數據路徑后,SDN網絡定時向SDN網絡中的邊緣交換機發送端口狀態請求消息,并根據邊緣交換機的回復感知鏈路流量狀況,然后重新建立起優化后的路徑。與現有技術相比,本發明的有益效果是:本發明提供的方法在SDN網絡內增設一個本地主機,并使本地主機和IP網絡的邊緣路由器實現SDN網絡、IP網絡拓撲信息的共享,SDN控制器根據共享的路由信息即可確定數據轉發的路徑,而在構建數據轉發路徑后,不需要SDN控制器再參與消息解析和計算新路徑,減輕了SDN控制器處理負擔。與現有技術相比,其可擴展性和靈活性得到了增強。附圖說明圖1為SDN網絡和IP網絡的架構圖一。圖2為方法的流程圖。圖3為SDN網絡和IP網絡的架構圖二。具體實施方式附圖僅用于示例性說明,不能理解為對本專利的限制;以下結合附圖和實施例對本發明做進一步的闡述。實施例1SDN網絡、IP網絡的框架具體如圖1所示,其中邊緣路由器R1的端口1直連邊緣交換機S1,該端口IP地址為100.0.0.1,MAC地址為00:00:00:00:00:01,邊緣路由器R2的端口1直連邊緣交換機S2,該端口IP地址為100.0.0.2,MAC地址為00:00:00:00:00:02;由邊緣交換機、控制器和本地主機構成的SDN網絡,其中本地主機上連接邊緣交換機S3的接口Eth0設置兩個虛擬網口(IP:10.0.1.1,10.0.1.2),設置MAC地址為00:00:00:00:00:03,IP網絡通過邊緣路由器R1、R2與SDN網絡的邊緣交換機S1、S2物理直連,邊緣交換機S1的端口1連接邊緣路由器R1,邊緣交換機S2的端口1連接邊緣路由器R2;SDN網絡內,控制器IP地址為10.0.2.2,本地主機的端口2與其物理直連,接口地址為10.0.2.1;本地主機的端口1與邊緣交換機S3的端口3物理直連,與邊緣路由器R1、邊緣路由器R2邏輯相連;在圖1所示的拓撲圖中,SDN網絡、IP網絡拓撲信息的共享的具體過程如下:(1)控制器啟從本地主機處獲取SDN網絡的路由信息,以了解全網拓撲結構;(2)IP網絡的邊緣路由器R1發出到邊緣交換機S1的協議數據包由于沒有相關匹配的流表項被以Packet_In消息的形式轉發至控制器;(3)Ryu控制器接解析此Packet_In消息,得到結果如下:(4)控制器根據分析判斷出這個包目的地是SDN網絡內的本地主機,并且根據掌握的全局視圖對數據包要到達的目的主機的路徑進行分析計算,得到以下路徑:S1-S3-本地主機。(5)控制器向沿途的邊緣交換機下發流表項,建立數據路徑:邊緣交換機S1上下發的流表項規則:匹配規則:eth_type=IPV4,eth_dst=00:00:00:00:00:03,ipv4_dst=10.0.1.1處理方式:將數據包從端口2轉發邊緣交換機S2上下發的流表項規則:匹配規則:eth_type=IPV4,eth_dst=00:00:00:00:00:03,ipv4_dst=10.0.1.1處理方式:將數據包從端口3轉發然后將匹配規則中源IP、MAC地址改為本地主機的地址,將目的IP和MAC改為邊緣路由器R1的地址,將出端口改為數據流入端口,再下發兩條流表,建立雙向通信路徑,經過上述步驟,后續從邊緣路由器R1發往本地主機的協議數據包就可以沿此路徑到達本地主機,類似的,本地主機發出的數據包可以按照反向路徑到達邊緣路由器R1,這樣邊緣路由器R1與SDN網絡內本地主機就完成了網絡拓撲信息的互通。下面結合圖2的數據包轉發流程圖以及圖3的網絡結構拓撲圖對數據路徑建立進行說明。這里網絡拓撲圖配置與圖1類似,主機H1的IP地址為192.168.1.1,所在網絡為192.168.1.0/24,主機H2的IP地址為192.168.2.1,所在網絡為192.168.2.0/24,與SDN網絡相連的邊緣路由器IP地址是10.0.0.2。SDN網絡內主機H3的IP地址為192.168.3.1,MAC地址為00:00:00:00:00:04。由IP網絡中的主機H1到SDN網絡中的主機H3數據路徑建立步驟如下:(1)H1發出一個ARP請求數據報文,目的IP為H3,通過邊緣路由器R1,經邊緣交換機以Packet_In消息的形式轉發至控制器;(2)控制器解析目的IP,判斷出是發往本地主機的ARP數據請求報文,通過與在DHCP服務中獲得的主機位置信息表獲取到H3的MAC地址,相連接的邊緣交換機S4以及出端口ETH3,信息表內容如下:IPMACDPIDPORT_NO192.168.3.100:00:00:00:00:0443(3)控制器封裝ARP回復數據包,以Packet_Out的形式下發給S1,并告知S1將此數據流從端口1轉發出去;(4)控制器根據源邊緣交換機S1以及目的邊緣交換機S4計算出最短路徑S1-S2-S4,沿路徑下發一對雙向流表項:匹配規則1:目的IP:192.168.3.1,執行動作:修改數據報包頭的目的MAC為H3的MAC地址00:00:00:00:00:04;匹配規則2:目的IP:192.168.1.0,執行動作:修改數據報包頭的目的MAC為R1的MAC地址00:00:00:00:00:01;(5)H1收到ARP回復報文后,認為數據路徑已經建立,開始向H3傳送數據報文。建立了雙向路徑,可以在SDN網絡內主機H3向H1通信時,不需要控制器再參與消息解析和計算新路徑,減輕了控制器處理負擔,使系統更加靈活便捷。需要補充的是,控制器會定時向各個邊緣交換機發出狀態請求消息,根據邊緣交換機的回復感知鏈路流量狀況重新建立優化后的數據路徑。本例中若H2同時向H3發送數據,建立數據路徑S2-S4,控制器感知到由H1-H3路徑中帶寬占用率較高,而有備用路徑S1-S3-S4較空閑,會自動將原路徑切換到備用路徑上,以提高鏈路利用率。由SDN網絡內主機H3向IP網絡中主機H1通信時,需要獲取達到目的網絡的下一跳地址,這里H1所在的網絡為192.168.1.0/24,它與SDN網絡相連接的邊界路由器IP地址是100.0.0.1,也就是說,去往192.168.1.0/24網絡的下一跳地址100.0.0.1。在邊緣路由器R1與SDN網絡內本地主機建立起連接后,邊緣路由器R1宣布自己域內路由信息,本地主機更新自己的路由表:NetworkNextHop192.168.1.0/24100.0.1.0控制器中從本地主機獲取這條路由信息后添加一條路由條目,如下所示:R1(192.168.1.0/24,下一跳:本地)--->本地主機(192.168.1.0/24,下一跳:100.0.0.1)--->控制器(192.168.1.0/24,下一跳:100.0.0.1)獲取這條路由條目后,控制器計算傳輸最短路徑S4-S2-S1,并且下發一對雙向流表:匹配規則1:目的IP:192.168.1.0,執行動作:修改數據報包頭的目的MAC為R1的MAC地址00:00:00:00:00:01;匹配規則2:目的IP:192.168.3.1,執行動作:修改數據報包頭的目的MAC為H3的MAC地址00:00:00:00:00:04。建立雙向流表后,與之前所述類似,當IP網絡主機訪問SDN網絡主機時,就不需要控制器再次解析消息計算路徑,從而減輕了控制器的負擔。顯然,本發明的上述實施例僅僅是為清楚地說明本發明所作的舉例,而并非是對本發明的實施方式的限定。對于所屬領域的普通技術人員來說,在上述說明的基礎上還可以做出其它不同形式的變化或變動。這里無需也無法對所有的實施方式予以窮舉。凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明權利要求的保護范圍之內。當前第1頁1 2 3