首页 文章

如何使用tshark捕获openflow数据包

提问于
浏览
1

我有一个运行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 回答

  • 1

    我的猜测是你没有听正确的界面 . 请尝试以下方法:

    sudo tshark -i any -d tcp.port==6633,openflow -O openflow_v4
    

    如果这不起作用,则您的控制器和交换机可能无法使用OpenFlow 1.3进行通信 . 为确保您看到所有内容,请尝试:

    sudo tshark -i any -d tcp.port==6633
    

    Details. 除非您的设置中有特定内容,否则从Open vSwitch到控制器并返回的数据包不会通过网桥 . 由于通信的两端都在同一主机上,因此数据包可能会通过环回接口:

    sudo tshark -i lo -d tcp.port==6633
    

    我能够使用Open vSwitch 2.5.2和Floodlight( master 分支)重现您的设置和问题以确认我的答案 . 我可以看到在回送接口上通过 tcpdumptshark 传递的数据包 .

相关问题