胡 柳
(湖南信息職業(yè)技術(shù)學(xué)院,湖南 長(zhǎng)沙 410200)
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)結(jié)構(gòu)日益復(fù)雜,傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)和管理方式已無(wú)法滿足快速變化的應(yīng)用需求。軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)作為一種新型的網(wǎng)絡(luò)架構(gòu),通過(guò)將網(wǎng)絡(luò)的控制平面與數(shù)據(jù)平面分離,實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)的靈活控制和高效管理。負(fù)載均衡是一種將網(wǎng)絡(luò)流量分配到多個(gè)服務(wù)器或網(wǎng)絡(luò)設(shè)備的技術(shù),其目的是提高網(wǎng)絡(luò)的性能和可靠性。通過(guò)合理地分配網(wǎng)絡(luò)流量,負(fù)載均衡可以避免單個(gè)設(shè)備過(guò)載的情況發(fā)生,從而保證整個(gè)網(wǎng)絡(luò)的穩(wěn)定性和性能。目前,很多學(xué)者對(duì)Mininet網(wǎng)絡(luò)仿真開(kāi)展了相關(guān)的研究工作。傅妍芳等[1]提出了一種可滿足多類型業(yè)務(wù)QoS的動(dòng)態(tài)自適應(yīng)路由算法-拉格朗日松弛多約束(Lagrangian Relaxation based Multiple Constains, LRMC)QoS路由算法,在Mininet仿真網(wǎng)絡(luò)中部署實(shí)現(xiàn)。利用Mininet CLI等功能對(duì)LRMC多約束QoS路由算法進(jìn)行仿真對(duì)比試驗(yàn)。黃凱[2]對(duì)基于Mininet的混合網(wǎng)絡(luò)模擬平臺(tái)開(kāi)展了相關(guān)研究與實(shí)現(xiàn)。周榮富等[3]使用Mininet工具對(duì)SDN網(wǎng)絡(luò)拓?fù)鋷捫阅苓M(jìn)行分析。王德強(qiáng)等[4]使用Mininet工具對(duì)胖樹(shù)SDN網(wǎng)絡(luò)進(jìn)行仿真。楊俊東等[5]使用Mininet工具對(duì)SDN仿真并對(duì)其性能進(jìn)行了分析。張毅等[6]使用Mininet工具對(duì)SDN網(wǎng)絡(luò)帶寬性能進(jìn)行了研究。
本文基于Mininet對(duì)SDN的網(wǎng)絡(luò)負(fù)載均衡進(jìn)行研究,分析OpenFlow協(xié)議技術(shù)及其原理,驗(yàn)證SDN架構(gòu)的功能和基本工作流程,構(gòu)建網(wǎng)絡(luò)負(fù)載均衡仿真研究的實(shí)驗(yàn)環(huán)境,并在Mininet工具中進(jìn)行模擬實(shí)現(xiàn),為進(jìn)一步研究SDN架構(gòu)提供了有效的技術(shù)支撐。
軟件定義網(wǎng)絡(luò)的核心技術(shù)是控制與轉(zhuǎn)發(fā)分離技術(shù),通過(guò)將控制平面的功能抽象出來(lái),控制器可以對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行集中控制和動(dòng)態(tài)管理。控制平面的功能主要包括路由計(jì)算、資源分配、安全策略等,數(shù)據(jù)平面的功能主要包括數(shù)據(jù)包的轉(zhuǎn)發(fā)和處理。軟件定義網(wǎng)絡(luò)的分離架構(gòu)使得控制器的功能更加集中和強(qiáng)大,網(wǎng)絡(luò)的管理和控制更加簡(jiǎn)單、靈活,可以根據(jù)應(yīng)用需求快速調(diào)整網(wǎng)絡(luò)配置,提高網(wǎng)絡(luò)的可靠性和性能。同時(shí),控制器與交換機(jī)之間的通信協(xié)議可以采用標(biāo)準(zhǔn)化接口,使得不同廠商之間的設(shè)備可以相互協(xié)作,提高了網(wǎng)絡(luò)的互操作性和可擴(kuò)展性。在傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)中,控制平面和數(shù)據(jù)平面是緊密耦合在一起的,導(dǎo)致網(wǎng)絡(luò)的管理和控制不夠靈活。
隨著云計(jì)算、物聯(lián)網(wǎng)等技術(shù)的快速發(fā)展,軟件定義網(wǎng)絡(luò)的應(yīng)用場(chǎng)景將越來(lái)越廣泛。未來(lái),軟件定義網(wǎng)絡(luò)將與云計(jì)算、邊緣計(jì)算等技術(shù)相結(jié)合,實(shí)現(xiàn)更加智能化的網(wǎng)絡(luò)管理和控制。同時(shí),隨著5G、6G等新一代移動(dòng)通信技術(shù)的普及和發(fā)展,軟件定義網(wǎng)絡(luò)將在移動(dòng)通信領(lǐng)域發(fā)揮重要作用。此外,軟件定義網(wǎng)絡(luò)還將應(yīng)用于工業(yè)互聯(lián)網(wǎng)、智能交通等領(lǐng)域,推動(dòng)各行業(yè)的數(shù)字化轉(zhuǎn)型和創(chuàng)新發(fā)展。SDN的架構(gòu)體系如圖1所示。
圖1 SDN架構(gòu)體系
OpenFlow是一種網(wǎng)絡(luò)通信協(xié)議,它允許網(wǎng)絡(luò)管理員通過(guò)網(wǎng)絡(luò)控制器來(lái)遠(yuǎn)程管理和配置網(wǎng)絡(luò)設(shè)備,從而實(shí)現(xiàn)網(wǎng)絡(luò)流量的靈活控制。OpenFlow技術(shù)架構(gòu)由3個(gè)主要組件組成:OpenFlow控制器、OpenFlow交換機(jī)和OpenFlow協(xié)議。OpenFlow控制器是整個(gè)OpenFlow架構(gòu)的核心,負(fù)責(zé)管理和控制網(wǎng)絡(luò)設(shè)備的流量。控制器通過(guò)與交換機(jī)上的OpenFlow協(xié)議進(jìn)行通信,可以遠(yuǎn)程控制交換機(jī)的行為,包括流表的生成、修改和刪除等。OpenFlow交換機(jī)是實(shí)現(xiàn)OpenFlow協(xié)議的網(wǎng)絡(luò)設(shè)備,包含一個(gè)或多個(gè)流表,用于根據(jù)匹配的規(guī)則來(lái)處理網(wǎng)絡(luò)流量。每個(gè)流表包含一系列的表項(xiàng),每個(gè)表項(xiàng)定義了一組匹配條件和相應(yīng)的操作。當(dāng)交換機(jī)接收到數(shù)據(jù)包時(shí),會(huì)查找流表中匹配的表項(xiàng),并根據(jù)表項(xiàng)的操作來(lái)處理數(shù)據(jù)包。
Mininet是一個(gè)用于研究和模擬SDN的開(kāi)源工具。通過(guò)使用自定義的Linux內(nèi)核和用戶空間程序,實(shí)現(xiàn)高度可配置和可擴(kuò)展的網(wǎng)絡(luò)環(huán)境。在Mininet中,SDN元素和命令扮演著重要角色,使得用戶能夠靈活地控制和管理網(wǎng)絡(luò)行為。SDN元素在Mininet中主要包括OpenFlow控制器、OpenFlow交換機(jī)和虛擬機(jī)。OpenFlow控制器是SDN的核心組件,負(fù)責(zé)管理和控制網(wǎng)絡(luò)流量。控制器與OpenFlow交換機(jī)進(jìn)行通信,實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)設(shè)備的集中式控制。OpenFlow交換機(jī)則是執(zhí)行SDN控制器指令的實(shí)際設(shè)備,能夠根據(jù)控制器的決策來(lái)轉(zhuǎn)發(fā)和處理流量。虛擬機(jī)則是用于運(yùn)行用戶自定義應(yīng)用程序的環(huán)境,通過(guò)與控制器和交換機(jī)進(jìn)行交互,可以實(shí)現(xiàn)各種網(wǎng)絡(luò)實(shí)驗(yàn)和測(cè)試。在Mininet中,用戶可以使用一系列命令來(lái)配置和控制SDN元素,其中一些常用的命令如下。
(1)mn:用于啟動(dòng)Mininet模擬器。通過(guò)指定不同的參數(shù)來(lái)配置網(wǎng)絡(luò)拓?fù)?、?jié)點(diǎn)數(shù)量、鏈路帶寬等。
(2)controller:用于添加控制器節(jié)點(diǎn)到網(wǎng)絡(luò)中。指定控制器的IP地址和端口號(hào)以及使用的控制器類型(如Floodlight、Ryu等)。
(3)switch:用于添加OpenFlow交換機(jī)節(jié)點(diǎn)到網(wǎng)絡(luò)中。指定交換機(jī)的IP地址和端口號(hào)以及使用的OpenFlow協(xié)議版本。
(4)host:用于添加虛擬機(jī)節(jié)點(diǎn)到網(wǎng)絡(luò)中。指定虛擬機(jī)的IP地址和MAC地址以及使用的操作系統(tǒng)和應(yīng)用程序。
(5)link:用于創(chuàng)建網(wǎng)絡(luò)連接。指定連接的2個(gè)節(jié)點(diǎn)以及鏈路的帶寬和延遲等參數(shù)。
(6)run:用于啟動(dòng)模擬并開(kāi)始執(zhí)行定義的應(yīng)用程序或腳本,通過(guò)該命令來(lái)啟動(dòng)各種網(wǎng)絡(luò)實(shí)驗(yàn)和測(cè)試。
(7)pingall、tracerouteall等:這些命令用于在網(wǎng)絡(luò)中執(zhí)行特定的網(wǎng)絡(luò)測(cè)量任務(wù),如ping和traceroute等。通過(guò)這些命令可以在Mininet中構(gòu)建各種不同的網(wǎng)絡(luò)拓?fù)浜团渲?從而實(shí)現(xiàn)靈活的網(wǎng)絡(luò)研究和實(shí)驗(yàn),Mininet還支持Python腳本自動(dòng)化地執(zhí)行復(fù)雜的網(wǎng)絡(luò)操作和管理任務(wù)。
軟件定義網(wǎng)絡(luò)中可采用基于流量的負(fù)載均衡策略、基于服務(wù)的負(fù)載均衡策略、基于內(nèi)容的負(fù)載均衡策略等方式來(lái)優(yōu)化網(wǎng)絡(luò)性能、提高網(wǎng)絡(luò)資源的利用率。本文采用基于流量調(diào)度的負(fù)載均衡策略開(kāi)展仿真實(shí)驗(yàn),核心原理是將流量的轉(zhuǎn)發(fā)路徑進(jìn)行分析、管理、調(diào)整,通過(guò)SDN控制器的配置轉(zhuǎn)發(fā)規(guī)則來(lái)實(shí)現(xiàn)全網(wǎng)的負(fù)載均衡。控制器獲取全局網(wǎng)絡(luò)視圖后,對(duì)空閑鏈路、最短路徑、流量表進(jìn)行更新,將網(wǎng)絡(luò)流量中的大小流進(jìn)行區(qū)分與標(biāo)記,通過(guò)自適應(yīng)算法對(duì)其轉(zhuǎn)發(fā)路徑進(jìn)行計(jì)算并重定向轉(zhuǎn)發(fā)。流量轉(zhuǎn)發(fā)流程如圖2所示。
圖2 流量轉(zhuǎn)發(fā)流程
創(chuàng)建模擬環(huán)境場(chǎng)景:3臺(tái)控制器、4臺(tái)交換機(jī)、9臺(tái)主機(jī),拓?fù)浣Y(jié)構(gòu)如圖3所示,并通過(guò)mn命令創(chuàng)建模型。
圖3 模擬拓?fù)?/p>
針對(duì)全局網(wǎng)絡(luò)空閑情況下,由域1內(nèi)主機(jī)h1向域3內(nèi)主機(jī)h8發(fā)出50 M的測(cè)試流量。此時(shí),全局網(wǎng)絡(luò)流量在正常情況下按流表默認(rèn)情況進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),全局網(wǎng)絡(luò)使用正常,網(wǎng)絡(luò)延時(shí)小、響應(yīng)及時(shí),對(duì)其他主機(jī)間的數(shù)據(jù)傳輸未產(chǎn)生明顯影響。
針對(duì)全局網(wǎng)絡(luò)繁忙情況下,由域1內(nèi)主機(jī)h1向域3內(nèi)主機(jī)h8發(fā)出100 M測(cè)試流量,在此過(guò)程中各域內(nèi)的其他主機(jī)之間也存在著數(shù)據(jù)傳輸,交換機(jī)處于不斷轉(zhuǎn)發(fā)過(guò)程中。同時(shí),也根據(jù)流量轉(zhuǎn)發(fā)流程進(jìn)行流量轉(zhuǎn)發(fā)及流表更新,包括優(yōu)先級(jí)、鏈路狀態(tài)、類型等信息。整個(gè)仿真過(guò)程中各主機(jī)采用Wireshark軟件抓取流量信息并進(jìn)行記錄分析。
在全局網(wǎng)絡(luò)空閑情況下,主機(jī)h1與h8通信過(guò)程暢通,使用鏈路“h1-S1-S2-S3-h8”,對(duì)其他主機(jī)間的通信影響小,全局網(wǎng)絡(luò)運(yùn)行通暢。在進(jìn)行數(shù)據(jù)傳輸時(shí),交換機(jī)流表、鏈路狀態(tài)、優(yōu)先級(jí)也進(jìn)行了相應(yīng)地更新。在全局網(wǎng)絡(luò)繁忙情況下,由h1往h8發(fā)送100 M測(cè)試流量時(shí),由于此時(shí)h4和h9等其他主機(jī)也在進(jìn)行大流量數(shù)據(jù)轉(zhuǎn)發(fā),鏈路“h1-S1-S2-S3-h8”中的“S2-S3”鏈路狀態(tài)為“忙”,根據(jù)轉(zhuǎn)發(fā)策略調(diào)整轉(zhuǎn)發(fā)路徑為“h1-S1-S2-S4-S3-h8”,雖然傳輸過(guò)程節(jié)點(diǎn)數(shù)增加1,但是數(shù)據(jù)傳輸效率更具優(yōu)勢(shì),全網(wǎng)利用率得到較大提升,從而實(shí)現(xiàn)不同主機(jī)之間的數(shù)據(jù)負(fù)載均衡。
SDN作為未來(lái)網(wǎng)絡(luò)發(fā)展新趨勢(shì)已經(jīng)得到了很大的關(guān)注,Mininet仿真工具能方便地進(jìn)行網(wǎng)絡(luò)仿真實(shí)驗(yàn)。本文通過(guò)對(duì)網(wǎng)絡(luò)空閑和繁忙情況下對(duì)主機(jī)間的通信進(jìn)行網(wǎng)絡(luò)負(fù)載均衡及網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)模擬仿真,結(jié)合控制器對(duì)網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)及鏈路狀態(tài)管理,能有效提升網(wǎng)絡(luò)資源利用率,實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡。同時(shí),Mininet仿真工具能進(jìn)行可視化操作,為初學(xué)者研究SDN提供了良好的平臺(tái)。