Xiaodong‘s Blog

——学习生活·记录

导航

【Mininet】安装使用Mininet cluster教程

Posted on 2017-03-19 00:18  张笑冬  阅读(732)  评论(0)    收藏  举报

之前也提到为了测试mininet的cluster版本而在两个新的虚拟机上重新安装了mininet。这里把使用cluster版本的方法进行记录。

主要方法可以参考:https://github.com/mininet/mininet/wiki/Cluster-Edition-Prototype

1. Common User Name

按照教程所说,首先要在两个系统中配置相同的用户名。我在安装系统时候就提前设好了。如果使用已有系统或已有mininet的人可以网上百度怎么创建系统用户。

2. Password-less Sudo

然后需要关闭Sudo的密码。

执行:

daniel@ubuntu:~$ sudo visudo

在文档最后添加

[username] ALL=NOPASSWD: ALL

这里的 [username] 是你的系统账户名

3. Password-less SSH

这里我们要关闭SSH需要的账户密码。这需要一系列的命令,而在mininet中已经很贴心的把这些命令封装在一个文件中了,这个文件是 mininet/util/clustersetup.sh

在使用这个文件之前我们需要知道两台主机的IP地址,使用ifconfig命令即可看到,这里我的两台主机地址分别为192.168.80.133和192.168.80.134。

然后在IP地址为192.168.80.133的主机上运行以下命令,把另一台主机加入到自己的配置当中:

daniel@ubuntu:~/mininet/util$ ./clustersetup.sh 192.168.80.134

在另一台主机也同理进行配置。

 

注1:这里和Mininet cluster edition官方教程给的例子是用的主机名,如果两台通信主机之间之前已经配好主机名和IP的映射关系的话用主机名更方便。但是教程中有一点说的不清楚,那就是教程给的 ./clustersetup.sh clusterhost1 clusterhost2 命令让读的人并不知道后面的clusterhost1和clusterhost2指的是除本机外另外两台主机还是包括本机的总共两台主机,这个当时困惑我很久,事实上只需要用到除本机外的另一台主机IP即可。

 

注2:在执行脚本时可能会出现 Permission denied, please try again. 的报错,那么请修改 /etc/ssh/sshd_config 文件中的行

PermitRootLogin no

改为

PermitRootLogin yes

 

注3: 我在配置以上步骤的时候还出现在执行脚本时卡在Creating key pair的情况,这个原因我不清楚,我的个人解决办法是把sh文件的对应代码备注掉了,强制执行后面的代码。但是不知道会不会有什么问题,也不知道是不是适用所有遇到这种问题的情况。

 

以上步骤都执行完以后,配置过程就结束了。运行时使用命令:

daniel@ubuntu:~/mininet/util$ sudo -E mn --topo tree,3,3 --cluster 192.168.80.134

就可以看到运行结果了。