文章插图
一般来说,发送过一次 ARP 请求后,再次发送相同请求的几率比较大,因此使用 ARP 缓存能够减少 ARP 包的发送,除此之外,不仅仅 ARP 请求的发送方能够缓存 ARP 接收方的 MAC 地址,接收方也能够缓存 ARP 请求方的 IP 和 MAC 地址,如下所示
文章插图
不过,MAC 地址的缓存有一定期限,超过这个期限后,缓存的内容会被清除 。
我们可以在 Linux 或者 Windows 中使用 arp 命令查看 ARP 缓存 。选项 -a 用于显示两个系统缓存中所有的缓存项 。
在 Linux 中使用 arp 查询缓存
文章插图
主要包含五项
主机名 --- 对应一个 IP 地址硬件地址类型硬件地址标志本地网络接口标志主要分为三类: C 、M 或 P,C 表示的是由 ARP 协议动态学习 。M 类可以通过 arp -s 增加一条 。P 类表示的是 发布,对于任何 P 类项目,主机对输入的 ARP 请求都返回一个 ARP 响应 。这个选项用于配置代理 ARP 。
比如我们在 Windows 中进行 ARP 缓存查询
文章插图
Windows 中的 ARP 程序显示了 IPv4 的地址,它的接口是十六进制数,Windows 版本还指出地址是手动输入还是 ARP 动态学习的 。在上面的例子中,既有静态的也有动态的 。48 位的 MAC 地址被显示为 6 个十六进制数,在 Linux 中使用 : 号,在 Windows 中使用 - 进行分隔 。
ARP 结构我们上面说到,ARP 对想要知道 MAC 地址的目标主机会首先发送 ARP 请求,那么这个请求中都携带哪些信息呢?下面 cxuan 就来和你聊一下 。下面是在以太网中转换一个 IPv4 的地址常用的 ARP 请求或响应的报文格式 。
文章插图
前面 14 个字节构成标准以太网的首部,前两个字段 DST 和 SRC 分别表示 以太网的目的地址 和 以太网的源地址,以太网的目的地址如果是 ff:ff:ff:ff:ff:ff 全部为 1 表示广播地址,在同一广播域中的所有以太网接口可以接收这些帧 。后面紧跟着的是 ARP 请求的长度/类型,ARP 请求 和 ARP 应答这个值为 0x0806 。
硬件类型表示硬件地址的类型,硬件地址常见的有 MAC 物理或者以太网地址,对于以太网来说,此值为 1 。协议类型 指出映射的协议地址类型,对于 IPv4 地址,这个值是 0x0800 。硬件大小和 协议大小 分别指出硬件地址和协议地址的字节数 。对于以太网中使用 IPv4 的 ARP 请求或应答,它们的值分别是 6 和 4 。Op 字段指出如果是 ARP 请求,Op = 1,ARP 应答 ,Op = 2,RARP 请求 Op = 3,RARP 应答,Op = 4 。紧跟在 Op 之后的是 发送方硬件地址(MAC 地址),发送方的协议地址(IPv4 地址),目的硬件地址 和 目的协议地址 。ARP 抓包实战我们分别演示在 Mac 和 Linux 下的 ARP 报文的截获
在 Mac 环境下,我这边使用的是 WireShark 进行抓包,你可以从官网下载,地址如下
http://www.wireshark.org/download.html
文章插图
下载完成后阅读安装说明的手册,阅读后会发现需要安装两个插件,根据提示安装即可,然后我们打开 WireShark ,开始报文拦截,下面是我解惑的 ARP 数据包
文章插图
这款软件很好的一个地方是对不同的数据包会有不同的颜色标识,这点非常好 。
然后我们查看 ARP 请求
文章插图
可以看到,这就是一个完整的 ARP 请求包,我们使用的硬件类型是以太网,协议类型是 IPv4 ,默认值是 0x0800,然后硬件大小是 6 个字节,协议大小占用 2 个字节,Op 的全称是 Opcode ,Op = 1 表示这是一个 ARP 请求,然后是发送方的硬件地址和协议地址,接收方的硬件地址和协议地址 。
ARP 响应如下
文章插图
可以看到 Op = 2,表示这是 ARP 响应 。
在 Linux 环境下,你可以使用 tcpdump 截获 ARP 数据包,如果 tcpdump not found 的话,你可以使用 yum install -y tcpdump 安装 。
使用 tcpdump -i ens33 可以打印出在 ens33 地址下的数据包,下面是我截取的 ARP 数据包 。
文章插图
更多关于 tcpdump 的用法,你可以参考这篇博客
- 延米是什么意思 石英石台面延米是什么意思
- 交通管制原因快递 交通管制原因快递延误是什么意思
- 阿巴阿巴是什么语言 阿巴阿巴是什么梗
- emmmmm是什么意思啊_emmmmmmm是什么意思
- 新轩逸是什么轮胎 轩逸轮胎是什么品牌
- 田螺是什么形状的 田螺是什么
- 林有有是什么梗
- brazil是哪个国家 brazil是什么意思怎么读
- beta omega是什么意思
- 冰墩墩有尾巴吗是什么颜色的 冰墩墩有尾巴吗