Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PacketOut_Trouble #108

Open
ttohyama opened this issue Mar 3, 2017 · 8 comments
Open

PacketOut_Trouble #108

ttohyama opened this issue Mar 3, 2017 · 8 comments

Comments

@ttohyama
Copy link

ttohyama commented Mar 3, 2017

Issue Type

  • Bug report

Summary

OFC(Ryu)からパケットアウトされるパケットを正常に処理していない可能性がある

Bug report

  1. OFC(Ryu)から、Lagopusにパケットアウトされたパケットが
    指定ポートから出力されない事例を確認した。

  2. OFC(Ryu)から、Lagopusにパケットアウトされたパケットが
    重複して指定ポートから出力されている事例を確認した。

Expected behavior

OFC(Ryu)から、Lagopusにパケットインされたパケットが
指定ポートから正常に出力される

Actual behavior

構成図は、PacketOut_Trouble.zip
に、Diagram.pngとして添付している。
キャプチャポイントは★で示した2点である。

パケットの消失については、PacketOut_Trouble.zip
に、LagopusA-Loss.pcapngとして添付している。
No.1-No.3、No.5-No.7については、通常動作時のキャプチャであり
OFCからのパケットアウト、D-Plane通過、OFCへのパケットインの
順番で記録されている。
しかし、No4で、Lagopusにパケットアウトされているパケットは
パケットアウト以降は記録されていない。
構成から考えるとLagopusで処理できていない可能性が高いと考えられる。

パケットアウトしたパケットの重複については、
PacketOut_Trouble.zip
にLagopusA-Dup.capとして添付している。

No.1で、OFC(Ryu)からパケットアウトされたパケットは
Lagopusによって、D-Planeの指定ポートからNo.2で
出力していることがわかる。
しかし、No.1でOFCからパケットアウトされたパケットを
No.3でも送信しており、Lagopusにて重複してデータを送信している可能性が
高いと考えられる。

Environment

Host OS: Ubuntu 14.04
Lagopus: commit 7097920
Extension Ryu : commit e1e343acc21637ccdaa944a5c51d41f725006278

Steps to reproduce

OFC(Ryu)から、VXLAN、VLANの順番にカプセリングした
data_tlvを、C/M-PlaneからLagopusにパケットアウトし、
LagopusのD-Planeポートから出力する。

この時、1秒に4つ程度OFCから送信し、長時間流し続けると
本事象が発生する。

@iMasaruOki
Copy link

パケットアウト(Controller -> Switch)の問題とのことですが、キャプチャファイルの内容を見る限りPacket-outはまったく記録されていないように見えました。Dup,LossともにPacket-In(Switch -> Controller)が記録されているのは見えました。キャプチャファイルを開くのにWiresharkを使ったのですが、別のアプリケーションを使えばいいのでしょうか?

@ysato001
Copy link

ysato001 commented Mar 3, 2017

Wireshirkで見ることが可能です。
LagopusA-Loss.pcapngには7つのパケットがキャプチャされています。実際はもっとたくさんキャプチャされてますが、関係するパケットだけ抜き出しています。
No.1はコントローラ(.26.5)からLagopus1(26.2)にパケットアウトされたパケットです。
No2.はLagopusのデータポートからそのパケットが出力されたとところをキャプチャしています。(Lago1からLago2へ転送)
No3.はLago2(26.8)からコントローラにパケットインされたパケットです。
以上No.1-3は正常に処理された様子が確認できます。
同じように、No.5-7も正常処理されています。
ちなみにパケットのペイロードを見てい頂けると、アスキーでSerialNumberが書いてあるので、辿ることができます。
No.4はロスしたと思われるパケットアウトのパケットです。コントローラからLago1には届いていますが、Lago1から出たキャプチャ記録がありません。
以上の状況からパケットインでのロスの可能性があるとみています。

@ysato001
Copy link

ysato001 commented Mar 3, 2017

LagopusA-Dup.pcapngの方ですが、こちらは1つのパケットアウトに対し、2つのパケットがデータポートから出力されている様子をとらえています。
No.1はコントローラ(26.5)からLago1(26.2)にパケットインされたパケットです。ペイロードをみると、SerialNumberが290434でvxlanidが120になっていることが確認できます。
No.2はLago1からデータポートに出力されたパケットですが、ペイロードを見ると、serialNumber、vxlanidが同じことが確認できます。
No.3もLago2からデータポートに出力されたパケットです。同じように見てみると、やはり同じserialNumber、vxlanidが付いていることが確認できます。
No.4はLago2からパケインでコントローラに戻ってきたパケットです。
No.5も同じです。
以上の状況からLago1で1つのパケアウトに対し2つのパケットをデータポートに出力している可能性が高いと考えています。

@iMasaruOki
Copy link

LossのNo.1はコントローラ(.26.5)からLagopus1(26.2)にパケットアウトされたパケットとのことですが、こちらで見た限りではNo.1は345bytesのDataが乗ったTCPのパケットで、OpenFlow Protocolに見えていないため、Packet-Outなのかどうかの確認ができません。Packet-Outであれば、本来どういう処理(action)をスイッチに指示しているのかの情報が含まれていますので、actionが正しいかどうかから調査をすることになると思います。それが見えるようなキャプチャをいただけますか? どのようなPacket-Outをしたか不明では、再現テストをこちらで実行することができません。よろしくお願いします。

@iMasaruOki
Copy link

問題と推定した箇所だけ抜粋したキャプチャでは、推定が外れていた時の調査が困難ですので、可能であればキャプチャは最初から取得したものを加工せずにいただけると嬉しいです。また、Lagopusの設定もいただけますか? よろしくお願いします。

@iMasaruOki
Copy link

Lagopusのログを取得しているようでしたらそちらもお願いします。

@iMasaruOki
Copy link

「1秒に4つ程度OFCから送信し、長時間流し続けると」とあるので、正常動作していたものがある時点で動かなくなったということだと思いますが、それ以降ずっと継続して症状が出続けるのか、たまたま?ひとつだけ落ちたのか、しばらくすると復帰するなど断続して発生する症状か、お手元でご確認されているようでしたらお知らせいただけますと幸いです。

また、添付いただいたキャプチャについてはプロトコル指定を手で実行して読み取ることができました。
LossでのNo.4と指摘いただいているパケットについてactionの最後がoutput:2となっていましたが、192.168.26.2のLagopus(構成図の左側、Lagopus1でしょうか)で2番ポートのカウンターの値がどうなっているかわかりますでしょうか。カウンターの値が上がっていなければそもそもoutput:2の実行ができていない(Packet-Outを受け取れていない可能性も込みで)、カウンターの値が上がっていればLagopusは出力処理を実行しているがどこかでパケットが失われたということになります。こちらお手数ですがご確認いただけますと幸いです。

@ttohyama
Copy link
Author

ttohyama commented Mar 6, 2017

ありがとうございます。

「1秒に4つ程度OFCから送信し、長時間流し続けると」とあるので、
正常動作していたものがある時点で動かなくなったということだと思いますが、
それ以降ずっと継続して症状が出続けるのか、たまたま?ひとつだけ落ちたのか、
しばらくすると復帰するなど断続して発生する症状か、
お手元でご確認されているようでしたらお知らせいただけますと幸いです。

上記件ですが、断続的にパケットロスが発生する事象となります。

また、添付いただいたキャプチャについてはプロトコル指定を手で実行して
読み取ることができました。

お手数をお掛けして申し訳ありません。ありがとうございます。

LossでのNo.4と指摘いただいているパケットについてactionの最後がoutput:2と
なっていましたが、192.168.26.2のLagopus(構成図の左側、Lagopus1でしょうか)で
2番ポートのカウンターの値がどうなっているかわかりますでしょうか。

構成図左側のLagopus1が当該のLagopusになります。
2番ポートのカウンタの値がロス発生時に上がるかどうかについてですが、
非定期的にロスが発生しているため、確認が難しいかと思われます。
確認出来るようであれば、追ってご連絡させていただきます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants