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