为什么会用到ARP
-
局域网中主机之间的通讯是根据IP地址与MAC地址,如果不知道对方的MAC地址该如何进行通讯呢
-
这里将用到ARP协议
ARP协议
-
ARP协议的作用是通过解析一个已知IP地址得到MAC地址的
-
在知道对方的IP地址的情况下可以通过ARP得到MAC地址
-
意义:所有ARP协议在网络层被应用,它是网络层与链路层链接的重要枢纽,每当有一个数据要发送的时候都需要用过ARP协议将IP地址转换成MAC地址,在IP层及其上层来看,它们只表示IP地址,从来不跟硬件打交道
ARP的工作原理
- 当pc1想发送数据给pc2,首先会在自己的本地ARP缓存表中检查有无主机pc2匹配的MAC地址
- 如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址
- 交换机收到广播后做泛红处理,除PC1主机外所有主机收到ARP请求消息,pc2接收到后发现找的是自己将以单播方式发送ARP应答。并在自己的ARP表中缓存pc1的IP地址和MAC地址的对应关系,而其他主机则丢弃这个ARP请求消息
- pc1在自己的ARP表中添加pc2的IP地址和MAC地址的对应关系,以单播方式与pc2通讯
命令
1、windows当中如何查看ARP缓存表(静态ARP和动态ARP)
arp -a ###查看arp缓存表
arp -d [ip] ###删除arp缓存表(可以将指定的IP地址删除)
arp -s IP mac ###删除arp静态绑定
2、如果提示ARP项添加失败,解决方案
用管理员模式:电脑左下角“开始”按键右键,点击“windiws powershell(管理员)
绑定arp(win10)
cmd中输入
netsh -c i i show in ### 查看网络连接准确名称,如:本地连接、无线网络连接
netsh -c "i i" add neighbors 19 "Mac" ###这里19是idx号。//绑定
netsh -c "i i"delete neighbors 19 ###这里19是idx号。//解绑
华为系统中的arp命令
[Huawei]dis mac - address ###查看mac地址信息
[Huawei]arp static <ip> <mac> ###绑定arp
[Huwei]undo arp static <ip><mac> ###解绑定
ARP攻击
-
欺骗其它所有计算机
-
欺骗被攻击计算机
ARP攻击原理
-
ARP攻击发送的是ARP应答,也是ARP应答的MAC地址为虚假地址,所以在其他主机想要进行通信时,会将目的的MAC地址设置成此虚假MAC地址,导致其无法正常通信。
-
例如:当主机pc1(被攻击主机)想访问外网时,会发送数据到达网关,此时数据会被主机pc2(攻击主机)获取,主机pc2将发送虚假的MAC地址到达网关,当网关收到虚假的ARP应答更新ARP条目后,下次再发送数据到pc1,就会发送到虚假的MAC地址中,也就是主机pc2中,到最后通信故障。