Advertisement

VirtualBox 虚拟机下搭建SDN实验平台(安装mininet网络仿真器 + OpenDayLight控制器)

阅读量:

一、安装VirtualBox 虚拟机,并安装ubuntu

1)安装虚拟机

复制代码
    sudo apt-get install virtualbox-5.1
    
      
    
    代码解释

2)虚拟机安装ubuntu操作系统

Refer to the installation guide for Ubuntu on VirtualBox at https://askubuntu.com/questions/142549/how-to-install-ubuntu-on-virtualbox?

二、ubuntu系统下搭建SDN实验平台

随后根据步骤一,在虚拟机环境中部署两台Ubuntu操作系统。其中一台命名为mininet,并以目标为mininet网络仿真器进行部署;另一台命名为OpenDayLight,并以目标为OpenDayLight控制器进行部署。

2)配置虚拟机配置网络链接,实现主机与虚拟机、虚拟机间的通信。

  • 在虚拟机中打开设置,在偏好设置 > 网络 > Host-only网络下新增一个网络适配器(会出现vboxnet0)。
  • 停止运行该虚拟机,在网络设置下添加一个新的网络适配器:在网络设置 -> 网络 -> 添加网络适配器-> 选择Host-onlyAdapter,并命名为1中新建的vboxnet0。
  • 接着,在命令行中输入ifconfig查看新添加的enp0s8网卡配置(如图所示)。
这里写图片描述

主机会虚拟出一块vboxnet0网卡,虚拟出192.168.56.*/24 网段

这里写图片描述

至此,虚拟机与主机互相通信已经实现,互相之间可以 ping 通

这里写图片描述

在虚拟机上安装openssh-server软件以实现远程连接(相关命令参考以下代码片段)

复制代码
    sudo apt-get install openssh-server
    
      
    
    代码解释
这里写图片描述

三、在mininet虚拟机上本地安装mininet源码,步骤如下

1、安装需要软件

复制代码
    sudo apt-get install git
    
      
    
    代码解释

2、获取需要Mininet源代码

复制代码
    git clone git://github.com/mininet/mininet
    
      
    
    代码解释

3、获取mininet源代码之后即可安装mininet

以下命令用于部署Mininet VM 中的各种工具集合, 包括Open vSwitch 、抓包分析软件以及POX,默认情况下它们将按照默认设置放置于用户的主目录中.

复制代码
    mininet/util/install.sh -a
    
      
    
    代码解释
  • 以下命令默认安装Mininet、user switch 和Open vSwitch:
复制代码
    mininet/util/install.sh -nfv
    
      
    
    代码解释
  • 以下命令用可以将Mininet 安装在指定目录下,而不是默认主目录(推荐)
复制代码
    mininet/uitl/install.sh -s mydir -a
    mininet/util/install.sh -s mydir -nfv
    
      
      
    
    代码解释

安装完成后,请检查openvswitch-controller服务的状态。如果该服务处于运行状态,请将其关闭以确保Mininet启动时能够指定自身的控制器。

复制代码
    server openvswitch-controller stop
    update-rc.d openvswitch-controller disable
    
      
      
    
    代码解释

5、测试Mininet是否安装成功,测试命令如下

复制代码
    sudo mn --test pingall
    
      
    
    代码解释
这里写图片描述

至此完成安装测试。学习mininet简单命令行API 详解

在OpenDaylight虚拟机上配置OpenDaylight控制器(参考博客:http://www.brianlinkletter.com/using-the-opendaylight-sdn-controller-with-the-mininet-network-emulator/),操作指南如下:

1、首先安装Java环境

  • 安装jdk
复制代码
    sudo apt-get install openjdk-8-jdk
    
      
    
    代码解释

设置环境变量JAVA_HOME和PATH,在etc/environment目录中添加java文件夹,并使用cat命令查看修改后的配置内容

这里写图片描述
  • 用source 命令启动生效
复制代码
     source /etc/environment
    
      
    
    代码解释

2.安装Opendaylight

  • 获取OpenDayLight软件包(ODL),建议优先从官方渠道下载预编译版本:https://www.opendaylight.org/downloads
    • 另一种方式是直接获取opendaylight源码并进行本地编译(此过程相对繁琐)
  • 解压获取的OpenDayLight源代码
复制代码
    tar -xvf distribution-karaf-*.tar.gz
    
      
    
    代码解释
  • 启动opendaylight
复制代码
    cd distribution-karaf-*
    ./bin/karaf
    
      
      
    
    代码解释
这里写图片描述
  • 安装 OpenDaylight features
复制代码
    opendaylight-user@root> feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs odl-dlux-all
    
      
    
    代码解释

五、启动mininet,并设置远程控制器,命令及效果图如下:

1)mininet启动自定义拓扑

复制代码
    sudo mn --custom ~/mininet/custom/test1.py --topo mytopo --mac 
    --controller=remote,ip=192.168.56.102,port=6633 --switch ovs,protocols=OpenFlow13
    
      
      
    
    代码解释
这里写图片描述

测试连通性

2)配置OpenDayLight控制器以管理网络拓扑信息;
当前系统运行着一个OpeneDaylight虚拟机其IP地址为 192. ¹⁶⁸ . 56 . ¹⁰² 并使用该控制器管理端口为 8₁₈₁ 。
浏览器可访问 <http://localhost:₈₀₈₀ /DefaultWebApplication/DefaultWebPage> 。
系统采用统一的 admin 帐号作为用户名和密码。

这里写图片描述

此时输入用户名和密码会出现无法登录情况(即:unable to login)

这里写图片描述

此问题是因为缺乏依赖的features,执行如下命令问题即可解决

复制代码
    opendaylight-user@root> feature:install odl-dlux-all odl-restconf-all odl-l2switch-switch
    
      
    
    代码解释
这里写图片描述

全部评论 (0)

还没有任何评论哟~