【1】经典网络协议-ARP协议介绍
1.ARP简介
ARP,是一种解决【地址映射关系】问题的协议。
- 以目标地址为线索,用来定位下一个应该接收数据帧的网络设备,所对应的MAC地址。
- 如果目标主机不在同一个链路上时,可以通过ARP查找下一跳路由器的MAC地址(代理ARP技术)。
- ARP只适用于IPV4,不能用于IPV6。IPV6中可以用ICMPV6替代ARP发送邻居探索消息
只知道目的的逻辑地址,是无法在网络上发送任何数据包的。一定要在网络上得到这个逻辑地址的硬件地址,才可能在网络上发送数据包。因此一定要做ARP解析。
1.1 为什么需要ARP技术?
多路访问网络需要【类ARP】技术,点对点网络无需【ARP】技术,因为不需要解析硬件地址
1.1.1 哪些网络属于点对点网络?
- PPP点对点网络。如PPPOE、PPTP
- 点对点GRE网络
- IPSec VTI隧道网络
- 存储FC网络
- 数据中心FP网络
1.1.2 哪些网络属于【经典多路访问网络】
- 以太网(支持广播的多路访问网络)——ARP
- 多点帧中继(非广播的多路访问网络)——帧中继反向ARP,Frame Relay Inverse ARP
- DMVPN的多点GRE(非广播多录访问网络)——NHRP
以上三种协议,都是用于解析【逻辑地址】到【物理地址】映射的协议
这些协议都能支持自动与手动两种模式
仅仅知道目的的逻辑地址,不知道物理地址,设备不会向网络发送任何数据帧
1.1.3 两种地址
- 逻辑地址(一般都是IP)
- 物理地址(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(清除所有)


浙公网安备 33010602011771号