我可以要求tcpdump向我展示GRE封装的数据包,很简单,用tcpdump -ni any proto gre :
15:02:57.209082 IP 10.14.0.3 > 10.14.0.2: GREv0, key=0x1, length 106: IP 10.10.10.11 > 10.10.10.1: ICMP echo request, id 21073, seq 2784, length 64 15:02:57.209138 IP 10.14.0.2 > 10.14.0.3: GREv0, key=0x1, length 106: IP 10.10.10.1 > 10.10.10.11: ICMP echo reply, id 21073, seq 2784, length 64 15:02:57.345098 IP 10.14.0.2 > 10.14.0.3: GREv0, key=0x1, length 74: IP 169.254.192.1 > 224.0.0.18: VRRPv2, Advertisement, vrid 1, prio 50, authtype none, intvl 2s, length 20
但是,有可能只过滤封装的ICMP数据包,或任何其他任意expression?
既然这对我有用,更新这个答案。
如果你想看另一个原型的原型,你不能在原型中使用原型 。
protochain像proto 一样工作,但是为了这个确切的目的,它特别改变了下一个匹配的偏移量。
而是使用:
protochain GRE && proto ICMP
资料来源:pcap-filter(7)
tcpdump使用pcapfilter语法
在YY内过滤XX ;
proto YY && proto XX
GRE内的ICMP :
proto GRE && proto ICMP