标题:[实践OKLinux系统上通知网关更新arp,]Linux下利用arping抢IP地址最终解决方案 出处:向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 时间:Fri, 23 Mar 2018 15:51:09 +0000 作者:jackxiang 地址:http://jackxiang.com/post/9682/ 内容: 背景:向网关发送自己的IP和网卡,进而有包来后,网关都传给本机了。经常会有在线更换Linux服务器IP的操作,该操作带来的一个问题是: 我们已经执行了修改IP的操作,但由于网络上(网关)的ARP缓存暂未更新,导致在某一段时间内,该服务器会有网络不通的情况存在。因此,我们需要在变更IP的同时,通知网关刷新ARP缓存,假设你的eth0接口对应的ip为192.168.1.1,网关为192.168.1.254你就可以使用 arping -U -I eth0 -s 192.168.1.1 192.168.1.254 同理,用它注册VIP虚拟网卡地址也是有必要的,在Mysql和高可用VIP的切换上及时告诉网关我换到另一台机器了,且它是虚拟网卡: http://jackxiang.com/post/8757/ /sbin/arping -I eth0 -c 1 -s 10.70.57.204 10.70.63.254 #Gateway:10.70.63.254 -c<数据包的数目> 发送的数据包的数目 -s 指定源IP地址 -I<网卡> 使用指定的以太网设备,默认情况下使用eth0 arp -a baigemha_mysql_bj_syq_10_70_61_106 (10.70.57.204) at 00:50:56:89:d2:18 [ether] on eth0 /sbin/arping -I eth0 -c 1 -s 10.70.57.204 10.70.63.254 #Gateway:10.70.63.254 经常会有在线更换Linux服务器IP的操作,该操作带来的一个问题是: 我们已经执行了修改IP的操作,但由于网络上(网关)的ARP缓存暂未更新,导致在某一段时间内,该服务器会有网络不通的情况存在。 因此,我们需要在变更IP的同时,通知网关刷新ARP缓存。 首先清除本地ARP缓存: /bin/ip neigh flush dev eth0 其次向网关发送本机的ip/mac地址 /usr/sbin/arping -v -c 2 -S 1.1.1.144 -s 00:17:a4:8d:0e:98 -p 1.1.1.1 1.1.1.144 为本机IP 00:17:a4:8d:0e:98 为本机MAC地址 1.1.1.1 为网关 转载自http://blog.chenxiaosheng.com/posts/2014-03-19/linux-arp-flush.html =============================================================================== 最近老遇到无耻的Windows用户抢我Linux的IP地址,不甚烦恼,研究了一下午,终于解决了此问题。与大家分享一下。 假定的网关是192.168.5.1,掩码24位。而192.168.5.5已经被某Windows用户使用。 我的Linux在愉快的开机,结果在运行到 network 脚本的时候报错,说这个IP已经被别人使用,网络启动失败!Linux真是太谦让了! 现在的目标就是把这个IP抢回来,最坏的结果也至少保证“我用不了你也别想用”。 所以我就写了个脚本: Shell代码 #!/bin/sh while true; do ifconfig eth0 192.168.5.5/24 up route add default gw 192.168.5.1 sleep 1 done arping -Uq -s192.168.5.5 -Ieth0 192.168.5.1 & 这样,只要我运行这个脚本,即使Windows的机器正在使用192.168.5.5,这个IP也会被我的Linux强制抢过来。 关键命令: arping -U -I 发送包的网卡接口 -s 源ip 目的ip 实例: 假设你的eth0接口对应的ip为192.168.1.1,网关为192.168.1.254你就可以使用 arping -U -I eth0 -s 192.168.1.1 192.168.1.254 原文:http://www.t086.com/article/5127 http://www.cnblogs.com/CasonChan/p/5629903.html Generated by Jackxiang's Bo-blog 2.1.1 Release