ARP协议分析

windows中的arp工具的使用

arp -a :显示所有的arp条目

arp -a IP :显示对应IP的arp条目

arp -d:删除所有arp条目

arp -d IP:删除指定IP的arp条目

arp -n:可以显示指定接口的arp条目

arp -s ipaddress macaddress :可以添加指定的静态条目

1、常见的ARP询问

我们都知道要想发送一个报文,构建一个报文,mac地址肯定是必不可少的,同样的IP地址也是组成报文的一个因素。那么假如我们知道对端的IP,但是不知道mac地址,那么此时我们应该如何构建一个报文呢?所以此时你就需要arp协议的帮助去获取对应IP的mac地址。

举个非常常见的例子,我们主机有关arp的高速缓存在关机之后会清除,那么此时我们假如想去访问百度,那么此刻我们不仅arp的缓存没有了,而且dns的缓存也没有了,于是我们需要根据主机预先设置的dns的ip地址去访问查询百度域名对应的ip地址。但是dns服务器的ip地址一般来说与用户主机的ip是处于不同网段的,于是我们就需要将dns的查询报文发送给网关,然后由路由器将数据包进行一个返送,由路由器作为用户主机与dns服务器的中介。但是现在有有一个问题,虽然用户主机设置了网关的ip地址,但是它怎么知道网关的mac地址,那么此可就需要使用arp协议进行获取。首先用户主机进行arp广播,当网关收到该arp报文之后会比对arp报文内容,确认该arp的请求对象是否是自己,当确认是自己之后就会发送一个arp单播给用户主机,同时它也会把有关该用户的arp条目写入缓存,当用户主机受到该arp后,将arp报文中的arp信息写入缓存,于是就可以自由的进行报文数据通信。

这是一种非常常见的arp询问,每当只知道IP但却不知道mac地址的时候,就会进行arp协商。

2、arp代理

以下只是我个人对于arp代理的主观看法

该拓扑中,路由器只配置了静态路由,同时PC3上没有配置默认网关。

有一说一,我不太了解arp代理到底有什么用。

观察上图我们知道,PC3的网络号是192.168.0.0/16,而PC0--PC2的网络号是192.168.1.0/24,我们可以和容易的观察到,PC3的网络号是包括PC0---PC2的网络号的,换句话来说PC0---PC2的网络是PC3的网络的子网。那么这到底有什么用呢?

我们知道如果用户主机发送一个向某个与自己不在同一网段的主机发送报文,会将该报文发送给网关去处理,如果用户主机没有设置网关,那么用户主机就会将报文丢弃。我们都知道路由器的接口一般连接的都是一个网段。

那么上图到底出现了一个什么样的情况呢,该路由器的左端口的网络号是192.168.1.0/24,而右端口的网络号是192.168.0.0/16,路由器通过使用子网掩码进行计算左右端口的网络号并进行比对,发现它们的网络号并不相同,但是却又不是毫不相干,左端口的所处的网段是右端口所处网段的一个子网段。那这又有什么用呢?来看PC3视图与其他主机通信的情况。

现在假如PC3想要去PC1,而PC1的IP地址是192.168.1.11/24,那么PC3就会将该IP与它的子网掩码进行与运算,这就十分巧了,PC3的子网掩码是255.255.0.0,而PC1的IP是192.168.1.11/24,经过与运算之后,发现PC1与PC3是同网段的,于是它就会发送arp报文的请求,但是注意此时PC3是没有设置网关的,而且这个arp请求也是对网关IP地址的解析,而是对PC1IP地址的解析。当路由器受到这个arp请求之后就会出现arp代理的现象,因为路由器通过报文解析发现arp的请求解析的地址是在路由器的条目之内,也就是说路由器是知道如何访问到arp请求解析的地址的主机。于是它就会代替PC1将网关的相关信息装入arp回应包中,对PC3发送单播arp回应。上面就是一个arp代理的场景,但是这个我觉得arp代理出现的场景十分的罕见,因为在划分网络的过程中都会仔细地划分好每个区域地网络范围,而不会出现上述右边划分了一个十分大地网络,左边地网络是右边网络地子网的这种情况。

3、免费arp

免费arp是出现在比如说我的IP地址更换了,网卡更换的这种情况,IP地址的更换和网卡的更换最终导致的结果就是其他主机存储的关于该主机的arp条目出错,而存储了关于该主机arp条目的主机就会出现一段时间的,关于该主机的通信异常。所以为了解决这个问题,人们就规定,在执行更换IP或者mac地址变动的操作的时候,相关主机就需要向网络发送一个不希望回应的arp报文,因为它的目的只是告诉其他主机我的相关地址信息发生了更改而已。相关的arp报文参考如下:

这样的报文结构就可以达到既能让其他主机知道我的地址信息进行了更新,同时其他主机也不会发送单播arp回应。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mllllk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值