Ubuntu Mininet OVS控制器可以';无法加载并运行

Ubuntu Mininet OVS控制器可以';无法加载并运行,ubuntu,networking,openvswitch,mininet,Ubuntu,Networking,Openvswitch,Mininet,当我尝试从主机终端将SSH登录到我的mininet虚拟机时,它会显示权限被拒绝错误,甚至是从虚拟机终端内部,在虚拟机终端中,使用以下命令托管mininet: sudo mn --topo single,3 --mac --switch ovsk --controller remote` 它显示以下错误: ubuntu@ubuntu:~$ sudo mn *** Creating network *** Adding controller *** Adding hosts: h1 h2 ***

当我尝试从主机终端将SSH登录到我的mininet虚拟机时,它会显示权限被拒绝错误,甚至是从虚拟机终端内部,在虚拟机终端中,使用以下命令托管mininet

sudo mn --topo single,3 --mac --switch ovsk --controller remote`
它显示以下错误:

ubuntu@ubuntu:~$ sudo mn
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
Cannot find required executable ovs-controller.
Please make sure that it is installed and availabe in your $PATH:
(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin/:/bin)
ubuntu@ubuntu:~$
所以我不能继续使用SDN网络!
如何手动修复,以及为什么会发生此错误

升级到打开vSwitch 2.1时,我遇到了完全相同的问题。 在ovs(新闻)的发行说明中,我发现:

  - ovs-controller has been renamed test-controller.  It is no longer
     packaged or installed by default, because too many users assumed
     incorrectly that ovs-controller was a necessary or desirable part
     of an Open vSwitch deployment.
我还在
/tests/testcontroller
(源代码分发)下找到了
测试控制器
,所以我只是尝试了一下

sudo cp tests/test-controller /usr/bin/ovs-controller
这对我来说很好!我也在使用MiniNet2.1,但我必须完成上面的操作才能使其正常工作。 以下是输出:

$ sudo mn --controller=ovsc
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
*** Starting 1 switches
s1
*** Starting CLI:
mininet> pingall
*** Ping: testing ping reachability
h1 -> h2
h2 -> h1
*** Results: 0% dropped (2/2 received)
mininet>
有趣的是,他们不鼓励使用
测试控制器
,甚至更不鼓励Mininet使用它。也许有更好的可执行文件用于此目的


让我知道这是否适合你

一种更干净的安装方式是使用Ubuntu软件包升级。这将使OVS的未来升级和移除更加容易。一个例子是在

如果从源代码处安装了Open vSwitch并希望将其删除,则只需返回源代码目录并运行“make uninstall”


顺便说一句,我发现如果您在从源代码安装之前没有在系统上安装OpenVSwitch,OpenVSwitch安装将不包括系统启动脚本,因此您必须手动安装它们。最好尝试使用打包脚本安装OpenVSWTich。

作为上面csl的指针,您必须单独安装openvswitch控制器。在ubuntu中,这就是我的工作原理:

sudo apt-get install openvswitch-testcontroller
sudo cp /usr/bin/ovs-testcontroller /usr/bin/ovs-controller

您使用的是哪个版本的Mininet和Open vSwitch?我刚刚将OpenVSwitch升级到2.1,我得到了相同的错误。我想修复它应该不会太难。我在上找到了一些说明,但似乎ovs更改了ovs控制器二进制文件的名称(请参阅发行说明)。我的Mininet是2.1,是的,我也将ovs升级到了2.1,每次都是:$sudo mn***添加开关:2014-04-28T23:45:28Z | 00001 |重新连接|警告| unix:/usr/local/var/run/openvswitch/db.sock:连接尝试失败(连接被拒绝)ovs vsctl:unix:/usr/local/var/run/openvswitch/db.sock:数据库连接失败(连接被拒绝)ovs vsctl退出,代码为1***使用ovs vsctl连接到ovs db时出错确保已安装Open vSwitch,ovsdb服务器正在运行,并且“ovs vsctl show”正常工作。您可能希望尝试“服务openvswitch switch start”。试着用遥控器启动Mininet,
sudo mn--controller=remote
。我认为应该可以。ya@csl这对--controller=remoteOk很好,那么这个问题已经解决了,我相信!)感谢@csl的洞察。我已经尝试过了:现在想完全删除OVS?你有什么建议吗?这样没有任何附加控制器的sudo mn就可以像以前一样正常工作?如果你想删除它,最好的方法是转到源目录并运行
进行卸载
。但是你必须请确保停止服务并删除内核模块。请注意,这只解决了安装/卸载部分,而不是缺少(或重命名)内核模块的问题ovs 2.1中的二进制文件。@Greg:使用打包脚本安装OpenVSWTich ubuntu 12.04 LTS提供吗?ubuntu 12.04附带ovs 1.4.3。我的博客文章介绍了如何创建较新的ovs软件包。至于缺少的二进制文件,不知道Mininet将如何使用ovs控制器。最新的ubuntu 14.04 ovs软件包是2.0.1,其中仍然包含ovs控制器。因此,一旦Ubuntu发行版不包含ovs控制器,那么Mininet将必须更新。您可以将其软链接:
sudo ln-s/usr/bin/ovs testcontroller/usr/bin/controller