問題タブ [openflow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - MPLS ヘッダーがプッシュされた後、ovs スイッチ (バージョン 2.3.1) からパケットが転送されないのはなぜですか?
mpls ラベルをプッシュおよびポップする ryu アプリを作成しています。ovs (バージョン 2.3.1) スイッチ s1 のフロー エントリを次に示します。
フローエントリが一致してもパケットが転送されない理由は誰でも知っています。Wireshark を開いて s1-eth2 を参照して mpls ヘッダーをチェックすると、mpls ヘッダーまたは ethertype = 0x8847 のパケットが検出されないことが原因です。
s1-eth2 で確認できるパケットは、ICMPv6 (ルーター要請メッセージ)、DHCP、および MDNS のみです。それらのいずれも、ホスト 1 から h2 に送信している ping とは関係ありません。私のトポロジ:h1-s1-s2-h2
私のコードにはバグがありますか、それとも ovs または openflow_v1.4 ryu のバグですか?
ありがとう。
python - スイッチ ポリシーを挿入するために Open Flow Controller の動作をカスタマイズしますか?
私は SDX (Software Defined Exchange) に関する研究プロジェクトに取り組んでいます。現在の SDX の実装は、 https://github.com/sdn-ixp/sdxで提供 されており、パケット転送のために単一のコントローラーに接続された単一のスイッチのみを使用しています。
私の研究目標は、このセットアップをスケーラブルにすることです。最初に頭に浮かぶのは、明らかに SDX を複数のスイッチで動作させ、フロー テーブルを分割することです。私が考えたアプローチは、大まかにこのトポロジを設定することです:
http://i.stack.imgur.com/yXKQp.png
ここで、図に示す 3 つのスイッチ (この例では) に分散することにより、1 つのスイッチのフロー テーブル エントリを減らしたいと考えています。
ノード A がノード B にパケットを送信したいとします。A が最初に SDX に参加したとき、コントローラーは、この場合はインターフェイスとして使用するスイッチ (S1) と、それがアナウンスする IP プレフィックスを認識しました。B もスイッチ S1 とインターフェースしているとします。A が特定の IP から発信されたすべてのトラフィックを B に転送するポリシーを指定すると、コントローラーは両方の AS が同じスイッチに接続されていることに注意し、スイッチ S1 に対応するエントリを追加します。
私が望むのは、各スイッチに一致しないポリシーがあることです。つまり、パケットがエントリに一致しない場合、次のスイッチに転送されます。たとえば、エントリに一致しない A からパケットを取得した場合、S1 は S2 に転送されます。フローテーブルにあります。これは、A が特定のアドレスから発信されたすべてのトラフィックを D に転送したい場合に発生します。コントローラは、D がスイッチ S2 に接続されていることを認識しているため、対応するエントリをスイッチ S2 に追加するだけで、S1 で一致しないパケットはすべて転送されることを認識しています。デフォルトでは S2 に転送されます。
現在、OpenFlow コントローラーは接続されているすべてのスイッチにルールを設定しているため、Open Flow でこれを行う方法を知りたいです。ここからどの方向に行けばいいですか?独自のコントローラーを作成しようとする必要がありますか?
アドバイスをいただければ幸いです。ありがとうございました
python - Pox を私のプログラムにバインドする方法
仮想スイッチのように機能する小さな python プログラムがあります。今、私はそれを統合して、openflow コントローラー POX で制御できるようにしたいと考えています。
switch と POX の間で msg をどのように交換すればよいのでしょうか? ソケットを作成してポート 6633 (POX が実行されるデフォルトのポート) にバインドし、そのソケットを使用して以降のすべての openflow パケットを送信しますか? どうすればpoxに「接続」できますか。
接続を構築して維持するには、どのパケットを送信する必要がありますか?
INFO:openflow.of_01:[None 1] closed
INFO:openflow.of_01:[None 2] closed
...
openflow パケットを送信するたびに受信 します。コントローラを設定せずにスイッチをテストする方法は? (1 つのコントローラーに複数のスイッチが接続されていて、それらが互いに通信できるようにしたいと考えています)。
c - C言語でのOpenflowパケット解析
openflow パケットのプログラミングについて質問があります。openflow ネットワークをセットアップし、wireshark でコントローラーとスイッチ間のパケットをキャプチャし、pcap ファイルに保存しました。ここで、このファイルを C プログラムで読み取り、openflow 制御パケット ヘッダーを分析したいと考えています。1 つの解決策は、ファイルをバイトごとに読み取り、openflow パケットを分離することだと思いますが、それは有用な方法ではないようです。私の質問は、openflow パケットのヘッダーを読み取って操作するための機能を提供する C 言語の特別なライブラリ (pcap など) はありますか? 私の質問をさらに解決するために、たとえば、libpcap を使用してこれらの手順でパケットの MAC アドレスを簡単に見つけることができます。
知りたいのですが、このような Openflow パケット ヘッダーを見つける方法はありますか?