免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2056 | 回复: 8
打印 上一主题 下一主题

网桥模式下回包不查arp表? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-09 21:27 |只看该作者 |倒序浏览
网桥br0对应eth0和eth1
桥上配了一个IP, 192.168.99.2/24

现在发现一个问题,对于外面主动发起到本机的连接,回包时,目的mac并不使用arp表对应项

举例: 现在外面有个pc,ip是192.168.99.5,mac地址是05-06-07-08-09-10
先在网桥上给这个ip静态绑定一个错误的mac: arp -s  192.168.99.5  05-06-07-08-09-AA
然后在pc上ping网桥, ping 192.168.99.2
结果发现,仍然可以ping通。
抓包发现,网桥回包的时候,目的mac并没错,仍然使用正确的mac: 05-06-07-08-09-10
然后又试了一下telnet 192.168.99.2, 也可以通
接着再反ping试一下,结果这次不行了,使用了错误的mac: 05-06-07-08-09-AA

路由模式下则不会出现这样的现象。
似乎linux网桥下,对外面发起到本机的连接,回包时直接把进来的包的源mac填到目的mac中就发出去了
想问下,有没人碰到过这个现象,或知道原因的?

论坛徽章:
0
2 [报告]
发表于 2009-06-10 10:57 |只看该作者
确保路由缓存空的情况下,再试试

netstat -rCn

论坛徽章:
0
3 [报告]
发表于 2009-06-10 15:18 |只看该作者
清空路由缓存也没用
ip route flush cache
echo "1" > /proc/sys/net/ipv4/route/flush

这应该没走错路由


想问下:为何你觉得跟不查arp表跟路由有关呢?

论坛徽章:
0
4 [报告]
发表于 2009-06-10 19:44 |只看该作者
路由缓存可以缓存硬件头,因此如果你在正确的情况下建立了该缓存,即使arp -s了,也在一段时间内有效,而不去查arp数据库。

论坛徽章:
0
5 [报告]
发表于 2009-06-10 20:27 |只看该作者
仔细分析了一下,发现我说的不正确,arp静态bind时会同步硬件头缓存的。确实很蹊跷,这种不应该发生的,不知道问题出在哪

论坛徽章:
0
6 [报告]
发表于 2009-06-10 21:11 |只看该作者
我试验了一下,没有发生你说的现象,pc根本就ping不通桥。是不是你没配置好桥?

论坛徽章:
0
7 [报告]
发表于 2009-06-11 08:53 |只看该作者
网桥如果有ip的话,应该可以ping通的吧?
我这里是一个自己公司的网络安全设备,内核裁剪过的,网桥代码也有很多改动,2.4.35的
我想确认一下普通的linux网桥,会不会出现这个问题,但手边没有普通的linux网桥?

论坛徽章:
0
8 [报告]
发表于 2009-06-11 09:16 |只看该作者
那就不能帮你找到问题的所在了,普通的linux网桥不会发生那种情况,你的代码处问题了

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
9 [报告]
发表于 2009-06-11 09:26 |只看该作者
遇到过类似的现象
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP