我正在尝试做一个应用程序来生成包含优先级字段的流量。为此,我希望在以太网帧中包含802.1Q标记,并修改其PCP字段。我生成并发送数据包,如下所示:
pkt = IP(dst = "172.24.100.61")/Dot1Q(prio = 7)
send(pkt, iface='eth0')问题是,当我使用Wireshark捕获流量并检查以太网报头字段时,802.1Q标记没有出现:

我知道802.1Q与TCP/IP堆栈的第2层相关,并且我正在发送IP数据包,但是,为什么Wireshark中没有反映这种变化?
P.D:当我创建一个以太网帧并使用sendp指令发送它时,会反映出更改,但我需要创建一个IP数据包。
发布于 2021-08-09 14:27:56
Dot1Q层位于以太网层和IP层之间。在您的情况下,发送程序会为您添加以太网层,并将其发送到接口。
下面的代码对我有效(这意味着wireshark不会抱怨)。
from scapy.all import send
from scapy.layers.inet import IP
from scapy.layers.l2 import Dot1Q
pkt = Dot1Q(prio = 7) /IP(dst = "172.24.100.61")
send(pkt, iface='eth0')https://stackoverflow.com/questions/68565435
复制相似问题