根据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。将深入挖掘并进一步发布。
答案 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)。