我的目标主机上有多块儿网卡,分别配置不同网段的ip,例如:
eth0/172.20.1.123,
eth1/172.20.2.123,
eth2/172.20.3.123;
源主机在一块儿网卡上配置多个ip,例如:
172.20.1.124;
172.20.2.124;
172.20.3.124;
源主机和目标主机在同一局域网中;
源主机通过172.20.2.124地址连接目标主机上的某项服务,在源主机上通过arp -a 查看mac和ip的映射表时发现:172.20.2.123对应的mac实际为172.20.1.123接口的mac。
这是为什么呢?
arp列表中的ip-mac并不是网卡实际设置的地址,而是通向这个ip的下一跳mac地址
意思就是计算机上次连接172.20.2.123时,下一跳地址是172.20.1.123,之后由1.123转发给2.123
可以用CPT软件模拟一下,有 可能是服务器配置有问题,mac和ip映射有多种可能,
在/etc/sysctl.conf配置文件增加下面的配置:
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
参考:
1) http://www.topjishu.com/9605.html
2) http://www.linuxfly.org/post/539
3) https://serverfault.com/questions/580160/arp-responds-with-single-mac-address-on-linux-server-with-multiple-interfaces-on