ARP的概念ARP的工作原理ARP的5种类型如何查看 ARP 表?
ARP的概念
ARP(Address Resolution Protocol)地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。ARP 在开放系统互连模型(OSI 模型)的第 2 层和第 3 层之间工作。MAC 地址存在于 OSI 模型的第 2 层,即数据链路层,IP 地址存在于第 3 层,即网络层。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
ARP的工作原理
假设主机A要与主机B通信,主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;
根据A的路由表确定B的转发IP地址,然后A在自己的本地ARP缓存中检查主机B的匹配MAC地址。如果A的ARP缓存里没有B的IP到MAC的映射,它就广播ARP请求帧给本地网络上的所有主机,找B。A的IP地址和MAC地址都包括在ARP请求中。本地网络的所有主机呢,接收到ARP请求后,检查是否与自己的IP地址匹配。如果不匹配,则丢弃ARP请求。B收到了这个ARP请求,里面的IP是自己的IP,于是将A的IP和MAC地址映射添加到本地ARP缓存中。B将自己的MAC地址加入ARP回复消息,发送给主机A。A收到从主机B发来的ARP回复消息,将B的IP和MAC地址映射更新到ARP缓存。
本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。一旦确定主机B的MAC地址,主机A就能向主机B发送IP通信了。
ARP的5种类型
普通 ARP
通过 IP 地址获得MAC地址。
代理 ARP
位于不同网络的网络设备,可以通过ARP代理实现通信。如果主机A和主机B的IP地址位于不同网络,且没有配置网关,那么B无法接收到A广播的ARP Request 报文,因为广播报文不会被路由器转发。在路由器上启用 代理ARP 后,路由器收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器将会使用自己的MAC地址来回应 ARP request。即,代理提供自己的 MAC 地址作为目标,并通过隧道或其他接口将流量路由到预期目标。
免费 ARP
主机被分配了IP地址或者IP地址发生变更后,必须立刻检测其所分配的IP地址在网络上是否是唯一的,以避免地址冲突。因此主机需广播自己的IP和MAC地址,如果某主机或网关的IP与其相同 ,则会回应 ARP reply 报文。这样,主机A就能探测到IP地址冲突了。
RARP
通过广播自己的MAC地址(反向 ARP 数据包)来获得自己的IP。
逆向 ARP(IARP)
通过物理地址来查找 IP 地址。一般存在于帧中继网络中,用于实现IP和DLCI地址的映射
如何查看 ARP 表?
Windows/Linux arp -a