我有一个运行OVS的arch linux系统 . 我也有一个控制器在同一个盒子里运行 . 我有以下设置: -
ovs-vsctl set-controller br-int tcp:192.168.1.201:6633
我希望使用tshark(tshark 2.2.8)使用以下命令捕获openflow: -
sudo tshark -i br-int -d tcp.port==6633,openflow -O openflow_v4
它会转储系统中流动的所有流,但不会转储打包流消息 . 我确实确认了控制器收到的packetIn消息 . (粘贴最后几行:-)
EVENT ofp_event->EventOFPPacketIn
packet in 1237689849893337 b8:27:xx:xx:yy:yy:zz ff:ff:ff:ff:ff:ff:3
我也从tshark文档中了解到,默认情况下它使用端口6653进行openflow .
tshark -G decodes | grep -i openflow
tcp.port 6653 openflow
但是我的印象是我仍然可以使用以下捕获命令来查找openflow流量: -
https://wiki.wireshark.org/OpenFlow
tshark tcp port 6633
虽然我可以看到控制器接收到大量事件,但这也不起作用,因为没有捕获任何事件 .
非常感谢这里的任何帮助 .
1 回答
我的猜测是你没有听正确的界面 . 请尝试以下方法:
如果这不起作用,则您的控制器和交换机可能无法使用OpenFlow 1.3进行通信 . 为确保您看到所有内容,请尝试:
Details. 除非您的设置中有特定内容,否则从Open vSwitch到控制器并返回的数据包不会通过网桥 . 由于通信的两端都在同一主机上,因此数据包可能会通过环回接口:
我能够使用Open vSwitch 2.5.2和Floodlight(
master
分支)重现您的设置和问题以确认我的答案 . 我可以看到在回送接口上通过tcpdump
和tshark
传递的数据包 .