leaveing2012 发表于 2015-01-04 10:01

快速发送大量的包,SNAT转换问题

用发包软件发送大量tcp请求,源和目的地址不变,源端口号一直改变,目的端口号从1-65535,中间进行snat转换,发包过快的时候SNAT上转换部分数据后就没转换了,系统很容易死机,没反应,串口也挂掉,内核也没提示啥信息。减缓发包速度,SNAT正常转换,也不会死机。去掉SNAT,快速发包也不会出现问题。SNAT转换处理速度有限制吗,是不是读写锁的问题,怎么会导致死机呢,请教!!!!

leaveing2012 发表于 2015-01-04 10:07

在SNAT处理地方添加过printk,由于发包速度太快,printk打印速度限制,只能看到部分包的信息,打印出来都是正常的,怎么去调试这个问题呢。。

Godbach 发表于 2015-01-04 11:40

回复 2# leaveing2012

速度有多快?

测试目标机的配置怎么样,比如 CPU。是否观察 CPU 的状况,usage 达到多高?
   

humjb_1983 发表于 2015-01-04 12:30

死机时串口没有异常打印?

leaveing2012 发表于 2015-01-04 16:35

回复 3# Godbach
CPU750MHz,至于发包速度,就是scanport 10 线程发包(端口扫描功能),1个线程发包不会出现问题。情况是10线程发包一段时候后SNAT停止转换了,死机应该是cpu 100%了,问题是如果没设置SNAT就不会出现此问题。

   

leaveing2012 发表于 2015-01-04 16:35

回复 4# humjb_1983
串口,内核都无信息。

   

humjb_1983 发表于 2015-01-05 08:38

leaveing2012 发表于 2015-01-04 16:35 static/image/common/back.gif
回复 4# humjb_1983
串口,内核都无信息。
看起来像是“假死”吧,可能并未真正死机~
死机时,还能ping通么?键盘还有反映么(比如键盘灯是否能点亮)?

Godbach 发表于 2015-01-06 11:47

回复 5# leaveing2012

你是测试的标准 NAT 功能吗,串口登陆设备还能执行命令操作什么的吗。SNAT 是需要消耗一些资源,你的 CPU 什么类型,怎么才 750MHz


   

leaveing2012 发表于 2015-01-22 10:48

回复 8# Godbach
问题找到了,通过netlink 将用户跟踪信息发送给一个应用程序,因为是攻击,连接跟踪信息会不断增加,应用程序接受接收后处理不过来,recv前延时1秒钟才不会出问题,socket缓存改大后,也没用,有什么方法可以限制连接跟踪信息,用limi限速影响系统性能。

   
页: [1]
查看完整版本: 快速发送大量的包,SNAT转换问题