enc28j60+LWIP在复杂网络长时间运行出现问题

2019-07-15 09:37发布

该问题出现的时间也不短了,鉴于本渣对网络研究不精,希望网络大神能指点一二

为了详细描述问题,这里交代下设备的使用背景:
公司有一批设备采用的网卡芯片是ENC28J60,使用的网络协议栈是LWIP,
在简单的网络底下运行没有问题(包括带有视频数据包的网络),但在某些网络下使用一段时间就会出问题
例如某场景的网络拓扑图如下:
拓扑图.PNG
一开始所有设备都能正常工作,但使用一段时间后就会所有设备都失效,
虽然所有设备不是同时出现问题,但只要有一只出现问题,其他设备都会前赴后继的出问题
经过了一段时间的跟踪之后,终于把问题缩小到设备和路由器之间,目前还不知道网卡的问题还是路由器的问题
本渣使用wireshark抓了2个设备的数据包,一个正常,一个异常,数据内容都比较短
通过比较两个数据包的内容发现设备发送给路由器的数据包都正常:
1、正常设备(192.168.4.194)上传的数据包:
normal.png
2、异常设备(192.168.4.199)上传的数据包:
abnormal.png
通过比较,两者的源IP和目的IP都正常,源MAC地址与目的MAC地址也正常,而且包头的内容也基本一致(除了标识和校验有差别)
基本可以肯定这2台设备的数据包都是合法的!!!

既然设备到路由的数据包正常,那么我重新抓了路由到光猫的数据包
一般而言数据包经过路由器后,源IP地址会被封装成路由器的IP地址,源MAC地址会被封装成路由器的MAC地址
对于正常的设备来说都没有问题,问题就在于不正常的设备并没有按照上面的法则来做!!!
这是我抓到异常的设备通过路由器后的数据包:
router.png
这里发生了非常神奇的一幕,异常的设备(192.168.4.199)经过路由器后,源MAC地址变成了路由器的MAC地址,但源IP地址并没有改变!!!
what the fuck!!!!!!这理论上是不可能的,通过路由器的数据包怎么可能只改变了源MAC而不改变源IP呢????
ps:别问我是怎么抓路由器到光猫的数据包的,带端口镜像的路由器可以抓通过路由器的所有数据包,包括LAN和WAN

搞了很久也没能搞出来,包括把虚拟服务器也设置了,这诡异的问题还在!
本渣只能把问题的范围缩小到这里,至于是路由器的问题还是ENC28J60的问题,本渣已经没能力考究了,恳请各位大佬赐教!!!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
qingshu
1楼-- · 2019-07-15 19:10
我也碰到这个问题,我是在公司的局域网里面,用一个小交换机连接自己的电脑和设备。
我想问下楼主说的简单的网络是怎样的?是否是自己用路由器搭个网络?
另外请问楼主现在这个问题解决了吗?
NMOS
2楼-- · 2019-07-16 00:15
qingshu 发表于 2017-11-10 14:58
我也碰到这个问题,我是在公司的局域网里面,用一个小交换机连接自己的电脑和设备。
我想问下楼主说的简单的网络是怎样的?是否是自己用路由器搭个网络?
另外请问楼主现在这个问题解决了吗?

我说的简单的网络是指很少网络设备接入、没有三层交换机、尽量不用企业级路由器等家庭级的网络环境。
我们的设备跟你说的情况一样,都是经过交换机接入楼盘的网络(交换机还会接入其他设备)
后面发现其实跟交换机等其他设备没多少关系,主要是路由器的问题。
我把问题反馈过给华三的工程师,给了他们原始的抓包,他们看过之后也认为我们的设备没有问题
后面跟TP-LINK的工程师反馈完问题之后他们说应该是跟协议有关,给了个解决方案给我们
按照他们提供的方法我后面把设备功能改了下,测试了一个月了都没有出现过这个奇葩问题

一周热门 更多>