【1】经典网络协议-ARP协议介绍

1.ARP简介

    ARP,是一种解决【地址映射关系】问题的协议。

  1. 以目标地址为线索,用来定位下一个应该接收数据帧的网络设备,所对应的MAC地址。
  2. 如果目标主机不在同一个链路上时,可以通过ARP查找下一跳路由器的MAC地址(代理ARP技术)。
  3. ARP只适用于IPV4,不能用于IPV6。IPV6中可以用ICMPV6替代ARP发送邻居探索消息

     

    只知道目的的逻辑地址,是无法在网络上发送任何数据包的。一定要在网络上得到这个逻辑地址的硬件地址,才可能在网络上发送数据包。因此一定要做ARP解析。

1.1 为什么需要ARP技术?

    多路访问网络需要【类ARP】技术,点对点网络无需【ARP】技术,因为不需要解析硬件地址

1.1.1 哪些网络属于点对点网络?

  1. PPP点对点网络。如PPPOE、PPTP
  2. 点对点GRE网络
  3. IPSec VTI隧道网络
  4. 存储FC网络
  5. 数据中心FP网络

1.1.2 哪些网络属于【经典多路访问网络】

  1. 以太网(支持广播的多路访问网络)——ARP
  2. 多点帧中继(非广播的多路访问网络)——帧中继反向ARP,Frame Relay Inverse ARP
  3. DMVPN的多点GRE(非广播多录访问网络)——NHRP

  以上三种协议,都是用于解析【逻辑地址】到【物理地址】映射的协议

  这些协议都能支持自动与手动两种模式

  仅仅知道目的的逻辑地址,不知道物理地址,设备不会向网络发送任何数据帧

 

1.1.3 两种地址

  1. 逻辑地址(一般都是IP)
  2. 物理地址(MAC/DLCI/全局IP)

2. ARP另一种简介

  在广播的多路访问网络以太网中,解析逻辑的IP地址(32位)到物理的MAC地址(48位),可以自动解析,也可以手动配置静态映射。

2.1 ARP字段介绍

2.1.1 ARP请求

  • 源MAC地址:为PC MAC地址
  • 目标MAC地址:二层广播地址
  • 协议号:0X0806

 

 

 2.1.2 ARP响应

(请求是广播,响应是单播)

 

  • 响应操作码变为2
  • 源MAC地址为  00:02:00:02:00:02

 

 

 3. 交换机工作原理

3.1 PC.A 发送ARP请求,请求PC.B的MAC地址

 

 3.2 交换机读取(1)请求帧的MAC地址(2)进入交换机的入接口,并添加至MAC地址表

 

 3.3 交换机把PC.A的ARP Request泛洪到所有接口

 

 

 

题外话: Unknown Unicast,二层单播帧,目的MAC地址在交换机中不存在,因此泛洪

 3.4 PC.B\PC.C收到PC.A的ARP Request后,首先更新自己的ARP缓存

 

PC.C是否会更新关于PC.A的ARP缓存

 PC.C 收到 ARP Request,正常情况下不读。除非C以前有了PC.A的ARP映射,收到广播后,发现映射前后有差别,此时会刷新ARP缓存

 

 

 3.5 PC.B发送ARP Reply的单播帧

 

 3.6 交换机收到PC.B的ARP Reply后,读取源Mac&入接口,更新本地CAM表

 

 

 

 

 3.7 ARP Reply,只会从FA0/1接口出,因为SW已经知道PC.A接在FA0/1口上

 

 

 3.8 后续PC.A <->PC.B的流量只会在相关接口之间进行交换,PC.C不会收到任何数据包

 

 4. ARP 高速缓存

    第一次通过ARP获取到的MAC地址作为IP对MAC的映射关系记忆,到一个ARP缓存表中,下一次再向该IP地址发送数据包时不再需重新发送ARP请求,而是直接使用缓存表当中的MAC地址进行数据包的发送。这样,在一定程度上也放置了ARP包在网络上被大量广播的可能性。

  Linux:

  •   arp -n(查看)
  •   arp -d(删除特定条目)
  •   arp -s(添加条目)
  •   ip -s neigh flush all(清除所有)

 

posted @ 2020-11-18 18:51  BruceXue  阅读(254)  评论(0)    收藏  举报