ip set(netfilter ipset)只能用于基于mac的过滤吗?

时间:2014-12-12 12:56:53

标签: iptables netfilter

根据ipsets手册页 - 他们允许一个人在一个独家新闻中匹配一组IP地址,而不是在iptables中为每个IP地址编写规则。

IP集也允许ip:mac集 - 它们关联IP地址和MAC地址。

有没有办法可以在IP集中创建仅MAC地址集?到目前为止,查看文档和一些代码 - 它并没有出现。

如果上述问题的答案为否,则跟进问题 - "如果必须实现这样的集合 - hashmap应该是首选?"

要求是最多几十个MAC与一个" set"相关联。我同意这样的事情在iptables本身不会变得困难,但是它太过愚蠢,而且非常难以维护(如果这些团体因任何原因应该是动态的)。

或者我错过了什么?

编辑1:我确实错过了一些东西! ebtables允许在从文件读取的列表中匹配MAC并且可以标记帧。 http://linux.die.net/man/8/ebtables。手册还建议可以通过标记操作将其链接到iptables。将深入挖掘并进一步发布。

2 个答案:

答案 0 :(得分:1)

在下面的提交中,在ipsets中添加了对hash:mac类型的支持。

http://git.netfilter.org/ipset/commit/?id=4652cd11938b7ed2ad16cbb80698caa44b0e53bb

所以简短的回答“是的!” ipsets确实支持创建基于mac的集。

答案 1 :(得分:1)

正如@gabhijit本人所指出的那样,ipset added this feature在2014年的版本 6.22 中(几天后在v6.23中记录了它)。但是,并非每个内核都支持它(例如,Debian jessie 不会,即使它包含v6.23,但 stretch 应该)。

使用sudo modinfo ip_set_hash_mac查看您的内核是否支持hash:mac集类型。

使用ls /lib/modules/*/kernel/net/netfilter/ipset/查找所有支持的集合类型(至少使用Debian)。