我正在尝试使用 将数据包的标记字段设置为 (第 5 层) 标头中的 32 位字段nft add rule inet filter output udp dport 31337 meta mark set @th,96,32
。 (我正在提取第 5 层标头中的第二个 dword,但由于提取从第 4 层标头的偏移量开始,因此我添加了 64 位以到达 UDP 有效负载。)
但是,我得到了Error: datatype mismatch: expected packet mark, expression has type integer
。nftablesinteger
中的类型是可变长度的;mark
类型是长度恰好为 32 位的类型的特化integer
。我不知道如何转换或以其他方式让 nftables 相信该类型实际上是可以的。
有什么见解吗?
答案1
因为我使用的是 nftables 0.9.0,并且这个错误直到 0.9.1 版本才修复。