做 PON 的应该都有体会——抓一包 OMCI 报文,几百帧,在 Wireshark 里一帧一帧翻,对照 G.988 查 ME class、查属性掩码,半天下来眼睛都花了。
我写了一个 OMCI 抓包分析工具,丢一个 pcap 进去,可以生成 HTML 报告。本文先介绍其中最有差异化的部分:业务流拓扑报告。
本质就是自动把分散在数百条 OMCI 控制报文中的 MIB 配置,拼装成可视化业务拓扑图。前提是抓包中包含足够的 Create/Set/Get 配置报文。
输入输出
输入:一个 pcap 文件(OMCI 抓包)
输出:一份自包含 HTML 报告,浏览器打开就能看,不依赖外部文件,发给别人也能直接打开。
报告里能看到什么
工具解析的是 OMCI控制面 MIB 配置报文(Create/Set/Get 等),不是用户面业务流量。通过解析这些配置报文,重建 ME 实例之间的引用关系,还原出 ONU 的业务流:
- 这个 ONU 建了几条业务流
- 每条流的完整转发链路:User-VLAN → MAC 桥 → 桥端口 → GEM Port → T-CONT
- 上行和下行路径分别怎么走
相当于把 G.988 里那些 ME 之间的关系,用图的方式画出来了。不用自己在脑子里拼"这个桥端口到底挂的是 ANI 侧还是 UNI 侧"。
实战案例
业务流还原不是简单罗列 ME,而是根据 G.988 中 ME 实例之间的引用关系,把 UNI、VLAN、MAC Bridge、Bridge Port、GEM IWTP、GEM Port、T-CONT 串成转发路径。
前段时间帮人看一个 ONU 的 VLAN 不通的问题。抓了个 pcap 丢进去,上行路径直接展示:
用户设备 │ User-VLAN 100 ▼ 以太网 UNI(ME 11,实例 0x0001) │ ▼ MAC 桥(ME 45,实例 0x0000) │ VLAN filter / Ext VLAN 处理 ▼ 桥端口(ME 47,实例 0x0101,挂接 ANI 侧) │ ▼ GEM IWTP(ME 266,实例 0x0001)→ GEM CTP(ME 268,实例 0x1001) │ ▼ T-CONT(ME 262,实例 0x0001,Alloc-ID 0x0002) │ ▼ OLT(PON 上行)如果抓包不完整,比如缺少某个关键 ME 的 Create/Set,报告不会硬猜,而是会把断点标出来,方便定位配置链哪里缺失。
根因:ONU 侧 T-CONT 绑定 Alloc-ID 为 0x0002,而 OLT 分配给该 ONU 的 Alloc-ID 是 0x0001,二者不一致,OLT 无法匹配上行带宽容器,业务不通。
这种问题手动翻 pcap 至少要半小时,工具 3 秒钟就定位到了。
支持范围
- 59 个标准 ME class,覆盖 VLAN、桥接、语音、GEM、T-CONT 等常用业务实体
- 私有 ME(class ≥ 0xFF00)标灰显示,厂商私有字段不做语义解析
- 当前仅解析 OMCI 控制面配置报文,不解析用户面以太网流量
- 仅支持经典 pcap 格式,pcapng 需要先用 Wireshark 转一下(后续版本会支持)
免费帮看包(近期开放)
最近开放一轮免费分析:你把 OMCI 相关抓包发我,我免费生成 HTML 报告发回(配置分析为主;需要时附报文分析)。
怎么参与
- CSDN私信发我文件(优先经典
.pcap;若是.pcapng,请先用 Wireshark 另存为 pcap) - 附一句你想查什么(例如:VLAN 不通、上线慢、业务流对不上)
- 建议先做简单脱敏:去掉公司名、公网 IP、账号/令牌等敏感信息
说明
- 完全免费;名额有限,每周先到先得约 5 份,我会按顺序处理
- 业务拓扑依赖抓包里是否有足够的 Create/Set/Get 等配置报文;残包会标断点,不会硬猜
- 样本仅用于给你出报告,不外传、不公开
- 工具版本 v0.1.9,持续迭代;自助下载包稍后放开,当前阶段优先把真实问题跑通
用完后麻烦回我一句感受(对不对得上现场、哪有用、还缺啥),这对后续改进很重要。
版本与后续
后续计划系列文章:
- OMCI MIB Upload 逐字节解析:搞懂 ONU 到底上报了什么
- 从 OMCI 抓包拆解 VLAN 业务全链路配置
- G.988 里容易混淆的 ME 实体关系辨析
感兴趣的可以先关注,后面发了会贴链接。