![基于 TCP 序列的 TCP 数据包过滤器](https://linux22.com/image/803943/%E5%9F%BA%E4%BA%8E%20TCP%20%E5%BA%8F%E5%88%97%E7%9A%84%20TCP%20%E6%95%B0%E6%8D%AE%E5%8C%85%E8%BF%87%E6%BB%A4%E5%99%A8.png)
我需要根据特定的 TCP 序列或(可选)有效负载内容构建一个具有非常精确的数据包丢失的测试环境。我不知道如何使用 tc 或 iptables 来实现这一点。我应该使用什么工具?
谢谢。
答案1
http://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-3.html
接下来是 TCP 报头
假设我想查看 TCP 标头的第 4-7 个字节(TCP 序列号)...
最终的表达式(检查 TCP,检查未分段的数据包或第一个片段,并跳过 IP 报头,检查 TCP 报头的字节 4-7 是否等于 41)是:
iptables -m u32 --u32 "6&0xFF=0x6 && 4&0x1FFF=0 && 0>>22&0x3C@4=0x29"