最近在做SDN这方面的实验,在这里记录一下自己的学习过程和踩过的坑。
具体环境:
VMware-workstation
Ubuntu20.04.1
Mininet
RYU
Wireshark
链接:https://pan.baidu.com/s/186D9k3byAqB0LhGUZwPkuw
提取码:25my
按照提示一步一步完成即可。
镜像文件:
链接:https://pan.baidu.com/s/1dXzMLk0LmjItbvj4e7zKtw
提取码:eaqd
1、打开虚拟机,依次点击“文件”——“新建虚拟机”,选择经典模式(在自定义模式下,很多选项都需要自行设置,不建议新手使用)
点击“浏览”,选择已经下载好的iso文件
按照要求设置名字和密码
设置虚拟机的名称和位置
分配磁盘大小,建议为40GB
点击“自定义硬件”,将内存设为4096MB,处理器内核数量设为2
配置完成后,点击“完成”开始Ubuntu系统的安装
耐心等待安装,可能会需要很长时间
安装完成后,输入密码进行登录
登录后,右键打开终端,输入图中命令创建root用户
由于Ubuntn系统安装后默认的官方源是美国的服务器,安装软件速度较慢,容易造成系统出错,因此在进行环境配置前需要修改源,修改内容如图示。
至此,Ubuntn的安装已经完成。
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之前,需要安装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已经安装成功。
输入apt-get install wireshark进行Wireshark的安装。
安装完成后输入wireshark命令即可打开Wireshark软件。
在root模式下,进入/mininet/examples目录下执行./minineit.py文件打开可视化界面创建网络拓扑。
创建好的网络拓扑如图所示。
1、Ubuntu系统安装好后显示屏幕太小。这是由于缺少VMware Tools,依次输入图中命令后重启虚拟机,问题得以解决。
2、安装RYU的依赖时,由于网络原因和下载的依赖较多频频出现图中问题。解决办法:多执行几次命令。
3、在启动miniedit.py时出现:/usr/bin/env: ‘python’: No such file or directory,依次输入图中命令问题得以解决。
欢迎沟通与交流吖