br-lan: received packet on eth2.1 with own address as source address

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=27057175&id=4740299

路由器是OpenWRT系统的,接上网络后,一直出现这句告警,

但是不影响连通性。

首先看到这个是内核打印的,查了其他人的解释,
1. brctl stp intf on
2. 关闭ipv6
都试过了,无效!
进入了一个误区,因为是br-lan一直打印这个,导致认为lan配置有问题。

偶然把wan口连接断开,告警消失了?
这才想到,我的路由器lan wan实际上同一个eth物理网卡,只是虚拟出来的vlan,MAC地址也就是相同的。为了方便,我把lan wan都通过同一个交换机接到PC,wan口寻找自己的gateway和DNS,向外狂发广播包,到了交换机,包就又回到了路由器的lan口。这样收到的报文 srcmac和br-lan口自己mac相同 了,故而有这个告警!!!!!
原来这个告警的address是MAC address。
愚蠢的错误

查看内核源码,这个告警只在bridge模块(net/bridge/br_fdb.c)才会检查, 不在lan上创建bridge则没有问题
把lan/wan的hwaddr用ifconfig修改成不一样的,就可以彻底解决。

你可能感兴趣的:(br-lan: received packet on eth2.1 with own address as source address)