邻居表核查
邻居表也就是常说的 ARP 缓存,记录本机近期通信过的二层地址映射,是主机侧能反映「和谁说过话」的一类证据。它保存在内核中且条目会过期,现场处置时要尽早采集。用 ip neigh 查看比遗留的 arp -an 更完整,还能显示 IPv6 邻居与可达状态。
基本信息
| 命令 | ip neigh show、arp -an(net-tools 遗留工具) |
|---|---|
| 状态取值 | REACHABLE、STALE、DELAY、PROBE、FAILED、INCOMPLETE、PERMANENT |
| 另一视图 | /proc/net/arp 仅覆盖 IPv4 |
| 适用平台 | Linux(iproute2 工具集) |
| 存活时间 | 条目有有效期,过期后由内核回收 |
| 采集建议 | 现场第一时间导出,并记录采集时刻 |
典型使用场景
- 确认本机近期通信过的同网段主机
- 与流量数据对照判断横向移动范围
- 排查地址冲突与二层欺骗现象
- 分析网段内的设备发现与扫描行为
- 与资产清单比对找出未登记设备
最小示例
最小示例
ip neigh show # 全部邻居条目
ip neigh show dev eth0 # 只看指定接口
ip neigh show nud reachable # 只保留可达状态条目
cat /proc/net/arp # IPv4 邻居表的另一种视图
ip -s neigh show # 附带收发统计
ip neigh show > neigh.txt && date >> neigh.txt # 记录采集时刻输出逐列读法
| 字段 | 含义 | 注意 |
|---|---|---|
| 目的地址 | 邻居的 IP 或 IPv6 地址 | 需与资产清单核对 |
| dev | 对应网络接口 | 多网卡主机要分接口查看 |
| lladdr | 链路层地址(MAC) | 与厂商前缀对照可推测设备类型 |
| nud 状态 | 邻居可达状态 | FAILED 与 INCOMPLETE 表示未完成 |
| 剩余有效期 | 条目可持续时间 | 决定采集的紧迫程度 |
邻居表只包含同一网段内的二层邻居,跨网段通信不会出现在这里,用它推断远端通信对象会得出错误结论。
条目会被内核自动回收,重启或长时间运行后早期记录消失,现场应及时导出并记录采集时刻。
IPv6 邻居独立成表,只查看 IPv4 会漏掉通过 IPv6 通信的主机。
arp -an 在部分新发行版已随 net-tools 一并移除,脚本里不要假设它一定存在,优先使用 ip neigh。