是否可以ipset(8)在同一规则中设置一个 IPv4 和一个 IPv6 IP ( )?
我有几个规则分别依赖于一组 IPv4 地址和另一组 IPv6 地址,但在其他方面是相同的。
我应该补充一点,有一个功能ipset(8)听起来很有希望,但结果却无法解决手头的问题:
list:set
The list:set type uses a simple list in which you can store set names.
[...]
Please note: by the ipset command you can add, delete and test the
setnames in a list:set type of set, and not the presence of a set's
member (such as an IP address).
Run Code Online (Sandbox Code Playgroud)
事实证明,理查德是对的。该list:set类型是确实解决方案虽然我找到文档中的措辞有点混乱,如果不是误导。
可以说以下内容与 一起使用ipset restore:
create dns4 hash:ip family inet
create dns6 hash:ip family inet6
create dns list:set
add dns dns4
add dns dns6
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用ipset add将 IP 添加到成员集(即dns4和dns6分别),但不能添加到type的超集( dns) list:set。
然而,实际上可以告诉SET( -j SET --add-set dns src --exist) 目标将 IP 添加到dns,然后只会添加到可能的集合中,在我们的情况下取决于family选项。如果有更多可能有资格添加 IP(或网络或 ...)的集合,这将更加困难,在这种情况下,第一个将用于添加条目。
这意味着list:set可用于将规则数量减半,否则您必须分别将每个 IPv4 和 IPv6 规则的 IP 集与其他相同的规则进行匹配。
| 归档时间: |
|
| 查看次数: |
4234 次 |
| 最近记录: |