SDN环境搭建(超详细)

news2025/1/16 18:43:49

文章目录

    • 前言
    • 一. 安装VMware workstation
    • 二、Ubuntn安装
    • 三、Mininet安装
    • 四、RYU安装
    • 五、WireShark安装
    • 六、在Mininet中启动可视化界面
    • 常见问题总结
    • 写在后面

前言

最近在做SDN这方面的实验,在这里记录一下自己的学习过程和踩过的坑。
具体环境:
VMware-workstation
Ubuntu20.04.1
Mininet
RYU
Wireshark

一. 安装VMware workstation

链接:https://pan.baidu.com/s/186D9k3byAqB0LhGUZwPkuw
提取码:25my
按照提示一步一步完成即可。

二、Ubuntn安装

镜像文件:
链接:https://pan.baidu.com/s/1dXzMLk0LmjItbvj4e7zKtw
提取码:eaqd
1、打开虚拟机,依次点击“文件”——“新建虚拟机”,选择经典模式(在自定义模式下,很多选项都需要自行设置,不建议新手使用)
在这里插入图片描述
点击“浏览”,选择已经下载好的iso文件
在这里插入图片描述

按照要求设置名字和密码

在这里插入图片描述

设置虚拟机的名称和位置

在这里插入图片描述

分配磁盘大小,建议为40GB

在这里插入图片描述

点击“自定义硬件”,将内存设为4096MB,处理器内核数量设为2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置完成后,点击“完成”开始Ubuntu系统的安装

在这里插入图片描述

耐心等待安装,可能会需要很长时间

在这里插入图片描述

安装完成后,输入密码进行登录

在这里插入图片描述

登录后,右键打开终端,输入图中命令创建root用户

在这里插入图片描述
由于Ubuntn系统安装后默认的官方源是美国的服务器,安装软件速度较慢,容易造成系统出错,因此在进行环境配置前需要修改源,修改内容如图示。
在这里插入图片描述
至此,Ubuntn的安装已经完成。

三、Mininet安装

1、git的安装
配置SDN的实验环境之前,需要通过apt-get install git命令安装git。在这里插入图片描述
输入git命令,查看是否安装成功。可以看到git已经安装成功。
在这里插入图片描述

2、mininet的安装
首先使用git clone https://github.com/mininet/mininet.git命令将mininet下载到本地

在这里插入图片描述

下载完成后,进入/mininet/util目录下,执行install.sh –n3v命令进行mininet的安装(n3v三个参数的意思分别是安装mininet的核心文件、OpenFlow1.3版本、安装Open (V)switch)

在这里插入图片描述
在这里插入图片描述

测试安装是否正常:输入mn,创建最小的网络拓扑图,如图4.1.7所示,可以看到新建了两台主机,1个Open (V)switch交换机,增加了两条链路,创建了一台控制器c0;执行pingall命令检查网络的连通性,可以看到h1到h2可以ping通,h2到h1也可以ping通,丢包率为0,证明mininet已经安装完成。

在这里插入图片描述

四、RYU安装

在安装RYU之前,需要安装pip。首先输入wget https://bootstrap.pypa.io/get-pip.py命令从指定的url下载文件。

在这里插入图片描述

接着用python命令安装pip。可以看到已经成功安装了pip,版本为22.3.1。

在这里插入图片描述

然后进行RYU的安装,首先通过git clone命令将RYU下载到本地。

在这里插入图片描述

下载完成后,进入/ryu目录并查看该目录下的所有文件

在这里插入图片描述

在安装RYU之前,首先通过pip install –r tools/pip-requires命令安装RYU的依赖,可以看到,RYU的依赖已经安装成功。


在这里插入图片描述

RYU的依赖安装完成后,通过python3 setup.py install命令进行RYU的安装。

在这里插入图片描述

最后验证RYU是否安装成功。依次输入图中命令,其中执行ryu-manager example_switch_13.py命令之前需要在另一个终端打开mininet,输入mn --controller=remote创建默认拓扑,并使用远端控制器。

在这里插入图片描述

可以看到控制器显示正常,说明RYU已经安装成功。

在这里插入图片描述

五、WireShark安装

输入apt-get install wireshark进行Wireshark的安装。
在这里插入图片描述

安装完成后输入wireshark命令即可打开Wireshark软件。

在这里插入图片描述

六、在Mininet中启动可视化界面

在root模式下,进入/mininet/examples目录下执行./minineit.py文件打开可视化界面创建网络拓扑。
在这里插入图片描述
在这里插入图片描述

创建好的网络拓扑如图所示。

在这里插入图片描述

常见问题总结

1、Ubuntu系统安装好后显示屏幕太小。这是由于缺少VMware Tools,依次输入图中命令后重启虚拟机,问题得以解决。
在这里插入图片描述
在这里插入图片描述

2、安装RYU的依赖时,由于网络原因和下载的依赖较多频频出现图中问题。解决办法:多执行几次命令。

在这里插入图片描述

3、在启动miniedit.py时出现:/usr/bin/env: ‘python’: No such file or directory,依次输入图中命令问题得以解决。

在这里插入图片描述

写在后面

欢迎沟通与交流吖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23981.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RepGhost

轻量级的CNN模块重参数化技术构建硬件高效的 Ghost 模块,通过结构重新参数化技术开发一种硬件高效的 RepGhost 模块,以实现特征的隐式重用。RepGhostNet 把 Concat 操作去掉,同时修改现有结构以满足重参数化的规则。最终得到的 RepGhostNet 是一个高效的…

swift-类属性-MachO读取

上一篇 swift-类属性 为源码层面类属性结构剖析,接下来从MachO层面验证读取类属性内容 极简类结构 class IFLPerson2 {var age: Int 20var heigh: Double 180}MachO-__swift5_types读取 var size: UInt 0//__swift5_types section 的pFilevar ptr getsectdata(…

Alibaba内部传出的面试秘技,秋招offer尽收囊中

又逢“金九银十”,年轻的毕业生们满怀希望与忐忑,去寻找、竞争一个工作机会。已经在职的开发同学,也想通过社会招聘或者内推的时机争取到更好的待遇、更大的平台。 然而,面试人群众多,技术市场却相对冷淡,…

修改Cmder默认命令提示符

修改Cmder默认命令提示符常规操作第二种方法我的方法参考常规操作 打开在Cmder目录下的vendor文件夹,编辑里面的clink.lua文件找到local lambda “λ”,将“λ”修改为“$”,如图(图片来源:https://www.jianshu.com/…

11月“图无处不在”线上直播 - Neo4j宣布下一代图数据平台Neo4j 5上线

中国北京,2022年11月10日—— 图技术的领导者Neo4j 宣布下一代可用于云端的图数据平台Neo4j 5上线。在传统数据库的基础上,扩大了原生图的性能优势,同时在本地、云、混合云或多云部署中实现更高可扩展性,从而使企业能够更快地创建…

Java 集合---尚硅谷Java入门视频学习

问题:什么时候需要一个容纳数据的容器,也就是集合对象? Java集合框架中就包含了对不确定个数的数据处理的集合类问题:如果只是为了容纳数据,可以是直接使用数组,为什么要学习集合? 数组使用起来…

【论文阅读】多模态模型CoCa

Introduction 在这项工作中,我们统一了单编码器、双编码器和编码器-解码器范式,并训练了一个包含三种方法优点的图像-文本基础模型。我们提出了对比Captioner模型(CoCa),该模型采用经过对比损失和captioning损失训练的编码器-解码器架构。如图…

C语言源代码系列-管理系统之职工工资管理系统

往期文章分享点击跳转>《导航贴》- Unity手册,系统实战学习点击跳转>《导航贴》- Android手册,重温移动开发 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过…

数据存储策略——lsm-tree

文章目录一、背景二、lsm-tree简介三、lsm-tree设计思想四、lsm-tree原理1.写操作2.读操作3.有序表持久化4.后台压缩五、lsm-tree的应用六、lsm-tree优缺点分析总结一、背景 由于传统机械磁盘的原理,它在读写时有个寻道的操作,在读写时都需要消耗一个寻…

基于PHP+MySQL网上报名系统的设计与实现

一直以来如何更好的实现校园现代化和信息化是当前很多高校一直探索的问题,随着时代的发展,高校内各类考试和报名也越来越多,如何通过互联网直接进行在线报名是本系统研究的一个重点内容。 本系统是一个网上报名系统,为了能够更加灵…

[计算机毕业设计]机器学习的数据驱动股票价格预测

前言 📅大四是整个大学期间最忙碌的时光,一边要忙着准备考研,考公,考教资或者实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过…

财政政策与货币政策(下)

财政政策与货币政策(下) – 潘登同学的宏观经济学笔记 文章目录财政政策与货币政策(下) -- 潘登同学的宏观经济学笔记粘性价格下的货币经济总供给曲线总供给曲线斜率与价格粘性菲利普斯曲线的消失货币政策的“动态不一致”财政政策与货币政策的配合财政主导 vs. 货币主导恶性通…

【学习记录】实例分割的发展与区别

【学习记录】实例分割的发展与区别 参考于《The Evolution Of Instantce Segmentation》 文章目录【学习记录】实例分割的发展与区别发展历程RCNNFast RCNNMultipath NetworkFaster RCNNMask RCNN发展历程 RCNN 开发集成了RCNN技术产生了AlexNet,以及使用选择性搜索…

浅谈App的启动优化

1. 应用启动的方式 在Android中,应用启动一般可分为三种:冷启动、温启动、热启动。 那么什么是冷启动、温启动和热启动呢?下面我们来简单看一下它们的定义: 冷启动:当启动应用时,后台没有该应用的进程。这…

Allegro导入导出设计数据操作指导

Allegro导入导出设计数据操作指导 Allegro有个非常好用的功能,就是支持设计数据的导入和导出,让协同设计变得更加方便,具体操作如下 以下面的设计数据为例,需要把这些数据导入到另外一个版本中 点击file-export-subdrawing Options所有的项目都勾选起来 Find选择需要导…

linux笔记(7):东山哪吒D1H使用framebuffer控制HDMI直线

文章目录1.测试流程和结果1.1 使能HDMI1.2 framebuffer操作流程1.3 测试结果2.测试过程详述2.1 编译源码2.2上传可执行文件2.3修改文件的权限,执行文件3.源码解释3.1 HDMI使用的颜色格式是ARGB4.源码工程链接这部分linux笔记是记录我入门的过程,内容基本…

【Flutter】【widget】Table 表格widget

文章目录前言一、Table 是什么?二、使用步骤1.Table 基础使用2.宽度3.设置边框4.TableCell设置单元格式widget等其他设置总结前言 Table 表格widget,其实很少使用到的,等有需要的时候在查看该widget 一、Table 是什么? 表格widg…

Trino源码Gitlab CICD单测环境建设

在中大型公司,由于对Presto源码的定制魔改量越来越大,会随着时间推移而增大出现冷门bug的概率,所以建立一套自动测试机制,在魔改源码合入主分支时可以自动触发test case,通过特定单测的执行失败,来更清晰的…

多云管理产品组合VMware Aria,开启多云管理新篇章

今年8月份,VMware Explore美国大会上宣布了多云管理产品组合VMware Aria,宣布之后,市场上关注度非常高,而且受到了热捧。Aria这个名字动听且贴切,中文意思是 “咏叹调”,也就是说要用统一的、一致的曲调来歌…

big.LITTLEDynamIQ

最近看到了DynamIQ,于是来了解一下什么是DynamIQ? 前言 首先要知道DynamIQ,那么你肯定得知道big.LITTLE。因为DynamIQ可以说是big.LITTLE新一代或者是升级版。 那么在这之前你肯定得知道什么是big.LITTLE? 然后知道了后你就会…