OSX 部署 mininet 虚拟机
- 安装方法
- 下载虚拟机映像,下载成功后是一个压缩包,包含ovf和vmdk两个文件。
- 使用ubuntu 包
- 在ubuntu12.10以上版本中安装Mininet (即 ‘mn’和python API)。
sudo apt-get install mininet - 注意,如果需要升级mininet版本,确定你已经从‘/usr/local’中移除了旧的版本:
sudo rm /usr/local/bin/ovs*
sudo rm /usr/local/sbin/ovs*
3.1. 源码安装
git clone git://github.com/mininet/mininet.git
注意,上面哥git命令将会检查最新的和最广泛的mininet版本(我们最推荐的版本),如果你想要运行最新版本,你可以使用命令查看发布的版本信息:
cd mininnet
git tag - 之后
git checkout <release tag> - 在 release tag 填写你想要检查的版本
如果你运行的是ubuntu、debian、或者fedora,你能够使用我们方便的在‘util/’目录下的‘install.sh’ 脚本。
-
警告: 风险自负
'install.sh' 是具有侵入性的,可能会破坏系统和主目录。可以创建/修改几个目录,比如:‘mininet’、‘openflow’、‘oftest’、‘pox’等。推荐在实际安装部署前在虚拟机上尝试尽管我们希望不会做任何不好的事情,以防万一,你应该在运行前看它的描述、确定你的系统和主目录已经备份。
安装 mininet 、openflow的引用实现和open switch,你可能使用:
util/install.sh -fnv
这应该会更快,在执行完安装过程之后需要执行以下命令:
sudo mn --test pingall
为了安装所有我们在openflow教程中需要的软件,包括POX、Openflow wireshark dissector(openflow wireshark 解剖器)和、'oftest'框架、和其他潜在的有用的软件,你可能使用:
util/install.sh -a
这一过程在我们的测试机器上花费了大约4分钟。
你可以改变依赖关系安装的目录,通过使用 -s <directory> 目录
3.2. fedora 18+ 通过本地源码安装.
使用root权限执行以下操作:
install git
yum install git- 创建一个用户(e.g. mininet) 并且将其添加到 wheel 组
useradd [...] mininet
usermod -a -G wheel mininet- 改变SElinux 设置权限,可以临时的使用:
setenforce 0
之后登陆新的用户(e.g. mininet) 执行以下操作: - 克隆mininet仓库
git clone git://github.com/mininet/mininet.git - 安装mininet,openflow依赖,和open vswitch
util/install.sh -fnv - 开放和启动openvswitch
sund systemet enable openvswitch
sudo systemctl start openvswitch - 测试mininet 安装
sudo mn --test pingall
- 改变SElinux 设置权限,可以临时的使用:
- 创建一个用户(e.g. mininet) 并且将其添加到 wheel 组
-
创建你自己的mininet/openflow 引导虚拟机
创建你自己的ubuntumininet虚拟机,以便轻松的使用openflow 引导!首先创建一个新的ubuntu 虚拟机。第二,运行以下两个命令:
wget https://raw.github.com/mininet/mininet/master/util/vm/ install-mininet-vm/sh
time install0mininet-vm.sh
最后,验证mininet是否成功安装,在虚拟机中是否正常工作
sudo mn --test pingall- 安装在其他linux 发行版上
尽管我们直接支持其他Linux发行版,但是通过一些操作,mininet仍然有可能安装运行。
一般情况下,你必须有:
- 一个支持网络命名空间编译的内核
- 一个兼容软件交换机例如open vswitch 或者linux 桥
- python,'bash','ping','perf',等
- root权限(需要网络设备访问)
我们鼓励为其他linux发行版贡献补丁
good luck
mininet team
- 安装在其他linux 发行版上
-
设置连接
使用以下名称和密码登录
mininet-vm login: mininet
Password: mininet2.1. 使用 host-only 方式,连接虚拟机
- 给虚拟机增加host-only网络接口
- 启动虚拟机并且确定新的网卡已经作为eth1显示
ifconfig -a - 允许网络访问,执行:
sudo dhclient eth1 - 主机获取到了一个IP地址,如果eth1是host-only网络接口,你已经完成了所有设置,并且可以从主机通过ssh连接至eth1网卡地址。
- 你可以修改/etc/network/interfaces,将eth1增加到其中。
auto eth1
iface eth1 inet dhcp
这样将会自动在eth1上运行dhclient
- 启动虚拟机并且确定新的网卡已经作为eth1显示
2.2. 使用virtual box的端口转发连接虚拟机
- 右键选择虚拟机->设置->网络->高级->端口转发
- 直接添加规则,将TCP主机端口2222(自定义)转发到虚拟机的ssh的22端口。
2.3. 使用VBoxManage设置端口转发
OS X/Linux用户,从主机终端运行VBoxManage 命令(不是从虚拟机窗口)
VBoxManage setextradata OpenFlowTutorial "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
VBoxManage setextradata OpenFlowTutorial "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata OpenFlowTutorial "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
验证设置:
VBoxManage getextradata OpenFlowTutorial enumerate
以上三个值将会显示。
保存您的设置,然后重启VM,从虚拟机窗口输入
sudo poweroff
重启OpenflowTutirial 虚拟机,再次以当前用户名和密码
- 直接添加规则,将TCP主机端口2222(自定义)转发到虚拟机的ssh的22端口。
- 给虚拟机增加host-only网络接口
-
设置端口转发之后,通过ssh连接
首先,确定你已经将主机的2222端口转发至虚拟机的22端口,如果你没有设置,将不会起作用。
* 从主机ssh连接虚拟机,在主机上运行
ssh -Y -l <user name> -p 2222 localhost
* 虚拟机默认用户名和密码为 mininet/mininet
使用当前的用户名和密码登录。测试X11是否在本机支持。
xterm
p.s. 如果使用OSX 10.5以后版本,mac将不会自带X11。如果需要相关功能,请使用XQuartz项目。apple supportwindows 请使用putty,使用方法为:
cd <putty dir>
putty.exe -X -P 2222 -l <user name > localhost
在新弹出的窗口中输入密码,键入:
xterm
应该出现白色终端窗口,如果成功,则完成基本的设置,关闭xterm。