我如何使用BPF定位TCP数据包中的MSS值

问题描述 投票:0回答:1

我正在学习BPF,并将一些iptables规则转换为BPF字节码。我主要是使用nfbpf_compile应用程序来执行此操作,而不是尝试编写C或汇编程序。我很幸运,但是一条规则的语法在逃避我。

我想丢弃的同步标记集丢失了MSS值的数据包。在iptables中,MSS的目标是--tcp-option 2。我知道MSS在TCP选项中,该选项从TCP数据包的字节22开始,并且MSS是'种类'2。我可以使用BPF语法中的tcp[22:2]==$NUMBER来过滤MSS。但是,我想做的是目标SYN数据包,其中MSS完全丢失。我已经尝试过可以想到的所有“ null”变体,但是没有运气。

有人知道BPF语法中的iptables ! --tcp-option 2的等效性吗?

我尝试过的例子:

$ ./nfbpf_compile RAW 'tcp[22:2]==0x0' (I know this won't work..it's an example) 12,48 0 0 0,84 0 0 240,21 0 8 64,48 0 0 9,21 0 6 6,40 0 0 6,69 4 0 8191,177 0 0 0,72 0 0 22,21 0 1 0,6 0 0 65535,6 0 0 0 # iptables -I INPUT -m bpf --bytecode '12,48 0 0 0,84 0 0 240,21 0 8 64,48 0 0 9,21 0 6 6,40 0 0 6,69 4 0 8191,177 0 0 0,72 0 0 22,21 0 1 0,6 0 0 65535,6 0 0 0 ' -j DROP

我正在学习BPF,并将一些iptables规则转换为BPF字节码。我主要是使用nfbpf_compile应用程序来执行此操作,而不是尝试编写C或汇编程序。我有很多...
iptables bpf
1个回答
0
投票

TL; DR

© www.soinside.com 2019 - 2024. All rights reserved.