使用Virtual-Box安装Mininet看上去简单,但其中也暗藏许多坑。我自己装了多次Mininet,但每次都有缺陷:

  • mininet访问不了网络
  • 用宿主机访问不了mininet虚拟机

最后,终于在这篇博文的帮助下,安装了一个比较满意的mininet虚拟机实例。但这篇博文是在mac系统上进行安装,我自己是在ubuntu上进行安装,虽说大同小异但也略有不同。

因此,为了方便大家安装Mininet,笔者将自己安装的全过程记录于此,以便以后查阅。

安装的操作系统:ubuntu 13.10

1.安装virtual-box

我用的是最新版的virtual-box-4.3.10,已经装好的童鞋可以绕过这一步。

sudo apt-get install dkms fakeroot libsdl-ttf2.0-0
wget http://dlc.sun.com.edgesuite.net/virtualbox/4.3.10/virtualbox-4.3_4.3.10-93012~Ubuntu~raring_amd64.deb
sudo dpkg -i virtualbox-4.3_4.3.10-93012~Ubuntu~raring_amd64.deb

2.在virtual-box设置全局网络

因为待会儿需要用到一个Host-Only网络,因此需要在新装好的Virtual-Box中设置一下。

(吐槽一下,ubuntu13.10的配置alt+printScreen总是出错。弄了半天才把alt快捷键改到别的地方去了。)

3.下载mininet的镜像包

当前有两个版本2.1.0和2.0.0,但由于GFW的存在基本上下不动2.1.0。这里直接下载2.0.0:

http://cloud.github.com/downloads/mininet/mininet/mininet-2.0.0-113012-amd64-ovf.zip

我用的是2.1.0的安装包

4.安装mininet镜像

解压mininet包进入mininet目录

unzip mininet-2.1.--ubuntu-13.04-server-amd64-ovf.zip

此时有两种方法导入镜像文件,一是双击解压目录里面的mininet-vm.ovf文件然后下一步下一步,但这种方式在我机器上会出错。

因此我选择的是另外一种导入方式,具体过程如下所示:

5.修改mininet实例的网络配置

由于我们既需要mininet能够访问外网,又希望自己的宿主机能ssh登录到mininet上,因此我们需要设置双网卡来解决这两个需求。

添加第二块网卡Host-Only Adapter,如图所示:

6.启动并登录mininet虚拟机

使用默认账号登陆:mininet/mininet

7.登陆进去后运行命令检查网络配置是否完整

运行ifconfig后得到如下结果

首先验证一下公网是不是通的。

ping www.baidu.com

其次,执行下面命令启用eth1网卡

sudo dhclient eth1

这时再次运行ifconfig -a就会看到两块网卡

可以看到这边dhcp分配的ip地址是192.168.56.102,因此我们就可以用这个ip地址从宿主机上进行ssh登录了。话说vitrual-box自带的登录界面真心不好用,唉~

8. 手动更新网络配置

最后我们还需要将第二块网卡的配置加入到mininet的网络配置文件中,这样我们重启之后总是会看到两块网卡了。

sudo vi /etc/network/interfaces

然后加入

auto eth1
iface eth1 inet dhcp

保存后就OK了。

至此,安装Mininet的工作就全部完成。

在后续文章中,我将继续介绍如何使用Mininet来完成SDN的实验。:)

在ubuntu上使用Virtual-Box安装Mininet的更多相关文章

  1. 在 Virtual Box 安装 Mac Os 并安装 Qt 开发应用

    导读 由于 Beslyric-for-X 项目开发需要,开始尝试在 Mac Os 下开发 Qt 应用.尝试成功后,记录于此,希望对有类似需求的人有所帮助. 本文以开发 Beslyric-for-X 为 ...

  2. 解决Virtual Box 安装Mac OS X当出现“hfs: summary table not allowed on FS with block size of 2048”问题

    解决Virtual Box 安装Mac OS X当出现"hfs: summary table not allowed on FS with block size of 2048"问 ...

  3. 在 Ubuntu 上使用源码安装 OpenResty

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 本文将介绍如何在 Ubuntu 上使用源码安装 OpenResty. 目标 Ubuntu 18.04 OpenResty 1.19.3.2 安装依 ...

  4. virtual box 安装centos min

    2018-4-19 22:20:40 星期四 之前不小心把用了很久的centos镜像删掉了.....这里记录下安装最小版centos的步骤 1. 安装centos 2. 开启网络, 并设置为随机启动 ...

  5. Ubuntu上 配置Eclipse:安装CDT

    在最新的 Ubuntu Kylin 16.04 中安装了eclipse,在纠结了很久的网络问题之后,开始了eclipse的配置以便在上面运行ns3. 在官方网站上安装完 eclipse LUNA 之后 ...

  6. Ubuntu上配置Eclipse:安装CDT【转】

    本文转载自:http://www.linuxdiyf.com/linux/23519.html 在最新的 Ubuntu Kylin 16.04 中安装了eclipse,在纠结了很久的网络问题之后,开始 ...

  7. fedora 21下Virtual Box安装Windows XP SP3

    Installing Virtual Box and Windows XP SP3 during Fedora 21 The first step:Download and Install Virtu ...

  8. virtual box 安装虚拟机如何全屏

    最近由于要进行微信小程序的开发.可恶的腾讯狗没有提供linux版的开发工具!不得以安装虚拟机!暗号虚拟机后发现win10的界面实在是太小,于是乎去解决这个问题!其实很简单,一般来是说直接点虚拟机面板上 ...

  9. virtual box 安装 centos 7 不能上网问题解决总结

    http://blog.csdn.net/u013264730/article/details/51146359 1.设置virtualbox 网络选项 [root@centos1 ~]# cat / ...

  10. ubuntu上源码编译安装mysql5.7.27

    一.查看操作系统环境和目录结构,并创建mysql用户和组,以及规划安装mysql所需要的目录. #cat /etc/issue 查看发行版本信息: #cat  /proc/version 查看正在运行 ...

随机推荐

  1. [典型漏洞分享]YS忘记密码机制设计存在缺陷,导致任意用户口令均可被修改【高】

    记录了安全测试过程中发现的一些典型的安全问题 YS忘记密码机制存在缺陷,可导致任意用户口令被修改[高] 问题描述: YS网站提供用户密码修改功能,当用户忘记密码时可通过该功能找回密码,但该修改密码的流 ...

  2. ConCurrent并发包 - Lock详解(转)

    synchronized的缺陷   我们知道,可以利用synchronized关键字来实现共享资源的互斥访问.Java 5在java.util.concurrent.locks包下提供了另一种来实现线 ...

  3. Tesseract训练中文字体识别

    注:目前仅说明windows下的情况 前言 网上已经有大量的tesseract的识别教程,但是主要有两个缺点: 大多数比较老,有部分内容已经不适用. 大部分只是就英文的训练进行探索,很少针对中文的训练 ...

  4. java POI实现Excel单元格数据换行

    当我们通过POI设置了表格的列宽的时候,如果文字过长,希望文字能够自己折行显示. 截取代码如下: Workbook wb = new XSSFWorkbook(); //or new HSSFWork ...

  5. 智普教育Python视频教程之入门基础篇,python笔记

    智普教育Python视频教程之入门基础篇,python笔记 print id()内存地址 type()变量类型 windows命令行下edit命令 python数据类型不需要指定类型 定义hostna ...

  6. iOS:关于UIView切角的两种实现方式

    转载自:http://www.jianshu.com/p/451b7fa94e2a 第一种: 我想你一见到代码,就瞬间有吐的冲动,最常用的一种方式... UIButton *button = [[UI ...

  7. 对REST的理解

    现在标准服务基本都提供REST化的接口了.为了加强对REST的理解,看了这篇文章: http://kb.cnblogs.com/page/186516/ REST架构风格最重要的架构约束有6个: 客户 ...

  8. python中常用的推导(字典推导和列表推导)

    在python开发中经常需要书写这样的代码 result = list() for data in datas: if data not in ['a', 'b']: result.append(da ...

  9. Hibernate异常:Unable to locate appropriate constructor on class

    异常信息:org.hibernate.hql.ast.QuerySyntaxException: Unable to locate appropriate constructor on class o ...

  10. scala之Actors

    这多半是因为actor是共享线程,所以阻塞线程会导致其他线程获取不到线程.