用scapy解析geneve包
Parse geneve packet with scapy
我正在尝试使用 scapy 从我的 pcap 文件中解析 geneve 数据包,但我得到的只是 Raw
。
我 git 从这里用 geneve 克隆了 scapy:
https://github.com/p4lang/scapy-vxlan
并遵循自述文件中的安装步骤,
-bash-4.2$ scapy
Welcome to Scapy (2.2.0-dev)
>>> load_contrib('geneve')
>>> a=rdpcap("geneve.pcap")
>>> len(a)
15
>>> pkt=a[3]
>>> pkt.show()
###[ Ethernet ]###
dst= 00:00:00:11:01:01
src= 00:00:00:00:00:00
type= n_802_1Q
###[ 802.1Q ]###
prio= 0
id= 0
vlan= 1000
type= IPv4
###[ IP ]###
version= 4
ihl= 5
tos= 0x0
len= 197
id= 0
flags= DF
frag= 0
ttl= 64
proto= udp
chksum= 0xe3fb
src= 22.22.22.1
dst= 21.21.21.1
\options\
###[ UDP ]###
sport= flirtmitmir
dport= 6081
len= 177
chksum= 0x0
###[ Raw ]###
load= '\t\x00eX\xe3\x03\xe8\x00\x01\x03\x02\x08\x00d\x00\x00\x06\x83\xc1\x9a\xb6;\x04\x00\x00\x00\x80\x00\x00\x00\x00\x02\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x02\x81\x00\x03\xe8\x08\x00E\x00\x00k\x00\x00\x00\x00@=zW\x00\x00\x00\x00\x00\x00\x00\x00\xa9-!\xd0`\x00\x00\x00\x08\t\n\x0b\x05\xa1H\x8e\x00C\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST\xd8\xe9'
###[ Padding ]###
load= '`Jy\xa6'
您隐藏了一些有趣的层,这些层可以解释为什么您的数据包没有被解码为 GENEVE()
层。
由于这个分支基于一个非常旧的 Scapy 版本,我建议您从您正在使用的存储库中的 the official repository ans simply add the contrib file 获取 Scapy。如果你需要这个协议,你也可以在 Scapy 中创建一个 pull request,这样这个协议就会被 Scapy 集成(和支持)。
我正在尝试使用 scapy 从我的 pcap 文件中解析 geneve 数据包,但我得到的只是 Raw
。
我 git 从这里用 geneve 克隆了 scapy: https://github.com/p4lang/scapy-vxlan
并遵循自述文件中的安装步骤,
-bash-4.2$ scapy
Welcome to Scapy (2.2.0-dev)
>>> load_contrib('geneve')
>>> a=rdpcap("geneve.pcap")
>>> len(a)
15
>>> pkt=a[3]
>>> pkt.show()
###[ Ethernet ]###
dst= 00:00:00:11:01:01
src= 00:00:00:00:00:00
type= n_802_1Q
###[ 802.1Q ]###
prio= 0
id= 0
vlan= 1000
type= IPv4
###[ IP ]###
version= 4
ihl= 5
tos= 0x0
len= 197
id= 0
flags= DF
frag= 0
ttl= 64
proto= udp
chksum= 0xe3fb
src= 22.22.22.1
dst= 21.21.21.1
\options\
###[ UDP ]###
sport= flirtmitmir
dport= 6081
len= 177
chksum= 0x0
###[ Raw ]###
load= '\t\x00eX\xe3\x03\xe8\x00\x01\x03\x02\x08\x00d\x00\x00\x06\x83\xc1\x9a\xb6;\x04\x00\x00\x00\x80\x00\x00\x00\x00\x02\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x02\x81\x00\x03\xe8\x08\x00E\x00\x00k\x00\x00\x00\x00@=zW\x00\x00\x00\x00\x00\x00\x00\x00\xa9-!\xd0`\x00\x00\x00\x08\t\n\x0b\x05\xa1H\x8e\x00C\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST\xd8\xe9'
###[ Padding ]###
load= '`Jy\xa6'
您隐藏了一些有趣的层,这些层可以解释为什么您的数据包没有被解码为 GENEVE()
层。
由于这个分支基于一个非常旧的 Scapy 版本,我建议您从您正在使用的存储库中的 the official repository ans simply add the contrib file 获取 Scapy。如果你需要这个协议,你也可以在 Scapy 中创建一个 pull request,这样这个协议就会被 Scapy 集成(和支持)。