1.关于ARP协议
ARP:address resolution protocol 地址解析协议
目的MAC不能不存在,负责完成不了封装,于是出现ARP
2.ARP报文
ARP报文的类型分为request请求和reply/respond回应
1)ARP请求:
在发送arp请求你时,不知道目标mac地址;
数据链路层在封装成帧时,会将目标mac设为全f表示向广播域中所有目标发送;
arp结构封装在数据链路层的以太网后面,主要包括:源ip、目标ip、源mac、目标mac;
其中只有目标mac是未知的,目标mac就会用全0表示;
ARP请求发送的类型为广播帧 (同一广播域的主机都会收到)
2)ARP响应:
arp响应时,数据链路层的帧目的mac地址就是arp请求设备的mac地址;
arp数据结构中:源ip、目标ip、源mac、目标mac都是已知的,主要是讲自己的mac地址作为源mac告诉对方;
ARP响应的类型为单播帧 (可以使用软件修改为广播-ARP欺骗)
3.ARP缓存
ARP缓存表:获取到的MAC地址会存放在该表
也就是arp请求成功后就会有缓存,就不用每次请求都需要发送arp请求了,用arp -a命令查看缓存;
命令 | 备注 |
Arp -a | 查看ARP缓存 |
Arp -d | 清空ARP缓存 |
4.ARP欺骗
ARP欺骗:攻击者发送“无故ARP响应”来伪装其他设备
主要原理:冒充网关, 给目标设备发送arp回复,导致目标无法通过路由器转发而无法上网;
实现方式:抓取一个网关的arp回复包,改包(回复一个错误的mac地址),用发包软件不停发送改过的包;
防御:装arp防火墙:就是绑定正确的网关mac地址和网关ip,如果不对就说明是arp攻击,发送警告;
5.免费ARP
用来检测配置/修改的IP地址是否重复
例如:
自己的ip是1.0.0.1,想知道ip是否与别人冲突;
发送arp请求,将目标ip设为1.0.0.1,如果有人回复,说明这个ip被其它设备使用了;
连续发送3次来检测地址有没有冲突
6.ARP数据包格式