之前也提到为了测试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
就可以看到运行结果了。
浙公网安备 33010602011771号