如何区分含双MPLS头的报文?求Wireshark/tshark过滤方案及命令
区分双层MPLS头的方法(Wireshark/tshark实现)
可以通过Wireshark或tshark的MPLS头索引功能区分不同层级的MPLS头,解决跨头匹配的问题。
Wireshark图形界面操作
Wireshark会为多层MPLS头按顺序编号为mpls[0](第一个MPLS头)、mpls[1](第二个MPLS头),以此类推。直接在过滤栏指定索引即可精准匹配目标头:
- 匹配第一个MPLS头同时满足
exp=7且bottom=0:mpls[0].exp == 7 && mpls[0].bottom == 0 - 匹配第二个MPLS头的字段:
mpls[1].exp == 7 && mpls[1].bottom == 0
tshark命令行实现
你之前的命令未指定MPLS头索引,导致规则会匹配"任意一个头exp=7 + 任意一个头bottom=0"的报文,因此出现结果数量超预期的问题。使用索引指定目标头即可解决:
匹配第一个MPLS头满足条件的报文(对应你预期的前8个报文)
tshark -r capture2_11-17-2022_11-15-15.pcap -T fields -E header=y -e mpls[0].exp -e mpls[0].bottom -Y "mpls[0].exp == 7 && mpls[0].bottom == 0"
关键参数说明
-Y:指定显示过滤规则(替代直接在命令末尾写规则的方式,更规范且兼容新版tshark)mpls[N]:N为MPLS头的顺序索引,从0开始计数,精准指定要匹配的层级头
内容的提问来源于stack exchange,提问作者Giridhar Radhakrishnan
相关产品推荐
相关产品推荐

