Scapy 允许在 IP 数据包中设置 DSCP 或 tos 位,使用 8 位服务类型字段的高 6 位。
a = IP(dst="172.31.0.1", tos=184)
或者
send(IP(dst="172.31.0.1")/ICMP())
它还允许跟踪路由和修改跟踪路由中的 IP 字段。
ans,unans=sr(IP(dst="172.31.0.1", ttl=(4,25),id=RandShort())/TCP(flags=0x2))
在尝试将 tos 位输入到 traceroute 时,生成的数据包似乎会无限递归,并且需要 ctrl-c 来停止数据包的发送。
ans,unans=sr(IP(dst="172.31.0.1", ttl=(4,25),id=RandShort(), tos=184)/TCP(flags=0x2))
有没有人找到一种方法让 scapy 使用 traceroute 或 sr() 执行 dscp/tos?