【计算机网络】地址解析协议ARP

ARP基础

如果发送一个帧到另一个主机,仅知道IP地址是不够的,以太网驱动程序还需要知道目的主机的硬件地址

首先我们强调最重要的一点,ARP仅用于IPV4,IPV6使用的是邻居发现协议,邻居发现协议被并入ICMPv6,另外点到点网络不会使用ARP,必须处在同一IP子网,ARP才能正常工作

ARP主要是广播机制,链路层将一个消息交付到它所连接的所有网络设备。也就是链路层广播,这个广播不会到达处在不同VLAN的系统,如果是对应的IP地址的机器,就会做出一个ARP应答,这个应答不是广播,然后发送方就可以直接将以太网帧发送到目的地址了

ARP的运行我们一般察觉不到的

ARP缓存

首先我们在Linux中运行arp命令

caibin@caibin-MS-7C82:~$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
localhost                ether   4c:f2:bf:f9:81:f8   C                     enp3s0

这里一共有5列:

  • Address 主机名
  • HWtype 硬件地址类型
  • HWaddress 硬件地址
  • Flags Mask 标志,C(动态学习) M(手动输入) P(主要用于配置代理ARP)
  • Iface 本地网络接口

上面显示的并不是缓存,如果要查看arp缓存,加上-a参数

caibin@caibin-MS-7C82:~$ arp -a
localhost (192.168.1.1) at 4c:f2:bf:f9:81:f8 [ether] on enp3s0

当然缓存是有超时的,一般是20分钟

ARP的帧格式

在这里插入图片描述
不需要研究很细致这个

代理ARP

什么是代理ARP呢,其实就是路由器,使发送者以为这个路由器就是目标,代理ARP很少见

通过ARP设置一台嵌入式设备的IPv4地址

如果一个嵌入式设备没有键盘,那么一般通过两种方式设置IPV4地址

  • DHCP
  • 通过ARP设置,我们另一台设备配置一个映射,因为MAC地址肯定是知道的,IPi地址自己写一个,然后设备将这个IP地址作为其初始IP地址

IPv4地址冲突检测

IPv4地址冲突检测,英文名ACD,它会发送两个分组

  • 探测分组,查看IPV4地址是否被其他系统使用
  • 通告分组,告诉别人自己在使用这个IPV4地址

在一个网络接口启用或唤醒时,会等待一个随机时间发送探测分组,如果有冲突,会收到消息,然后换其他IPV4的地址

ACD是一个持续的过程,会一直检查ARP流量,一旦发现别的主机也在使用相同的IP地址,会出现三种情况

  • 停止这个IP地址
  • 发送一个ARP通告,告诉大家我在用这个
  • 啥也不干继续使用,要是IP固定使用的可以考虑这种

ARP相关攻击

通过代理ARP假扮主机

如果受害主机存在就比较困难,因为很容易被发现

ARP缓存欺骗

也就是ARP的缓存攻击者植入的,这样请求直接到达攻击者地址了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值