两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于云平臺的高吞吐量路由仿真方法與流程

文檔序號:11253817閱讀:800來源:國知局
本發(fā)明涉及網(wǎng)絡(luò)仿真
技術(shù)領(lǐng)域
:,特別是涉及一種基于云平臺的高吞吐量路由仿真方法。
背景技術(shù)
::當(dāng)前,基于虛擬化的云平臺成為網(wǎng)絡(luò)仿真的主流支撐平臺:與傳統(tǒng)網(wǎng)絡(luò)模擬技術(shù)相比,該技術(shù)能夠提供更加逼真的仿真環(huán)境,與實(shí)物測試床相比,該技術(shù)能夠以非常低的成本輕易地仿真出大規(guī)模網(wǎng)絡(luò)。路由仿真技術(shù)是網(wǎng)絡(luò)仿真的重要內(nèi)容,在云平臺中,常用的路由仿真技術(shù)包括networknamespace路由、全虛擬化路由與輕量級虛擬化路由。其中networknamespace路由吞吐量高,占用系統(tǒng)資源少,但其本身不支持與其不相連網(wǎng)絡(luò)的流量轉(zhuǎn)發(fā);全虛擬化路由能夠支持動態(tài)路由協(xié)議,但其吞吐量不高,尤其是在經(jīng)多跳之后,下降明顯,且其較為占用系統(tǒng)資源,難以大規(guī)模部署;輕量級虛擬化路由占用資源少,能夠支持動態(tài)路由協(xié)議,但吞吐量低,無法滿足虛擬網(wǎng)絡(luò)高吞吐量的要求。中國專利cn103595772a,公開了一種基于虛擬路由器的云數(shù)據(jù)中心網(wǎng)絡(luò)部署方案,能夠方便網(wǎng)管人員進(jìn)行統(tǒng)一管理,節(jié)約網(wǎng)絡(luò)開銷。但該方案中的虛擬路由器基于系統(tǒng)虛擬機(jī)實(shí)現(xiàn),會消耗大量的宿主機(jī)資源,部署在云平臺上效率不高。中國專利cn105681191a,公開了一種基于路由器虛擬化的sdn平臺及實(shí)現(xiàn)方法,能夠?qū)崿F(xiàn)sdn網(wǎng)絡(luò)和傳統(tǒng)網(wǎng)絡(luò)之間良好的數(shù)據(jù)轉(zhuǎn)發(fā)性能和路由功能,其中虛擬路由器拓展性強(qiáng)、靈活性好。但其虛擬路由器也是基于虛擬機(jī)實(shí)現(xiàn)的,如果在復(fù)雜網(wǎng)絡(luò)環(huán)境下,會消耗過多的宿主機(jī)資源,部署在云平臺上效率不高。中國專利cn105827464a,公開了一種可自動化部署的虛擬路由器構(gòu)建方法,可以實(shí)現(xiàn)虛擬路由器自動靈活地部署,大量節(jié)約人力、時間,使用戶可以靈活方便的進(jìn)行虛擬網(wǎng)絡(luò)管理。但與上述兩個專利相同,其虛擬路由器需要依靠虛擬機(jī),在復(fù)雜網(wǎng)絡(luò)環(huán)境下,會消耗過多的宿主機(jī)資源,而且吞吐量一般。技術(shù)實(shí)現(xiàn)要素:針對基于云平臺的網(wǎng)絡(luò)仿真方法不具有轉(zhuǎn)發(fā)全網(wǎng)流量的高吞吐量虛擬路由器問題,本發(fā)明基于openstack云平臺,借助其提供的開發(fā)工具openstacksdk,獲取云平臺的網(wǎng)絡(luò)拓?fù)洌瑸樵破脚_上名為qrouter的虛擬路由器計算并配置靜態(tài)路由,實(shí)現(xiàn)高吞吐量的路由仿真。本發(fā)明解決上述問題的技術(shù)方案如下。一種基于云平臺的高吞吐量路由仿真方法,包括如下步驟:步驟1:在openstack云平臺上,根據(jù)所需要仿真的網(wǎng)絡(luò)拓?fù)?,?gòu)建仿真網(wǎng)絡(luò),包括:構(gòu)建虛擬網(wǎng)絡(luò)、在虛擬網(wǎng)絡(luò)上創(chuàng)建云主機(jī)、在虛擬網(wǎng)絡(luò)間部署qrouter;步驟2:獲取已經(jīng)構(gòu)建成功的仿真網(wǎng)絡(luò)信息;步驟3:基于步驟2得到的仿真網(wǎng)絡(luò)信息,計算出仿真網(wǎng)絡(luò)中各qrouter到其他qrouter的靜態(tài)路由信息,并匯總形成靜態(tài)路由信息集:{routingn,1≤n≤n},其中n為靜態(tài)路由信息的編號,n為靜態(tài)路由信息總條數(shù);步驟4:針對步驟3中每一條靜態(tài)路由信息routingn,提取與之對應(yīng)的qrouterm,其中m為qrouter編號,針對qrouterm,使用網(wǎng)絡(luò)服務(wù)客戶端更新其靜態(tài)路由表。其中,步驟2所述的獲取已經(jīng)構(gòu)建成功的仿真網(wǎng)絡(luò)信息的步驟包括:2.1、使用openstacksdk,獲取openstack的認(rèn)證;通過獲得的認(rèn)證,獲取一個網(wǎng)絡(luò)服務(wù)客戶端;再通過所獲得的網(wǎng)絡(luò)服務(wù)客戶端獲取當(dāng)前網(wǎng)絡(luò)中所有的port信息以及qrouter信息,所述port信息包括該port的id、所屬qrouter的id、所在網(wǎng)絡(luò)id、port的ip地址,所述qrouter信息即qrouterid;2.2、用i表示port的編號,j表示qrouter的編號,則將porti的所屬qrouterid與qrouterj的qrouterid進(jìn)行比較,當(dāng)兩者一致時,則porti的所在網(wǎng)絡(luò)id為qrouterj的一個直接連接的網(wǎng)絡(luò)id;2.3、重復(fù)步驟2.2,直到所有的qrouter都得到與之直連的網(wǎng)絡(luò)id;2.4、創(chuàng)建拓?fù)鋱D,將所有的qrouter作為點(diǎn)加入拓?fù)鋱D中,如果qrouterk與qrouterl有相同的直連網(wǎng)絡(luò)id,那么說明兩個qrouter之間有一條邊,將這條邊加入到拓?fù)鋱D中,其中k、l表示qrouter的編號;將所有的qrouter及qrouter之間的邊都加入到拓?fù)鋱D后,形成了仿真網(wǎng)絡(luò)信息。進(jìn)一步的,步驟3的具體方法為:3.1、使用floyd算法求出拓?fù)鋱D中任意兩點(diǎn)間的最短路徑,每一條最短路徑為一組qrouter的id序列,用{qrouter1,qrouter2,……,qrouterdest}表示;其中qrouter1表示最短路徑的起點(diǎn)qrouter的id,qrouter2表示最短路徑的第二個qrouter的id,qrouterdest表示最短路徑的終點(diǎn)qrouter的id;3.2、針對3.1中每一條最短路徑,qrouter2就是起點(diǎn)qrouter1到終點(diǎn)qrouterdest的下一跳qrouter,通過對比找到qrouter1與qrouter2共同的網(wǎng)絡(luò),qrouter2上在該網(wǎng)絡(luò)中的ip地址就是下一跳ip地址,用nexthopip表示;3.3、針對3.1中每一條最短路徑,在qrouterdest直連的所有網(wǎng)絡(luò)中剔除與起點(diǎn)qrouter1也直連的網(wǎng)絡(luò),形成目標(biāo)網(wǎng)絡(luò)集{net1、net2、……、netq},其中q表示目標(biāo)網(wǎng)絡(luò)個數(shù);3.4、針對3.1中每一條最短路徑,形成靜態(tài)路由信息:{qrouter1、nexthopip、net1},{qrouter1、nexthopip、net2},……,{qrouter1、nexthopip、netq};3.5、匯總每一條最短路徑對應(yīng)的靜態(tài)路由信息,形成靜態(tài)路由信息集:{routingn,1≤n≤n}。本發(fā)明通過提供一種基于云平臺的高吞吐量路由仿真方法,實(shí)現(xiàn)搭建一個基于openstack通過qrouter連通全網(wǎng)的高吞吐量的虛擬網(wǎng)絡(luò)環(huán)境,可用于各項(xiàng)網(wǎng)絡(luò)研究與實(shí)驗(yàn)網(wǎng)絡(luò),本發(fā)明具有以下優(yōu)點(diǎn):1、采用openstack自帶的qrouter,在多跳情況下吞吐量仍然很高;2、通過對qrouter靜態(tài)路由的配置,使qrouter具備了轉(zhuǎn)發(fā)全網(wǎng)流量的能力,滿足了云平臺組建大規(guī)模網(wǎng)絡(luò)的要求;3、使用簡單,只需執(zhí)行腳本文件即可實(shí)現(xiàn)上述功能。附圖說明圖1為一種基于云平臺的高吞吐量路由仿真方法的流程圖。圖2為本發(fā)明使用腳本實(shí)現(xiàn)的流程圖。圖3為本發(fā)明實(shí)例所使用的網(wǎng)絡(luò)拓?fù)鋱D。圖4為自動化腳本執(zhí)行后的效果圖。圖5為吞吐量對比圖。具體實(shí)施方式下面結(jié)合附圖和實(shí)施例,對本發(fā)明做進(jìn)一步描述。本發(fā)明的總體流程圖如圖1所示,技術(shù)方案如下:1.在openstack云平臺上,根據(jù)所需要仿真的網(wǎng)絡(luò)拓?fù)?,?gòu)建仿真網(wǎng)絡(luò),包括:構(gòu)建虛擬網(wǎng)絡(luò)、在虛擬網(wǎng)絡(luò)上創(chuàng)建云主機(jī)、在虛擬網(wǎng)絡(luò)間部署qrouter,如圖3所示。2.獲取已經(jīng)構(gòu)建成功的仿真網(wǎng)絡(luò)信息,包括如下步驟:step2.1:使用openstacksdk,獲取openstack的認(rèn)證;通過獲得的認(rèn)證,獲取一個網(wǎng)絡(luò)服務(wù)客戶端;再通過所獲得的網(wǎng)絡(luò)服務(wù)客戶端獲取當(dāng)前網(wǎng)絡(luò)中所有的port信息以及qrouter信息,所述port信息包括該port的id、所屬qrouter的id、所在網(wǎng)絡(luò)id、port的ip地址,所述qrouter信息即qrouterid;step2.2:用i表示port的編號,j表示qrouter的編號,則將porti的所屬qrouterid與qrouterj的qrouterid進(jìn)行比較,當(dāng)兩者一致時,則porti的所在網(wǎng)絡(luò)id為qrouterj的一個直接連接的網(wǎng)絡(luò)id;step2.3:重復(fù)步驟step2.2,直到所有的qrouter都得到與之直連的網(wǎng)絡(luò)id;step2.4:創(chuàng)建拓?fù)鋱D,將所有的qrouter作為點(diǎn)加入拓?fù)鋱D中,如果qrouterk與qrouterl有相同的直連網(wǎng)絡(luò)id,那么說明兩個qrouter之間有一條邊,將這條邊加入到拓?fù)鋱D中,其中k、l表示qrouter的編號;將所有的qrouter及qrouter之間的邊都加入到拓?fù)鋱D后,形成了仿真網(wǎng)絡(luò)信息。3.計算出上述仿真網(wǎng)絡(luò)中各qrouter到其他qrouter的靜態(tài)路由信息,并匯總形成靜態(tài)路由信息集:{routingn,1≤n≤n},其中n為靜態(tài)路由信息的編號,n為靜態(tài)路由信息總條數(shù);步驟為:step3.1:使用floyd算法求出拓?fù)鋱D中任意兩點(diǎn)間的最短路徑,每一條最短路徑為一組qrouter的id序列,用{qrouter1,qrouter2,……,qrouterdest}表示;qrouter1為最短路徑的起點(diǎn)qrouter的id,qrouter2為最短路徑的第二個qrouter的id,其中qrouterdest為最短路徑的終點(diǎn)qrouter的id;step3.2:針對step3.1中每一條最短路徑,qrouter2就是起點(diǎn)qrouter1到終點(diǎn)qrouterdest的下一跳qrouter,通過對比找到qrouter1與qrouter2共同的網(wǎng)絡(luò),qrouter2上在該網(wǎng)絡(luò)中的ip地址就是下一跳ip地址,用nexthopip表示;step3.3:針對step3.1中每一條最短路徑,在qrouterdest直連的所有網(wǎng)絡(luò)中剔除與起點(diǎn)qrouter1也直連的網(wǎng)絡(luò),形成目標(biāo)網(wǎng)絡(luò)集{net1、net2、……、netq},其中q為目標(biāo)網(wǎng)絡(luò)個數(shù);step3.4:針對step3.1中每一條最短路徑,形成靜態(tài)路由信息:{qrouter1、nexthopip、net1},{qrouter1、nexthopip、net2},……,{qrouter1、nexthopip、netq};step3.5:匯總每一條最短路徑對應(yīng)的靜態(tài)路由信息,形成靜態(tài)路由信息集:{routingn,1≤n≤n}。4.對每一條靜態(tài)路由信息routingn,提取與之對應(yīng)的qrouterm,其中m為qrouter編號,針對qrouterm,使用網(wǎng)絡(luò)服務(wù)客戶端更新其靜態(tài)路由表。根據(jù)上述技術(shù)方案,本實(shí)例部署的openstack包括一個控制節(jié)點(diǎn)、一個網(wǎng)絡(luò)節(jié)點(diǎn)和一個計算節(jié)點(diǎn),物理網(wǎng)絡(luò)分為管理網(wǎng)和控制網(wǎng)??刂乒?jié)點(diǎn)的第一塊網(wǎng)卡連接管理網(wǎng),ip地址為192.168.1.11;網(wǎng)絡(luò)節(jié)點(diǎn)的第一塊網(wǎng)卡連接管理網(wǎng),ip地址為192.168.1.21,第二塊網(wǎng)卡連接隧道網(wǎng),ip地址為10.0.1.21;計算機(jī)節(jié)點(diǎn)的第一塊網(wǎng)卡連接管理網(wǎng),ip地址為192.168.1.31,第二塊網(wǎng)卡連接隧道網(wǎng),ip地址為10.0.1.31。在步驟1中,登陸openstack的dashboard,創(chuàng)建13個虛擬網(wǎng)絡(luò),cidr分別為192.168.1.0/24、192.168.2.0/24、192.168.3.0/24、192.168.4.0/24、192.168.5.0/24、192.168.6.0/24、192.168.6.0/24、192.168.7.0/24、192.168.8.0/24、192.168.9.0/24、192.168.10.0/24、192.168.11.0/24、192.168.11.0/24、192.168.12.0/24、192.168.13.0/24;創(chuàng)建7個qrouter,與網(wǎng)絡(luò)的連接如圖4中拓?fù)鋱D所示。上述技術(shù)方案中的步驟2、3、4通過作者編寫的腳本文件實(shí)現(xiàn),腳本的使用方法為:將腳本文件拷貝到控制節(jié)點(diǎn),然后在腳本目錄執(zhí)行“pythondemo.py”。執(zhí)行之后的結(jié)果如圖4所示,其中拓?fù)鋱D下為各個qrouter執(zhí)行過腳本之后的信息,interface代表網(wǎng)卡,后邊緊接網(wǎng)卡的ip地址;routingtable是qrouter的路由表,每行的開頭代表目的網(wǎng)絡(luò),結(jié)尾代表下一跳ip地址。腳本的工作流程如圖2所示:1.使用openstacksdk,獲取openstack的認(rèn)證;通過獲得的認(rèn)證,獲取一個網(wǎng)絡(luò)服務(wù)客戶端;再通過所獲得的網(wǎng)絡(luò)服務(wù)客戶端獲取當(dāng)前網(wǎng)絡(luò)中所有的port信息以及qrouter信息,所述port信息包括該port的id、所屬qrouter的id、所在網(wǎng)絡(luò)id、port的ip地址,所述qrouter信息即qrouterid;2.用i表示port的編號,j表示qrouter的編號,則將porti的所屬qrouterid與qrouterj的qrouterid進(jìn)行比較,當(dāng)兩者一致時,則porti的所在網(wǎng)絡(luò)id為qrouterj的一個直接連接的網(wǎng)絡(luò)id;3.重復(fù)步驟2,直到所有的qrouter都得到與之直連的網(wǎng)絡(luò)id;4.創(chuàng)建拓?fù)鋱D,將所有的qrouter作為點(diǎn)加入拓?fù)鋱D中,如果qrouterk與qrouterl有相同的直連網(wǎng)絡(luò)id,那么說明兩個qrouter之間有一條邊,將這條邊加入到拓?fù)鋱D中,其中k、l表示qrouter的編號;將所有的qrouter及qrouter之間的邊都加入到拓?fù)鋱D后,形成了仿真網(wǎng)絡(luò)信息。5.使用floyd算法求出拓?fù)鋱D中任意兩點(diǎn)間的最短路徑,每一條最短路徑為一組qrouter的id序列,用{qrouter1,qrouter2,……,qrouterdest}表示;qrouter1為最短路徑的起點(diǎn)qrouter的id,qrouter2為最短路徑的第二個qrouter的id,其中qrouterdest為最短路徑的終點(diǎn)qrouter的id;6.針對步驟5中每一條最短路徑,qrouter2就是起點(diǎn)qrouter1到終點(diǎn)qrouterdest的下一跳qrouter,通過對比找到qrouter1與qrouter2共同的網(wǎng)絡(luò),qrouter2上在該網(wǎng)絡(luò)中的ip地址就是下一跳ip地址,用nexthopip表示;7.針對步驟5中每一條最短路徑,在qrouterdest直連的所有網(wǎng)絡(luò)中剔除與起點(diǎn)qrouter1也直連的網(wǎng)絡(luò),形成目標(biāo)網(wǎng)絡(luò)集{net1、net2、……、netq},其中q為目標(biāo)網(wǎng)絡(luò)個數(shù);8.針對步驟5中每一條最短路徑,形成靜態(tài)路由信息:{qrouter1、nexthopip、net1},{qrouter1、nexthopip、net2},……,{qrouter1、nexthopip、netq};9.匯總每一條最短路徑對應(yīng)的靜態(tài)路由信息,形成靜態(tài)路由信息集:{routingn,1≤n≤n}。10.對每一條靜態(tài)路由信息routingn,提取與之對應(yīng)的qrouterm,其中m為qrouter編號,針對qrouterm,使用網(wǎng)絡(luò)服務(wù)客戶端更新其靜態(tài)路由表。至此完成qrouter靜態(tài)路由的配置,實(shí)現(xiàn)了通過qrouter連通全部虛擬網(wǎng)絡(luò)的目標(biāo),基于上述步驟構(gòu)建的虛擬網(wǎng)絡(luò)可以開展各種測試研究工作?;诒緦?shí)施例,可展開但不限于以下測試工作:(1)在虛擬網(wǎng)絡(luò)192.168.8.0/24與192.168.9.0/24上分別創(chuàng)建一個云主機(jī),命名為vm1和vm2,兩臺云主機(jī)互相執(zhí)行ping命令,結(jié)果表明qrouter具備了轉(zhuǎn)發(fā)非直連網(wǎng)絡(luò)流量的能力;(2)在虛擬網(wǎng)絡(luò)192.168.7.0/24上創(chuàng)建一個云主機(jī),命名為vm3,在vm1和vm3上安裝netperf軟件,使用該軟件測試得到vm1和vm2之間經(jīng)過qrouter轉(zhuǎn)發(fā)的平均吞吐量為16870kb/s,結(jié)果表明qrouter具備高吞吐量;(3)分別通過qrouter與全虛擬化路由器進(jìn)行吞吐量測試,測試結(jié)果(平均值)如圖5所示,結(jié)果表明在經(jīng)過多跳之后,qrouter仍具有很高的吞吐量且吞吐量下降幅度沒有全虛擬化路由器大。上述實(shí)驗(yàn)結(jié)果表明,本發(fā)明提出的一種基于云平臺的高吞吐量路由仿真方法可實(shí)現(xiàn)一個高吞吐量的虛擬路由網(wǎng)絡(luò),解決了基于openstack平臺上qrouter無法連通非直連網(wǎng)絡(luò)、全虛擬化路由器占用過多資源、輕量級路由器吞吐量低的問題。上述具體實(shí)施方案僅用于說明本發(fā)明,而并非對本發(fā)明的限制,在本領(lǐng)域普通技術(shù)人員所具備的知識范圍內(nèi),還可以在不脫離本發(fā)明宗旨的前提下做出各種變化。當(dāng)前第1頁12當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
塘沽区| 庐江县| 汕尾市| 马山县| 揭阳市| 阳新县| 四川省| 六枝特区| 北海市| 滦平县| 桂林市| 奎屯市| 荆州市| 丹江口市| 镇赉县| 崇阳县| 泰和县| 苗栗县| 陵川县| 惠安县| 昭苏县| 汨罗市| 滨州市| 涞水县| 虹口区| 阳新县| 巴彦县| 东源县| 湖南省| 巴里| 舟山市| 明水县| 舒城县| 姚安县| 万荣县| 扬州市| 西藏| 华蓥市| 德保县| 宁乡县| 普定县|