【摘要】 这一章节你的角色就是ping报文这个“使者”,你要去往目的地,然后回到本机。然而目的地路漫漫,不知道要经过多少个小地盘(局域网),没两把刷子也不好行走江湖。所以你作为使者,每到达一个新的地盘,就把ARP这把刷子拿出来吼一吼。这一节就是讲的这把刷子的威力。

一、ARP命令介绍

  首先,ARP作为高攻击神器,是片攻击的,一定范围内全杀,而不是单点指向的技能。其攻击范围就是子网的大小,同一个子网内的所有主机都会收到ARP神器的伤害。正因为ARP报文是广播的,所以它是ping使者随身携带、开山问路的不二之刷。

  其次,ARP神器基本靠一招走遍天下,发动攻击前吼一句:“谁是小明,请吱一声”,然后声波传遍当前子网各个角落。其中真实的小明乖乖回答:“我在这”。

【华为云技术分享】《跟唐老师学习云网络》—ARP你在哪_华为云

二、Ping报文与ARP结合

  当Ping报文拥有了ARP这个探路神器后,想要到达最终的目的地就相当的easy了。当他处于一个站点,面对一个新的地盘的时候,先吼一声ARP大招,就知道一下站出口在哪里了。然后直接跳到下一站,接着再吼一声ARP找出下一站位置,继续跳到下一站。这样重复N次就到达了最终目的地。

【华为云技术分享】《跟唐老师学习云网络》—ARP你在哪_华为云_02

基于上面的逻辑可以看到,在定位网络不通的时候,使用上一节的方法还找不出原因的情况下,可以看看arp报文有没有到。但是请记住,arp是一段子网一段子网定位的。

ps:一般网络安全组是不会禁止arp协议的,因为它本身是为了查询mac地址,而mac地址是二层的,是网络通信的基础。

三、ARP报文

抓个arp报文举例:

#tcpdump -i eth1 -n arp

arp who-has 10.175.10.210 tell 10.175.10.78

arp reply 10.175.10.210 is-at fa:16:3e:bf:1e:e2

这里基本可以看出来,ARP要做的事情就是把IP翻译为MAC地址。实际上在以太网中,同一个局域网中的两台主机要进行通信,必须要知道目标主机的MAC地址。而TCP/IP协议中,网络传输只关心IP地址。所以需要有一种方法将IP地址“翻译”为MAC地址。这也就是ARP要做的事情了。

四、ARP表

既然已经知道了IP与MAC的对应关系,为了避免每次找路都得“翻译”一次,那就把它记下来。以后要用的时候直接查本地的对应表就行了。同时为了保证有效性,缓存的记录会在一定时间后失效。这就是ARP表。

当然,也可以设置静态ARP表。只是一般我们懒得这么做。

通过以下命令可以查询当前缓存的arp表:

#arp -a

ps:定位问题一般不会用到arp表,只需要在目的端抓包看看arp报文有没有到达即可。

作者:tsjsdbd