arp的作用和工作过程,ARP(Address Resolution Protocol,地址解析协议)可在以太网上,根据已知的IP地址查找主机的硬件地址。
ARP工作原理
我们以以太网环境作为背景来探讨这一协议(串行链路由于是点到点链路,故而不需要ARP)。在以太网环境中,当主机需要向一个IP地址发送数据时,它需要将目标的物理地址(也就是MAC地址,也有文献称其为硬件地址)写在数据帧的目的MAC地址字段位置上,而这一动作的前提是,网络层已经知道了这一地址并且将其与逻辑目的地址建立了一个映射关系。
这就好比在手机上存了一个电话号码并备注上了一个联系人姓名一样,当需要打电话时,只需要查找该联系人的姓名即可,手机会帮我们自动选择他的电话号码拨出去。
当我们并不知道一台主机的IP地址与物理地址的映射关系时,就需要用到ARP。
ARP分类
1.ARP
我们用一个简单的比喻来形容ARP的工作过程。当你只知道你跟张三是同班同学却不知道他的具体座位时,你站起来喊了一声:“我是王二,谁是张三?”于是张三说:“我是张三。”这样,你就知道了张三的位置,同时张三也知道了你的位置和姓名。
如图1所示为一个ARP请求报文范例。当一台主机需要访问一个与自己在同一个网络的IP地址但不知道目的主机的物理地址时,它就会发送一个ARP请求报文。由于我们并不知道目标物理地址是什么,该报文的目标物理地址(即MAC地址)在数据帧的头部用二层广播地址FFFF.FFFF.FFFF来填充。
图1 一个ARP请求报文范例
相信读过前面的章节之后,读者一定都已经了解一个二层目的地址为广播地址的数据帧是会被发送给广播域内所有的成员的,如果网络规划正确,那么这其中一定会包含真正的接收者。
当真正的接收者收到该数据帧之后,会转交给自身的ARP程序,经过比对,发现其中的目的IP地址正是其所拥有的,就会对发送者做出回应,在回应报文中会将自身的物理地址写在发送者MAC地址的位置。
这样,目的主机根据发送者ARP请求报文中的MAC地址和IP地址获得了发送者的物理地址和逻辑地址,并且将会以明确的MAC地址和IP地址给发送者发送回应报文。一次美妙的陌生人之间的互相介绍就这样完成了。看起来是不是很简单呢!
2.代理ARP
在一般情况下,只能为主机分配一个默认网关。如果需要互通的主机处在相同的网段却不在同一物理网络,并且连接主机的网关设备具有不同的网关地址,在这种场景中,如果网关发生故障,我们该如何防止业务中断呢?在这种场景中,需要代理ARP,其工作过程如图2所示。
图2 代理ARP工作过程
可以看出,实际上,代理ARP是一种服务,它并不是一种协议。而且,服务提供者对用户进行了“欺骗”,只是将自身的MAC地址回应给了用户,以此来达到代替用户转发数据的目的。
在默认情况下,在华为的设备上,这一功能是关闭掉的。