как перехватывать пакеты openflow с помощью tshark

У меня есть система с Arch Linux под управлением OVS. У меня также есть контроллер, работающий в той же коробке. У меня есть следующая настройка: -

ovs-vsctl set-controller br-int tcp:192.168.1.201:6633

Я надеялся использовать tshark (tshark 2.2.8) для захвата открытого потока с помощью следующей команды: -

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

он сбрасывает все потоки, проходящие в системе, но не сообщения packageIn openflow. Я подтвердил, что сообщение packageIn было получено контроллером. (вставка последних нескольких строк :-)

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

Однако у меня сложилось впечатление, что я все еще могу искать трафик открытого потока, используя следующую команду захвата: -

https://wiki.wireshark.org/OpenFlow

 tshark tcp port 6633

Это также не работает, так как никакие события не фиксируются, хотя я вижу, что контроллер получает много событий.

будем очень признательны за любую помощь здесь.


person sunny    schedule 18.08.2017    source источник


Ответы (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.

person pchaigno    schedule 19.08.2017
comment
позвольте мне попробовать и вернуться. Я не знал об этом. Однако я подтвердил, что использую openflow 1.3, поскольку приведенные выше команды работали, когда я пытался подключить его к контроллеру на другом сервере. ценю твою помощь. Я закрою это, как только попробую. - person sunny; 19.08.2017
comment
интерфейс любой работал, но вот нет. но спасибо - по крайней мере, я двигаюсь вперед. У меня есть связанный с этим вопрос, который я задам как отдельный вопрос. - person sunny; 22.08.2017
comment
Странно, у меня это проходило через ло. Ты под линуксом? Удалось определить интерфейс, с которого он уходит? - person pchaigno; 22.08.2017
comment
это Arch Linux - не уверен, что это чем-то отличается. Кроме того, приведенные выше команды tshark захватывают все потоки, а не только openflow. это почему ?. я думал, что мы дали фильтр захвата -d tcp.port==6633,openflow -O openflow_v4?. не должен ли он искать только открытый поток. - person sunny; 22.08.2017
comment
Он будет захватывать весь трафик, входящий или исходящий из порта 6633. Насколько я помню, некоторые из них могут выглядеть как простые TCP-пакеты. - person pchaigno; 22.08.2017