999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Docker的網絡仿真平臺設計與實現

2023-06-25 12:13:35黃俊陳曦吳濤
現代信息科技 2023年4期
關鍵詞:計算機網絡

黃俊 陳曦 吳濤

摘? 要:網絡模擬仿真類軟件是計算機網絡體系結構、協議、算法研究和教學的關鍵支撐,研發此類軟件對于網絡強國戰略具有重要意義。目前市面上此類軟件存在保真度較低、部署不便等問題,需要一款高保真、易編程的網絡模擬仿真軟件。針對上述問題,在SDN理念及框架下,采用Docker等輕量級技術,搭建容器化網絡仿真平臺,一體化提供虛擬網絡的拓撲部署、流量注入等功能,用于觀察、驗證、分析、優化網絡,能夠廣泛支持計算機網絡的研究與教學。

關鍵詞:網絡仿真;Docker;高保真;計算機網絡

中圖分類號:TP311.5? 文獻標識碼:A? 文章編號:2096-4706(2023)04-0001-06

Design and Implementation of Network Simulation Platform Based on Docker

HUANG Jun1, CHEN Xi1,2, WU Tao3

(1.School of Computer Science and Engineering, Southwest Minzu University, Chengdu? 610041, China;

2.School of Information and Communication Engineering, University of Electronic Science and Technology of China, Chengdu? 611731, China;

3.School of Computer Science, Chengdu University of Information Technology, Chengdu? 610225, China)

Abstract: The software of network simulation is the key support of computer network system architecture, protocol, algorithm research and teaching. The development of such software is of great significance for network power strategy. At present, there are many problems in such software on the market, such as low fidelity and inconvenient deployment. A high fidelity and easy programming network simulation software is urgently needed. To solve these problems, under the SDN concept and framework, this paper adopts Docker and other lightweight technologies, builds a containerized network simulation platform. It provides the topology deployment, traffic injection and other functions of the virtual network for observation, verification, analysis, and optimization of the network to widely support the research and teaching of computer network.

Keywords: network simulation; Docker; high fidelity; computer network

0? 引? 言

當今世界互聯網正處于飛速發展階段,大數據、云計算和人工智能等IT領域相繼興起,這些行業的正常運作必須基于網絡基礎設施和網絡技術,網絡模擬仿真[1]就成了計算機網絡體系結構、協議、算法研究的關鍵支撐。網絡模擬仿真可以根據用戶的需求自主設計和部署網絡模型[2],在消耗相對較少的費用成本和時間成本的情況下,了解網絡在不同條件下的各種特性[3],同時獲取網絡研究的海量高效的數據,提供了一個便捷、高效的觀察、驗證、分析、優化網絡的手段,在現代互聯網的設計和研究中的作用正變得越來越大。

然而現有網絡仿真和模擬軟件還存在著多方面的問題[4],主要集中在協議配置驗證困難、用戶流量注入困難、海量資源供應困難等[5],若能在網絡協議、算法的設計和驗證中,充分融合網絡仿真的易編程性和網絡模擬的高保真特性,這對于快速、便捷、準確、真實地實施網絡驗證,具有重要價值。針對上述問題,本文提出基于Docker[6]的網絡仿真平臺,采用Docker、Open vSwitch[7]等輕量級虛擬化技術,配合SDN控制器和Docker容器集群框架,利用PyQt5[8]開發前端操作界面,提供虛擬網絡拓撲的設計部署、海量用戶流量的靈活注入等關鍵功能,支撐網絡仿真、網絡協議驗證,助力網絡研發。

1? 相關技術

1.1? Docker

Docker是一種開源容器引擎,其部署于宿主機中具有更高的啟動效率和更少的性能開銷。本平臺以Docker容器為核心構建虛擬網絡中的各虛擬節點,配合虛擬鏈路技術形成虛擬網絡在物理宿主機上進行仿真。同時Docker具有完整的網絡協議棧,結合Quagga創建支持多種路由協議的路由器,能夠更加真實準確地再現網絡,極大提高網絡的保真度,方便對網絡協議的監控和研究。

1.2? PyQt5

PyQt5是一個跨平臺的Python開發庫,包含一組Python模塊,主要用于開發圖形用戶界面。本平臺主要使用PyQt5中的QtCore、QtWidgets、QtGui模塊開發前端界面,利用其信號槽特性與界面中的各功能按鈕綁定,完成與平臺后端各函數的交互,以實現平臺各項功能。

1.3? OpenvSwitch

OpenvSwitch簡稱OVS,是一種開源的、支持多種協議的虛擬交換機,其作為虛擬端口靈活性更高,與傳統交換機相比具有良好的編程可擴展性,同時也具備網絡隔離和數據轉發功能,本平臺使用OVS技術并結合虛擬路由器實現不同局域網絡中主機的數據轉發。

1.4? veth-pair

veth-pair是Linux系統底下一種成對出現的虛擬網絡設備,用于連接兩個虛擬網絡設備,本文平臺中的網元與網元之間即通過veth-pair技術連接,其一端與網絡協議棧連接,一端在網元之間彼此相連,以實現虛擬網絡中的節點連通。

2? 平臺設計

2.1? 框架設計

本文利用輕量級虛擬化技術,實現網絡設備控制平面和數據平面的模擬,結合網絡模擬的高保真性和網絡仿真的易編程性,充分融合發揮兩者技術優勢,提出高保真、一體化的網絡仿真平臺,能夠對網絡協議進行監控,對網絡流量進行統計,對網絡配置進行驗證,從而達到觀察、分析、優化網絡的目的。

結合以上對平臺的描述,本平臺架構如圖1所示,根據前后端到計算機底層劃分為4個層次,依次為用戶界面層、網絡實驗層、虛擬網絡層、基礎設施層。下面對各層次進行詳細介紹。

2.1.1? 用戶界面層

本平臺利用PyQt5提供用戶界面,呈現實驗列表、實驗手冊、拓撲結構板塊,利用X Server圖形接口服務器提供進入節點內部的圖形化UI,如Wireshark、packETH、Firefox等,Terminal終端提供進入節點內部的命令行UI。

2.1.2? 網絡實驗層

呈現平臺包含的實驗,分為SDN實驗、TCP/IP實驗、路由與交換實驗、網絡安全實驗等。

2.1.3? 虛擬網絡層

OVS虛擬交換機能夠連接網絡設備(如虛擬路由器、防火墻等)和終端設備(如虛擬計算機、服務器等),使網絡可編程擴展,Docker容器可通過veth-pair與OVS交換機直連,實現容器間的通信。

2.1.4? 基礎設施層

平臺所用到的Docker鏡像存儲在本地鏡像倉庫里,包括主機、路由器、服務器等鏡像,所有鏡像均可使用提供的Dockerfile通過Docker build命令構建。本平臺部署在Linux系統上,在Python環境下運行。

2.2? 功能設計

2.2.1? 前后端設計

本平臺采用前后端分離的方式開發,前端呈現用戶操作界面,提供一鍵式部署拓撲結構、節點呈現、操控節點等功能,構成交互式網絡模擬環境,同時界面提供顯示拓撲結構的窗口,用于反應網絡中各節點間連接情況,界面呈現虛擬網絡中各節點操作臺供用戶調用節點功能。后端則為前端提供實現各功能實現、接口設計等,具體實現見3.1節前后端實現。

2.2.2? 拓撲部署

后端部署拓撲設計階段生成的shell文件,利用Docker、OVS等輕量級虛擬化技術,實現低開銷的網絡設備、拓撲結構模擬,生成虛擬網絡并部署在底層宿主機(物理機、虛擬機均可)之上,各節點配置虛擬網絡設備接口,實現節點之間的相互通信,具體實現見3.2節部署功能實現。

2.2.3? 流量注入

一方面,Docker提供各主流編程語言的API支持(Python、Java、Go等),用于與容器交互,無須人工操作容器,同時利用Docker API可以方便地啟停容器、調用容器內部功能,直接運行邏輯腳本即實現用戶流量的靈活注入。另一方面,用戶可通過進入容器內部的方式,執行輸入命令或調用packETH、瀏覽器等圖形化應用的形式向網絡注入流量。與傳統網絡仿真工具通過編程對協議行為、時序、語義進行模仿不同,本平臺搭建的整個虛擬網絡運行的是真實的協議。本節具體實現見3.3節流量注入功能實現。

2.2.4? 網絡監控

采用非侵入式設計對部署的整個虛擬網絡進行監控,監控模塊和實驗部署模塊互不影響,實現高內聚低耦合,同時對Wireshark、Pyshark等抓包工具進行封裝,利用X Server技術和Docker自帶命令行工具實現容器級別的實時監控,對節點中抓取的流量進行預處理并用Python作圖工具matplotlib作圖,用戶在需要的時候平臺可準確直觀地呈現網絡中的流量,具體實現見3.4節網絡監控功能實現。

3? 平臺實現與應用

本節首先對2.2節各功能實現作具體闡述,之后展示本文設計并實現的網絡仿真平臺并作詳細介紹,最后補充說明本平臺投入實際應用的情況。

3.1? 前后端實現

針對2.2節的第一部分前后端設計,平臺前端利用PyQt5展示圖形化用戶界面,為用戶提供操作接口,主要利用QTreeWidget呈現實驗列表,QLabel空間呈現實驗手冊與拓撲結構圖,部署與銷毀操作按鈕根據信號槽連接對應腳本命令,平臺下方采用生成子界面的方式將節點分類展示(如主機、路由器等),每個節點的功能按鈕均添加對應功能的信號槽,此部分核心代碼如下:

self.tree = QTreeWidget(self)

self.tree.setColumnCount(1)

self.tree.setHeaderLabels([‘實驗列表])

htm_name = setting[experiment_name][‘exp_doc]

png_name = setting[experiment_name][‘exp_topo]

self.button_run = QPushButton(self)

self.button_run.clicked.connect(self.run_topo)

self.button_del = QPushButton(self)

self.button_del.clicked.connect(self.del_topo)

后端主要采用Python開發,包含前端各功能按鈕信號槽對應的功能函數,如部署與銷毀拓撲等,后端提供平臺所運行的實驗腳本與所需命令工具。

3.2? 部署功能實現

針對2.2節的第二部分部署功能,平臺利用Docker+OVS+

veth-pair技術將拓撲結構的部署邏輯封裝成shell腳本,用戶點擊前端實驗列表中的實驗,后端生成點擊事件并發送到封裝好的Python函數,傳入參數并根據實驗描述json文件將相應的實驗手冊、拓撲結構圖傳入前端控件,相應實驗腳本被選中以等待部署。點擊“部署拓撲”,后端判斷是否有正在運行的Docker容器,如果有則提示“銷毀拓撲”,銷毀后再次點擊部署,被選中的實驗腳本參數傳入已封裝的執行shell命令的Python函數,部署拓撲首先執行拓撲工具utils內的x.sh打開圖形接口服務器,之后運行clean.sh做必要的清理工作,停止并銷毀正在運行的Docker容器、交換機等,再執行topos模塊的相關實驗腳本部署實驗拓撲結構,以上描述表示一個“部署拓撲”事件完成。

shell腳本將部署拓撲結構的所有命令都組合起來,只需執行單獨的shell腳本就能自動化部署整個實驗拓撲,提高處理文本文件的速度也避免配置出錯,首先通過docker run命令運行所需容器并給容器配置參數,如--net參數設置容器的網絡模式,--privileged=true使容器內部擁有root權限等,ovs-vsctl命令添加和連接OVS交換機,ovs-docker將容器和交換機相連并配置容器的IP地址和子網掩碼。shell腳本核心命令如下,其中cs-net-host為本平臺自主構建的主機鏡像:

docker run -itd --name host1 --hostname h1 --net=none --rm --privileged=true -e DISPLAY=$DISPLAY cs-net-host

docker run -itd --name host2 --hostname h2 --net=none --rm --privileged=true -e DISPLAY=$DISPLAY cs-net-host

ovs-vsctl add-br s1

ovs-docker add-port s1 eth0 host1 –ipaddress=192.168.0.1/24

ovs-docker add-port s1 eth0 host2 –ipaddress=192.168.0.2/24

3.3? 流量注入功能實現

針對2.2.3節的流量注入,一方面可利用Terminal終端輸入相關命令,向網絡中注入流量,如圖2所示,另一方面可采用圖形化應用的方式,利用X server機制,調用容器內部的各種流量注入程序,如packETH、瀏覽器等,如圖3所示,為主機利用packETH向網絡中發送流量。

3.4? 網絡監控功能實現

針對2.2節的第四部分網絡監控,本平臺可以對實驗網絡中的各個網絡節點的關鍵指標進行全程實時監控,監控分為主動測量和被動監控。

3.4.1? 主動測量

如圖4所示,點擊“節點監控”按鈕后,根據箭頭流程操作并輸入配置信息,平臺后端通過下發流量的方式主動測量當前節點帶寬、時延與丟包率,得到圖右下角結果,圖中TX與RX分別為上行速率與下行速率。

3.4.2? 被動監控

被動監控在部署拓撲后便開始監控,用于測量CPU和內存利用率、每秒收發數據包的大小等,各組數據經后端處理后使用作圖工具將結果以數據大屏的形式展示于前端界面,如圖5所示,為平臺對網絡的被動監控效果。

3.5? 基于Docker的網絡模擬仿真平臺實現

本平臺實現如圖6所示,前端總共分為菜單欄、實驗目錄、實驗手冊、拓撲結構、節點操作五大板塊。

3.5.1? 菜單欄

用戶選中實驗,只需點擊部署拓撲,平臺后端通過運行shell腳本將部署實驗環境的操作進行批處理,用戶也可自行設計拓撲結構供平臺運行,實驗結束后,點擊銷毀拓撲即可將后臺部署的虛擬網絡拓撲全部銷毀。

3.5.2? 實驗列表

此部分是對平臺所有實驗進行合理的分類歸納并呈現。

3.5.3? 實驗手冊

此部分是對整個實驗的理論支持,其中包含實驗目的、實驗原理、實驗步驟等。實驗原理為用戶提供了詳細的理論講解,實驗步驟由淺入深,用戶根據實驗步驟進行操作,觀察實驗結果,切實體驗整個實驗過程。

3.5.4? 拓撲結構

拓撲圖采用統一清晰的繪圖格式。向用戶展示相應實驗的網絡拓撲結構以及相關網絡設備的信息,用戶只需將設備與說明文檔進行一一對應,即可快速有效地完成操作步驟。

3.5.5? 節點操作

此部分包含拓撲結構圖內所有節點設備及其內部功能的調用,用戶根據實驗只需單擊按鍵就能完成進入設備內部、調用圖形化發包、抓包工具、啟動節點內部瀏覽器、監控容器時延與丟包率、帶寬、吞吐率等操作。

3.6? 平臺實際應用

本文所開發的網絡仿真平臺,已在西南民族大學計算機網絡類相關課程中進行試點應用,如圖7所示。目前平臺提供了4種拓撲結構模板(樹形、FatTree等)、4種路由協議(OSPF、RIP等)、5種服務器(Web、FTP等)、5種端系統(Ubuntu、CentOS等)、3種中間件(nginx、防火墻等)、5種網絡應用(iperf等),通過拓撲結構設計功能自主設計大規模虛擬網絡,支撐較大規模的網絡仿真,用于教學、科研等工作,取得了良好的效果。

4? 結? 論

本文針對目前已有網絡仿真軟件存在的問題,基于Docker等技術全虛擬化地打造出一個網絡仿真平臺,平臺在保證虛擬網絡高保真特性的前提下,為用戶提供拓撲部署、流量注入、網絡監控等功能,有效支撐計算機網絡的研究與教學。后續工作將結合虛擬網絡映射算法開發Web版網絡仿真平臺,用戶通過在線的方式將虛擬網絡部署在服務器上。

參考文獻:

[1] 鄧偉健,陳曦.基于時變資源的容器化虛擬網絡映射算法 [J].計算機應用,2022,42(2):550-556.

[2] 郭文普,陳天豪,楊百龍.基于eNSP的中小型企業組網實驗設計 [J].實驗室研究與探索,2022,41(2):125-129+296.

[3] 馬樂,黃冬梅,王樹鑫,等.網絡性能仿真軟件綜述 [J].軟件,2022,43(3):34-36.

[4] 任曉鵬,李偉華.基于Packet Tracer構建虛擬網絡實訓平臺 [J].中國職業技術教育,2006(27):44+46.

[5] 馬樂,黃冬梅,王樹鑫,等.網絡性能仿真軟件綜述 [J].軟件,2022,43(3):34-36.

[6] VALANTASIS A,MAKRIS N,ZARAFETAS C,et al. Experimental Evaluation of Orchestration Software for Virtual Network Functions [C]//2021 IEEE Wireless Communications and Networking Conference(WCNC).Nanjing:IEEE,2021:1-6.

[7] YANG Z,YEUNG K L. SDN Candidate Selection in Hybrid IP/SDN Networks for Single Link Failure Protection [J].IEEE/ACM Transactions on Networking,2020,28(1):312-321.

[8] 高德偉,施鑫,王正,等.基于PyQt5平臺的木材在線品質監測及評等系統 [J].林業機械與木工設備,2022,50(7):62-66.

作者簡介:黃俊(1998—),男,漢族,四川自貢人,碩士研究生在讀,研究方向:網絡虛擬化、軟件定義網絡;通訊作者:陳曦(1985—),男,漢族,重慶永川人,副教授,博士,研究方向:軟件定義網絡、網絡虛擬化、無線網路、異構網絡融合等;吳濤(1984—),女,漢族,山東曲阜人,副教授,博士,研究方向:無線網絡、機器學習等。

收稿日期:2022-10-08

基金項目:國家重點研發計劃課題(2019YFB1802805);中國博士后科學基金(2018M643448);四川省重點研發計劃項目(2022YFG0208,2022YFG0161);中央高校基本科研業務費專項資金(2021NYYXS53)

猜你喜歡
計算機網絡
基于模式匹配的計算機網絡入侵防御系統
電子制作(2019年13期)2020-01-14 03:15:32
云計算下的計算機網絡安全性研究
面向對象的計算機網絡設計軟件系統的開發
電子測試(2018年15期)2018-09-26 06:01:34
關于計算機網絡存儲技術分析
電子制作(2018年16期)2018-09-26 03:27:08
計算機網絡環境下混合式教學模式實踐與探索
電子制作(2018年16期)2018-09-26 03:27:08
計算機網絡信息安全及防護策略
電子制作(2018年12期)2018-08-01 00:47:58
計算機網絡可靠性的提升策略
電子測試(2018年10期)2018-06-26 05:54:34
計算機網絡技術的應用探討
計算機網絡維護工作的思考
河南科技(2014年19期)2014-02-27 14:15:24
淺析計算機網絡管理系統的構建和應用
河南科技(2014年5期)2014-02-27 14:08:21
主站蜘蛛池模板: 日本久久久久久免费网络| 精品国产自| 久久永久免费人妻精品| 欧美劲爆第一页| 国产成人夜色91| 欧美一区二区三区国产精品| 欧美第二区| 日韩精品亚洲一区中文字幕| 国产三级成人| 午夜视频免费试看| 日韩亚洲综合在线| 青草视频网站在线观看| 国产区成人精品视频| 亚洲欧洲日产国产无码AV| 伊人色天堂| 中文字幕伦视频| 亚洲第一视频网| 欧美国产日韩在线观看| 国产情精品嫩草影院88av| 国产成人一区在线播放| 四虎影视8848永久精品| 国产精品网址在线观看你懂的| 2022国产无码在线| 国产精品爽爽va在线无码观看| 在线观看免费黄色网址| 国产视频大全| 久久国产精品无码hdav| 国内精品自在自线视频香蕉| 欧美日韩v| 最近最新中文字幕在线第一页| 久久精品亚洲中文字幕乱码| 99ri国产在线| 亚洲看片网| 亚洲综合第一区| 亚洲精品男人天堂| AV不卡在线永久免费观看| 国产一级毛片yw| 国产欧美日韩va另类在线播放| 亚洲一区二区在线无码| 欧美怡红院视频一区二区三区| 日本91在线| 91精品国产一区自在线拍| 欧美日韩国产在线观看一区二区三区 | 最新亚洲av女人的天堂| 国产精品女主播| 国产精品毛片一区| 亚洲经典在线中文字幕| 免费午夜无码18禁无码影院| 中文字幕在线永久在线视频2020| 99热免费在线| 国产亚洲精品自在久久不卡 | 午夜毛片免费看| 国产91高清视频| 又猛又黄又爽无遮挡的视频网站| 成年人国产网站| 一级香蕉视频在线观看| 国产美女91呻吟求| 久久永久视频| www.99在线观看| 中国黄色一级视频| 亚洲日韩AV无码精品| 成人综合网址| 99r在线精品视频在线播放| 国产毛片网站| 天堂成人在线视频| 亚洲福利片无码最新在线播放| 欧美在线综合视频| 99热这里只有精品2| 久久精品中文字幕少妇| 麻豆国产在线观看一区二区 | 国产精品大尺度尺度视频| 亚洲乱码视频| 亚洲va欧美ⅴa国产va影院| 日本高清免费不卡视频| 四虎成人在线视频| 色妞www精品视频一级下载| 欧美激情伊人| 亚洲精品另类| 人妻丰满熟妇av五码区| 欧美国产综合色视频| 99久久这里只精品麻豆| 91美女在线|