1、arp工作原理
局域网主机间通信的时候,是需要先通过arp广播请求获取到主机的mac地址的,拿到mac地址后才能通信,如果本机有arp缓存,就直接用缓存里的,不用广播。
正常不存在如上ip冲突的情况下, arp缓存不用去修改的,它会自动维护,但有时如果遇到问题,我们通过查看本机arp缓存,能更好地定位问题。
2、arp表被污染解决办法
2.1 在window上
1、清除arp表--使用命令行工具。
arp -d //清除arp表
2、重启网络接口--有时候,重启网络接口也可以清除ARP缓存。
ipconfig /flushdns //清空本机上的dns缓存
ipconfig /renew //得到一个新的ip
2.2 在Linux上
1、清除arp表
sudo ip -s -s neigh flush all //清除整个ARP表
2、也可以删除指定ip条目
sudo arp -d <ip-address> //删除特定的ARP记录
3、查看Linux中的arp表
sudo arp -n //查看arp表
4、重启网络接口-- 有时候,重启网络接口也可以清除ARP缓存。
sudo ifdown <interface>
sudo ifup <interface>
其中<interface>是网络接口的名称,例如eth0 或 wlan0
3、为了防止arp缓存被污染,可以采取以下措施:
- 使用静态ARP条目:可以手动添加静态ARP条目,将IP地址与MAC地址进行绑定,以防止ARP缓存被篡改。
静态ARP条目是手动配置的,不会被自动清除。可以使用
arp
命令来添加和删除静态ARP条目。例如,要添加一个静态ARP条目,可以使用以下命令:sudo arp -s <ip-address> <mac_address> //<ip-address> 与 <mac_address> 进行一对一绑定
- 使用ARP防火墙:可以配置ARP防火墙来限制ARP请求和响应的流量,防止ARP缓存被污染。
- 使用网络设备的安全功能:一些网络设备提供了安全功能,如ARP检测和防御,可以帮助防止ARP缓存污染。