在mininet中的64主机树拓扑上使用pox l3_learning.py模块时出现Openflow错误

时间:2017-01-09 16:52:29

标签: ddos sdn mininet pox

我正在运行带有64个主机的树拓扑的mininet(深度= 2,扇出= 4)。我已经为我的控制器使用了pox(版本:eel)的L3_learning.py模块(我刚添加这个模块的一些功能,代码本身没有变化,所以l3_learning用于路由)。

我想尝试在此网络上运行普通和ddos攻击流量。问题是当我在少量主机(少于15台主机)上运行正常流量时,例如间隔0.1秒(每秒10个数据包),以及来自3个或4个不同来源的一些3个受害者攻击,间隔0.05秒(每秒20包)短时间(约3-4分钟!!),在痘日志中我收到此错误:

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模块进行路由? 我不知道如何编写我自己的路由解决方案!

通过模拟还会显示一条警告消息:

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)

感谢您的关注。

0 个答案:

没有答案