用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 集成(和支持)。