0

64 個のホスト (深さ = 2、ファンアウト = 4) のツリー トポロジで mininet を実行しています。コントローラーには pox(version:eel) の L3_learning.py モジュールを使用しました (関数をいくつか追加しただけです)。このモジュール、コード自体は変更されていないため、ルーティングには l3_learning が使用されます)。

このネットワークで通常のトラフィックと ddos​​ 攻撃のトラフィックを実行したいと考えています。問題は、たとえば、間隔 0.1 秒 (1 秒あたり 10 パケット) で少数のホスト (15 未満のホスト) で通常のトラフィックを実行し、3 つまたは 4 つの異なるソースからの 3-victim 攻撃を実行する場合です。間隔 0.05 秒 (1 秒あたり 20 パケット) の短い時間 (ちょうど約 3 ~ 4 分!!)、pox ログに次のエラーが表示されます。

ERROR:openflow.of_01:[00-00-00-00-00-01 1] OpenFlow Error:
[00-00-00-00-00-01 1] Error: header:
[00-00-00-00-00-01 1] Error: version: 1
[00-00-00-00-00-01 1] Error: type: 1 (OFPT_ERROR)
[00-00-00-00-00-01 1] Error: length: 76
[00-00-00-00-00-01 1] Error: xid: 11304
[00-00-00-00-00-01 1] Error: type: OFPET_BAD_REQUEST (1)
[00-00-00-00-00-01 1] Error: code: OFPBRC_BUFFER_UNKNOWN (8)
[00-00-00-00-00-01 1] Error: datalen: 64
[00-00-00-00-00-01 1] Error: 0000: 01 0e 00 60 00 00 2c 27  00 00 00 00 00 04 da 53 |...;............|
 .
 .
 .
 .

トラフィックに使用したレート (10 パケット/秒、20 パケット/秒) が非常に低いのですが、このエラーの原因は何ですか? mininet にパケットレートの制限はありますか? それとも、問題は pox の l3_learning.py モジュールをルーティングに使用することに関連していますか? 独自のルーティング ソリューションを作成する方法がわかりません。

また、シミュレーションを通じて 1 つの警告メッセージが表示されます。

WARNING:forwarding.l3_learning: 5 4 not sending packet for 10.0.0.28 back out of the inport port
WARNING:forwarding.l3_learning: 2 7 not sending packet for 10.0.0.7 back out of the inport port
.
.
.

このメッセージはどういう意味ですか?

通常および攻撃のトラフィック ソースは、次のコードで生成されます。

def source():
  not_valid =[10,127,254,255,1,2,169,172,192]          
  first = randrange(1,256)      

  while first in not_valid:        
    first = randrange(1,256)         

  ip = ".".join([str(first),str(randrange(1,256)),                    
       str(randrange(1,256)),str(randrange(1,256))])    
  return ip

攻撃先はユーザー入力(64ホスト中)。次の行は、攻撃パケットを送信します。

for i in xrange(0,10000):         
 packets = Ether()/IP(dst=dstIP,src=source())/TCP (dport=1,sport=80)         


sendp( packets,iface=interface.rstrip(),inter=0.05)

ご清聴ありがとうございました。

4

0 に答える 0