如何在熟食模式下运行scapy?

时间:2016-04-01 15:46:22

标签: sockets scapy tcpdump tunneling

我遇到捕获流量的问题。

我的系统配置了两个接口 - ethX和tunelX。 tunelX是一个隧道接口。

scapy和tcpdump捕获不同数量的数据包。 问题是tcpdump运行,如果"任何" iterface设置在cooked mode,但scapy不是。 cooked mode表示将创建SOCK_DGRAM而不是SOCK_RAW。它是必要的,因为在隧道包装中的一些数据"在链路层中可能丢失或包含不包含数据以确定数据包的类型。

当我用 scapy sctipt 进行strace时,我看到了这一点。

    927698 socket(PF_PACKET, SOCK_RAW, 768) = 4


    927689 recvfrom(3, "..some-data..."..., 65535, 0, {sa_family=AF_INET6, sin6_port=htons(53), inet_pton(AF_INET6, "...some address...", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 105
    927689 recvfrom(3, "..some-data..."..., 32767, 0, {sa_family=AF_PACKET, proto=0x86dd, if4, pkttype=PACKET_HOST, addr(6)={1, 30d17e75727f}, [18]) = 246
    927689 recvfrom(3, "..some-data..."..., 32767, 0, {sa_family=AF_PACKET, proto=0x86dd, if4, pkttype=PACKET_HOST, addr(6)={1, 30d17e75727f}, [18]) = 86
    927689 recvfrom(3, "..some-data..."..., 32767, 0, {sa_family=AF_PACKET, proto=0x86dd, if4, pkttype=PACKET_HOST, addr(6)={1, 30d17e75727f}, [18]) = 86
    927689 recvfrom(3, "..some-data..."..., 32767, 0, {sa_family=AF_PACKET, proto=0x86dd, if4, pkttype=PACKET_OUTGOING, addr(6)={1, 90e2ba55f6e8}, [18]) = 271

唯一的最后一个数据包被添加到转储中。

问题是: 我的假设是对的吗? :)我如何在熟食模式下启动scapy?我无法在手册中找到它。

谢谢。

0 个答案:

没有答案