局域网协议:地址解析协议(ARP,Address Resolution Protocol)

地址解析协议(ARP,Address Resolution Protocol)是一种用于在IP网络中将IP地址映射到物理MAC地址的协议。在IP网络中,IP是用于寻址,真正将数据包从一个设备发送到另外一个设备,用于通信的是物理MAC地址。

文章目录

    • ARP的工作原理
      • [1. IP地址与MAC地址映射](#1. IP地址与MAC地址映射)
      • [2. 目标设备响应](#2. 目标设备响应)
      • [3. ARP缓存:](#3. ARP缓存:)
    • ARP的重要性
      • [1. 局域网通信](#1. 局域网通信)
      • [2. 动态网络配置](#2. 动态网络配置)
      • [3. 协议间互通](#3. 协议间互通)
    • ARP的类型
      • [1. Proxy ARP](#1. Proxy ARP)
      • [2. 免费ARP](#2. 免费ARP)
      • [3. 反向APR](#3. 反向APR)
      • [4. 标准ARP](#4. 标准ARP)
    • ARP存在的安全风险
      • [1. ARP欺骗](#1. ARP欺骗)
      • [2. ARP缓存溢出](#2. ARP缓存溢出)
    • [Cisco Switch常用ARP配置](#Cisco Switch常用ARP配置)
      • [1. 查看ARP缓存](#1. 查看ARP缓存)
      • [2. 清除ARP缓存](#2. 清除ARP缓存)
      • [3. 配置静态ARP](#3. 配置静态ARP)
      • [4. 接口禁用RARP](#4. 接口禁用RARP)
    • 推荐阅读

ARP的工作原理

1. IP地址与MAC地址映射

当设备A知道目标设备B的IP地址但不知道其MAC地址时,设备A会发送一个ARP请求广播到局域网中的所有设备,询问"谁拥有这个IP地址对应的MAC地址?"。

这个ARP请求包含了设备A自己的IP地址和MAC地址,以及要查询的目标IP地址。

2. 目标设备响应

当目标设备B收到ARP请求时,会检查其中的目标IP地址是否与自己的IP地址匹配。

如果匹配,设备B会向设备A发送一个ARP响应,包含自己的IP地址和MAC地址。

3. ARP缓存:

设备A收到来自设备B的ARP响应后,会将这个IP地址和MAC地址的映射关系存储在自己的ARP缓存中,以便将来的通信不再需要发送ARP请求。

这个映射会在一段时间内保持有效,在缓存过期之前,设备A可以直接使用这个映射进行通信。

ARP的重要性

1. 局域网通信

在局域网中,设备之间的通信经常需要ARP来确定目标设备的物理地址,以便找到正确的路径来传输数据包。

2. 动态网络配置

ARP允许设备在连接到网络时动态地获取其他设备的MAC地址,无需手动配置。这种自动化的过程简化了网络管理,并使设备更容易加入网络。

在动态网络环境中,设备可能会更改其IP地址或移动到不同的子网。ARP允许设备动态地更新地址映射,适应网络中不断变化的情况。

3. 协议间互通

ARP连接了网络层(使用IP地址)和数据链路层(使用MAC地址),促进了不同协议层之间的通信。它帮助不同层级的协议正确交换数据。

ARP的类型

1. Proxy ARP

Proxy ARP(代理ARP)是一种ARP扩展,用于在一个子网上的设备代理响应其他设备的ARP请求。通常情况下,ARP用于获取在同一子网上的设备的MAC地址。但在某些情况下,设备可能需要与不在同一子网上的设备进行通信,这时候就可以使用代理ARP。

2. 免费ARP

由设备发送的ARP请求或应答消息,即使它没有被请求。这种类型的ARP用于更新网络中其他设备的ARP缓存,并检测网络中重复的IP地址。

3. 反向APR

反向ARP是与标准ARP相反的过程。允许设备在只知道自己的物理(MAC)地址的情况下确定自己的IP地址的协议。它通常用于无磁盘工作站,这些工作站需要在开始在网络上通信之前找到它们的IP地址。在RARP中,设备根据自己的MAC地址发送一个RARP请求广播,请求分配一个IP地址。RARP服务器会响应该请求,提供一个IP地址给这个设备使用。

4. 标准ARP

标准ARP用于将IPv4地址映射到MAC地址。当一个设备知道要与另一个设备通信的IP地址但不知道该IP地址对应的MAC地址时,它会发送ARP请求广播,询问"谁拥有这个IP地址对应的MAC地址?"其他设备中有该IP地址的设备会响应包含其MAC地址的ARP响应,从而建立起地址映射关系。

ARP存在的安全风险

1. ARP欺骗

恶意用户可以发送虚假的ARP响应,欺骗其他设备将通信路由到错误的目标。这可能导致中间人攻击等安全问题。

如何预防ARP欺骗,可以参考:Cisco交换机关于DHCP SNOOPING的配置指令

2. ARP缓存溢出

ARP缓存有限,恶意攻击者可以通过发送大量虚假ARP请求使得缓存溢出,导致网络服务中断或拒绝服务攻击。

Cisco 交换机清除arp-cache指令:

bash 复制代码
switch#clear arp-cache ?
  interface  Clear the entire ARP cache on the interface
  <cr>
switch#clear arp-cache interface ?
  Async              Async interface
  Auto-Template      Auto-Template interface
  BVI                Bridge-Group Virtual Interface
  CTunnel            CTunnel interface
  Dialer             Dialer interface
  FastEthernet       FastEthernet IEEE 802.3
  Filter             Filter interface
  Filtergroup        Filter Group interface
  GigabitEthernet    GigabitEthernet IEEE 802.3z
  Group-Async        Async Group interface
  GroupVI            Group Virtual interface
  Lex                Lex interface
  Loopback           Loopback interface
  Null               Null interface
  Port-channel       Ethernet Channel of interfaces
  Portgroup          Portgroup interface
  Pos-channel        POS Channel of interfaces
  Tunnel             Tunnel interface
  Vif                PGM Multicast Host interface
  Virtual-Template   Virtual Template interface
  Virtual-TokenRing  Virtual TokenRing
  Vlan               Catalyst Vlans
  fcpa               Fiber Channel

Cisco Switch常用ARP配置

1. 查看ARP缓存

bash 复制代码
show arp

这个命令可以显示交换机当前的ARP缓存,列出了IP地址和相应的MAC地址。

2. 清除ARP缓存

bash 复制代码
clear arp-cache

这个命令会清除交换机上的ARP缓存,往往会在网络拓扑发生较大的变化、网络故障排除过程中会用到。但是这个指令也要谨慎使用,清除ARP缓存后,可能会短暂中断网络。

3. 配置静态ARP

范例参考如下:

bash 复制代码
arp <IP地址> <MAC地址> arpa
bash 复制代码
switch(config)#arp 172.30.99.31 f84f.574f.2cc2 ?
  arpa   ARP type ARPA
  sap    ARP type SAP (HP's ARP type)
  smds   ARP type SMDS
  snap   ARP type SNAP (FDDI and TokenRing)
  srp-a  ARP type SRP (side A)
  srp-b  ARP type SRP (side B)

4. 接口禁用RARP

在接口模式下,禁用该接口处理ARPA流量。

bash 复制代码
switch(config-if)#no arp arpa ?
  <cr>

推荐阅读

相关推荐
刽子手发艺22 分钟前
WebSocket详解、WebSocket入门案例
网络·websocket·网络协议
速盾cdn4 小时前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip
yaoxin5211234 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin4 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
PersistJiao6 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark
黑客Ash8 小时前
【D01】网络安全概论
网络·安全·web安全·php
->yjy8 小时前
计算机网络(第一章)
网络·计算机网络·php
摘星星ʕ•̫͡•ʔ10 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络