免费注册 查看新帖 |

Chinaunix

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

有多个网口情况下,内核对arp请求的处理疑问。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-23 17:13 |只看该作者 |倒序浏览
A机器接口信息:
eth0      Link encap:Ethernet  HWaddr 00:05:B7:08:BC:C6  
          inet addr:168.0.12.219  Bcast:168.0.255.255  Mask:255.255.0.0

eth1      Link encap:Ethernet  HWaddr 00:04:6A:FF:81:68  
          inet addr:192.168.0.5  Bcast:192.168.0.255  Mask:255.255.255.0

我在eth0的驱动中丢弃所有接收和发送的包(当然包括ARP包,根据业务需要,我不能通过禁用eth0来实现此功能)。
然后在B机器上ping 168.0.12.219(eth0的IP地址)
同时在B机器上抓包发现,本机仍然能够收到A机器的ARP响应,只不过ARP响应中的MAC地址是00:04:6A:FF:81:68(eth1的),也就是说这次ARP请求和响应都是经过eth1完成的。内核这样处理ARP请求是不是有问题?我认为内核不应该从eth1来响应这条ARP请求。实在不明白。

论坛徽章:
0
2 [报告]
发表于 2009-06-24 13:02 |只看该作者

回复 #1 ruomu 的帖子

试试
echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore

在linux中,ip属于host,而不属于网卡,
你google一下arp_ignore就知道为什么了

论坛徽章:
0
3 [报告]
发表于 2009-06-24 20:44 |只看该作者

回复 #1 ruomu 的帖子

把路由贴出来看看。
Linux的TCP/IP协议栈对于包的转发和接收核心是在于路由表。

论坛徽章:
0
4 [报告]
发表于 2009-06-24 23:51 |只看该作者
原帖由 ggyyunix 于 2009-6-24 13:02 发表
试试
echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore

在linux中,ip属于host,而不属于网卡,
你google一下arp_ignore就知道为什么了

多谢,明白了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP