• 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。
    在这里插入图片描述
    解决办法:依次输入图中命令
    在这里插入图片描述

  • 相关阅读:
    Numpy入门[18]——数组读写
    Flink-DataWorks第二部分:数据集成(第58天)
    Spring笔记(三)(Spring整合web环境)
    回溯专题——day35
    Tomcat过时了?别多想,很多公司还是在用的。这份Tomcat架构详解,真的颠覆你的认知
    人工智能框架实战精讲:Keras项目-英文语料的文本分类实战与调参优化
    index
    【Python百日进阶-数据分析】Day119 - Plotly Figure参数: 散点图(一)
    Linux进程概念
    Android Studio Error “Unsupported class file major version 61“---异常信息记录
  • 原文地址:https://blog.csdn.net/xiaosangtongxue/article/details/127959764