ERSPAN 怎么工作
ERSPAN 是跨三层网络把镜像流量送到远端分析平台的方案:把原始帧用 GRE 封装后,按普通 IP 包路由过去。它适合把分散在各机房的采集点统一汇聚到一套分析平台,代价是封装后报文变大,还要考虑采样率与源设备的配置细节。
基本信息
| 适用平台 | 支持 ERSPAN 的交换机与路由器,各厂商实现细节不同 |
|---|---|
| 封装方式 | GRE,IP 协议号 47,ERSPAN 类型字段常见 0x88BE |
| 关键约束 | 路径 MTU 余量、目的可达性、采样率设置 |
| 典型用途 | 跨网段集中采集 |
典型使用场景
- 多机房流量集中汇聚到一套分析平台
- 无法在本地部署采集探针的机房
- 安全分析平台需要镜像流量作为输入
- 排查跨网段问题时统一取证口径
- 与本地镜像配合,做分层采集设计
抓包识别与核对
抓包识别与核对
tshark -r erspan.pcap -Y "ip.proto==47" -T fields -e ip.src -e ip.dst -e frame.len | head -20
# 外层是 GRE 封装,源地址是设备的封装源,目的地址是分析平台
tshark -r erspan.pcap -Y "gre.proto.type==0x88be" -T fields -e frame.number
# 识别 ERSPAN 封装后再展开内层原始帧,分析目标在内层
tshark -r erspan.pcap -Y "ip.proto==47" -q -z conv,ip | head
# 看封装流的会话分布,确认采集流量是否正常到达字段逐项读法
| 字段 | 含义 | 判读要点 |
|---|---|---|
| ip.proto == 47 | GRE 封装 | 外层识别的第一要素 |
| gre.proto.type | 封装内的协议类型 | ERSPAN 常见为 0x88BE,随实现与版本可能不同 |
| frame.len | 含外层开销的总帧长 | 评估 MTU 时必须把它算进去 |
| 内层原始帧 | 被镜像的原始报文 | 真正的分析对象 |
封装流量走正常路由,分析端看到的是带外层头的包,解封装后才看得到原始帧。分析前先确认工具是否识别该封装类型,识别不了会整包显示为 GRE,看不到业务信息。
内层大帧封装后可能超过路径 MTU 被丢弃,这也是「采集端少包」的常见原因。按最小路径 MTU 预留余量,必要时调整采集侧配置,别把丢包归因到业务侧。
部署检查项
- 确认封装目的地址可达且中间设备允许该协议通过
- 按最小路径 MTU 预留封装余量,避免大帧被丢
- 确认采样率设置,用量类结论必须基于全量采集
- 记录采集源的设备与接口信息,便于回溯
- 验证分析平台是否支持该封装类型的解析