2016-07-22 150 views
0

我想与ryu和openVswitch做一个简单的sdn网络,但我的ryu控制器似乎无法正常工作。
我只是尝试ping两台主机,但是当我执行命令
ryu-manager simple_switch_13.py
(这是一个预置的脚本)控制器不执行任何操作,数据包将不被转发的数据通路,它甚至不洪水他们。ryu控制器不转发数据包

当我停止刘某经理也给出了这样的回溯:

Traceback (most recent call last): 
    File "/usr/bin/ryu-manager", line 9, in <module> 
load_entry_point('ryu==3.19', 'console_scripts', 'ryu-manager')() 
    File "/usr/lib/python2.7/dist-packages/ryu/cmd/manager.py", line 99, in main 
hub.joinall(services) 
    File "/usr/lib/python2.7/dist-packages/ryu/lib/hub.py", line 89, in joinall 
t.wait() 
    File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 175, in wait 
return self._exit_event.wait() 
    File "/usr/lib/python2.7/dist-packages/eventlet/event.py", line 121, in wait 
return hubs.get_hub().switch() 
    File "/usr/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 294, in switch 
return self.greenlet.switch() 
    File "/usr/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 346, in run 
self.wait(sleep_time) 
    File "/usr/lib/python2.7/dist-packages/eventlet/hubs/poll.py", line 85, in wait 
presult = self.do_poll(seconds) 
    File "/usr/lib/python2.7/dist-packages/eventlet/hubs/epolls.py", line 62, in do_poll 
return self.poll.poll(seconds) 

我不认为这个问题是在代码中,因为simple_switch_13.py是一个预置的脚本。有谁知道我做错了什么? 你可以找到一个simple_switch_13.py here的例子。

如果我想说点什么,请问我,谢谢。

+0

ryu控制器和交换机之间的连接好吗?也许防火墙或阻止与控制器的连接? – ctron

+0

@ctron是的,他们是连接的,事实上,如果我在init函数中放置一个'print“hello world”'命令,它会打印字符串。也在数据路径上执行'ovs-vsctl show'确认。 – dipo

回答

0

最后我解决了这个问题,我认为这是我在数据路径配置中错过的东西,因为我没有更改代码。我会在这里发布它,如果有人需要它:

ifconfig eth0 add FC00:1::2/64 up 
ifconfig eth1 10.0.0.2/24 up 
ifconfig eth2 add FC02:1::2/64 up 

/etc/init.d/openvswitch-switch start 

ovs-vsctl add-br br1 
ovs-vsctl add-port br1 eth1 
ovs-vsctl set-controller br1 tcp:10.0.0.1:6633