Ubuntu20.04中搭建SDN环境(超详细)

前言

最近在做SDN这方面的实验,在这里记录一下自己的学习过程和踩过的坑。
具体环境:
VMware-workstation
Ubuntu20.04
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系统的安装
在这里插入图片描述
耐心等待安装,可能会需要很长时间
在这里插入图片描述
安装完成后,输入密码进行登录
在这里插入图片描述
修改时间。将时区设置为shanghai。在这里插入图片描述创建root用户。打开终端(右键或ctrl+alt+T),输入sudo passwd root命令创建root用户。创建成功后,可以通过su root命令登录root用户。
需要注意的是,root用户对系统具有最高的权限,在root用户下操作风险较大,需要慎重登录root用户进行操作。
在这里插入图片描述
修改源。如果Ubuntn版本较低,默认的官方源是美国的服务器,安装软件速度较慢,容易造成系统出错,在进行环境配置前需要修改为国内的源。点击屏幕左下角找到Software&Update,修改内容如图示(这里选择的是阿里云,当然也可以选择其他的),然后点击choose server →close→reload。
在这里插入图片描述
在这里插入图片描述
至此,Ubuntn的安装已经完成,可以与本地主机互相ping通,能够上网。
此时可以利用VMware的快照功能拍摄虚拟机快照,后续出现问题可以回到快照拍摄时的状态。
在这里插入图片描述
界面左下角有进度提示,建议等状态完全保存后再进行其他操作,否则可能造成状态保存不完整。
在这里插入图片描述

三、安装Mininet

Mininet 是由一些虚拟的终端节点 (end-hosts) 、交换机、路由器连接而成的一个网络仿真器,是一个轻量级软件定义网络和测试平台,支持 OpenFlow、OpenvSwith 等各种协议,并提供python API。它的安装可以大致分为以下几个步骤:
步骤一:安装git
配置SDN的实验环境之前,需要进入/home/shy目录,通过sudo apt-get install git命令安装git。
在这里插入图片描述
输入git命令,查看是否安装成功。可以看到git已经安装成功。
在这里插入图片描述
步骤二:下载mininet源代码
使用sudo git clone https://github.com/mininet/mininet.git命令将mininet源代码下载到本地。
在这里插入图片描述
可以看到,已经将miniet下载到/home/shy目录下。
在这里插入图片描述
步骤三:安装mininet
下载完成后,在/home/shy/mininet目录下,找到安装mininet的脚本文件util,执行sudo ./install.sh命令进行mininet的安装。
在这里插入图片描述
如果使用以上命令安装OpenVswitch不成功,可以尝试依次输入以下命令:
sudo apt-get install openvswitch-switch
sudo ovs-vsctl show
在这里插入图片描述
在这里插入图片描述

步骤四:测试安装是否成功
输入sudo mn命令,创建最小网络拓扑。可以看到新建了两台主机,1个Open (V)switch交换机,增加了两条链路,创建了一台控制器。
在这里插入图片描述
执行links命令查看链路状态;执行nodes命令查看节点状态;执行pingall命令检查网络的连通性,可以看到h1到h2可以ping通,h2到h1也可以ping通,丢包率为0,证明mininet已经安装完成。
在这里插入图片描述

四、安装RYU

RYU是一款开源SDN控制器,基于python语言编写,支持OpenFlow协议。它的安装大致可以分为以下几个步骤:
步骤一:安装pip。
首先在/home/shy目录下,通过sudo wget https://bootstrap.pypa.io/get-pip.py命令下载pip文件。
在这里插入图片描述
下载完成后,输入ls命令查看。可以看到,pip文件已经下载到home目录下。
在这里插入图片描述
接着使用sudo python3 get-pip.py命令安装pip。
在这里插入图片描述
可以看到已经成功安装了pip,版本为23.3.1。
需要注意的是,如果之前下载过pip,那么系统中保存的文件名称可能不是get-pip.py。比如,可能是get-pip.py.1,此时执行sudo python3 get-pip.py.1命令安装pip。也可以执行rm -f 目录名命令删除之前下载的文件,重新下载pip文件。
步骤二:下载RYU源代码
在/home/shy目录下,通过sudo git clone https://github.com/osrg/ryu.git命令将RYU源码下载到本地。(如果报错,可以多尝试几次或者试试sudo git clone http://github.com/osrg/ryu.git)
在这里插入图片描述
下载完成后,进入/ryu目录并查看该目录下的所有文件。
在这里插入图片描述
步骤三:安装RYU依赖包
通过sudo pip install -r tools/pip-requires命令安装RYU的依赖。由于要安装的依赖较多,如果报错,可以多尝试几次。
在这里插入图片描述
可以看到,RYU的依赖已经安装成功。
在这里插入图片描述
步骤四:安装RYU
RYU的依赖安装完成后,通过执行sudo python3 setup.py install命令安装RYU。
在这里插入图片描述
提示安装完成。
在这里插入图片描述
步骤五:验证RYU是否安装成功。
首先在/home/shy/ryu/ryu/app目录下,执行ryu-manager simple_switch.py命令启动控制器,然后在另一个终端打开mininet,输入sudo mn --controller=remote创建默认拓扑,并使用远端控制器RYU。
在这里插入图片描述
可以看到控制器显示正常,说明RYU已经安装成功。
在这里插入图片描述

五、安装WireShark

Ubuntn20.04自带WireShark软件。如果Ubuntn版本较低,需要通过sudo apt-get install wireshark命令进行Wireshark的安装。
在这里插入图片描述
左右键选中 Yes
在这里插入图片描述
安装完成后输入sudo wireshark命令即可打开Wireshark软件。
在这里插入图片描述

六、在Mininet中启动可视化界面并创建网络拓扑

在/home/shy/mininet/mininet/examples目录下,执行sudo python3 mininedit.py命令或sudo ./miniedit.py命令打开可视化界面创建网络拓扑。
在这里插入图片描述
可视化界面如图示:
在这里插入图片描述
构建网络拓扑之前首先进行全局配置【edit】→【preferences】
IP Base:默认为10.0.0.0/8,用来指定网络拓扑中的网络设备所使用的IP地址所属网段
Start CLI:允许通过交互界面输入命令修改拓扑
Open vSwitch:支持的OpenFlow协议版本
在这里插入图片描述
在mininedit中创建拓扑
在这里插入图片描述
对控制器进行配置:
在这里插入图片描述
对交换机s1进行配置(s2同理):
在这里插入图片描述
对主机进行配置(其他主机同理):
在这里插入图片描述
此外,还可以对链路具体参数(带宽、时延等)进行配置:
在这里插入图片描述
所有的设置在Mininet的终端都有显示。
在这里插入图片描述
接下来运行网络拓扑,运行之前,需要在另一个终端打开控制器,然后点击miniedit界面左下角的Run按钮运行网络拓扑。这里使用Ryu控制器。
在这里插入图片描述
可以看到,此时控制器已经监控到了信息,网络连通性也没有问题。
在这里插入图片描述

七、常见问题总结

1、Ubuntu系统安装好后显示屏幕太小。这是由于缺少VMware Tools,依次输入图中命令后重启虚拟机,问题得以解决。
在这里插入图片描述
在这里插入图片描述
2、下载mininet源码时,出现如下错误,网速问题,多试试几次。
在这里插入图片描述
或尝试输入以下命令取消https与http代理。
sudo git config --global --unset http.proxy
sudo git config --global --unset https.proxy
再或者如果https不能git,有些情况下用http代替也可以。
3、安装RYU的依赖时,由于网络原因和下载的依赖较多频频出现图中问题。解决办法:多执行几次命令。
在这里插入图片描述
4、问题:在使用sudp ./miniedit.py命令启动miniedit界面时出现/usr/bin/env: ‘python’: No such file or directory。
在这里插入图片描述
解决办法:依次输入图中命令
在这里插入图片描述

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值