主机网卡接受到另一张网卡(IP)的arp包,进行了响应

主机vm1有两张网卡

网卡eth0:IP 10.222.0.44/16

网卡eth1:IP 10.142.0.44/16

 

主机vm2

网卡eth1:IP 10.142.0.41/16

 

两张网卡eth1是连接在同一局域网

 

在主机vm2上配置路由

10.222.0.0/16 dev eth1 scope link metric 1002

 

 

然后主机vm2

ping 10.222.0.44

竟然能ping通????????

 

为啥认为不能Ping通?

因为在vm2上,ping 10.222.0.44,理论上它和eth1的ip 10.142.0.41不在同一个网段,那么久需要走网关发出,但是配置了路由10.222.0.0/16 dev eth1 scope link metric 1002,这时

vm2访问10.222.0.0/16的包,都会从eth1广播出去。就不会走到默认网关。

------这里可以理解。

 

--------------------------------

但是vm1上,eth1 IP是10.142.0.44和vm2ping的目标ip 10.222.0.44不是同一IP,也不是同一个网段,理论上,内核协议栈收到广播arp包时,会检查该网卡的ip和目标Ip是否相同,如果不相同则会丢弃,那么这里为啥会去回复arp 响应包呢?为啥又还会ping的通呢?

------

 

因为内核又一个配置项是可以选择的。

在/proc/sys/net/ipv4/conf/all/rp_filter和/proc/sys/net/ipv4/conf/all/arp_ig。。。都设置一下,

那么就会有不同的处理方式。

如果arp_ignore=0,主要arp包中目的地址是本地某一个ip,都会回应。

如果arp_ignore=1,arp包中目的地址必须是本网咖,否则丢包,

这里注意rp_filter要设置成0,会进行反向路由检查。

如果arp_ignore=2,arp包中的目的地址必须是本网咖,并且源IP必须与该网卡是同一个网段,否则丢包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值