我正在使用 iptables v1.4.21,它不接受 64 位标记目标。是否有支持 64 位标记的较新版本?
编辑:
$ uname -a
Linux sindhu 3.19.0-28-generic #30-Ubuntu SMP Mon Aug 31 15:52:51 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ iptables -I INPUT -s 6.6.6.6 -j MARK --set-xmark 1234567812345678/0xffffffffffffffff
MARK: Could not determine whether revision 2 is supported, assuming it is.
MARK: Could not determine whether revision 2 is supported, assuming it is.
iptables v1.4.21: MARK: bad mark value for option "--set-xmark", or out of range.
答案1
64 位机器应该支持 64 位标记iptables-1.2.10
。但它不起作用,至少在最新版本(1.4.21-2ubuntu2
和内核4.2.0-18
)中不起作用。
来自更新日志
iptables v1.2.10 更新日志 ========================================================================= 此版本需要内核 >= 2.4.4
此版本建议内核 >= 2.4.18自 1.2.9 版以来修复的错误:
physdev 匹配:修复内核的新结构布局 > 2.6.0-test8 [ Bart De Schuymer ]
更好的 64 位 / 32 位分割架构检测
- IPv6 LOG 目标:修复 64 位编译器警告
- LOG 目标:修复 64 位上的编译器警告
- IPv6 MARK 目标:在 64 位架构上使用完整的 64 位标记
- MARK 目标:在 64 位架构上使用完整的 64 位标记
- 相同目标:修复 64 位/32 位 splitarch 问题
- ULOG 目标:修复 64 位/32 位 splitarch 问题
- conntrack match:修复 64 位/32 位 splitarch 问题
- IPv6 限制匹配:修复 64 位/32 位 splitarch 问题
- 限制匹配:修复 64 位/32 位 splitarch 问题
- IPv6 标记匹配:在 64 位架构上使用完整 64 位标记
- 标记匹配:在 64 位架构上使用完整 64 位标记
所有者匹配:修复 64 位上的编译器警告 [ Martin Jofsefsson ]
connbytes match:修复有符号/无符号问题 [ Martin Josefsson ]
connlimit 匹配:修复 '/0' 网络掩码 [ David Ahern ]
ipv6 所有者匹配:修复可能非零终止字符串
- 辅助匹配:修复可能非零终止的字符串
最近匹配:修复可能非零终止的字符串 [ Karsten Desler ]
ICMP 匹配:修复 '--icmp-type any' 情况 [ Harald Welte ]
CONNMARK 目标:重大更新(添加标记/掩码匹配)[ Henrik Nordstrom ]
DSCP 目标:修复外观帮助消息问题 [Maciej Soltysiak]
字符串匹配:修复 iptables-save/restore 中带有空格的 ascii 字符串 [ Michael Rash ]
ip(6)tables-restore: 确保匹配的顺序相同 [ Martin Josefsson ]
ip(6)tables-restore:修复“--verbose”选项
- ip(6)tables-restore:添加“--test”选项
ip(6)tables-restore: 抱怨缺少 'COMMIT' [ Martin Josefsson ]
ip(6)tables-restore: 允许在引用的字符串中嵌入引号字符 [ Michael Rash ]
libipq:防止伪造的队列消息(检查发送者是否是内核)[ Harald Welte ]