ip6tables - 创建一组要阻止的 IPv6 地址

ip6tables - 创建一组要阻止的 IPv6 地址

我用ipset它来包含和匹配一组 IPv4,效果很好!我尝试对 IPv6 地址执行相同操作,但运行出现错误。

我有一个IPv6.cidr包含 IPv6 地址和子网掩码的文件:

2A03:C2C0::/32
2A03:C6C0::/32
...

我想要阻止任何符合此列表的 IPv6。

当我运行该脚本时:

sudo ipset -N v6 hash:ip family inet6 -exist
sudo ipset -F v6
for net in `cat IPv6.cidr`
do
    sudo ipset -A v6 $net
done

ipset 返回错误:

ipset v7.5: Syntax error: plain IP address must be supplied: 2A03:C2C0::/32

看来这ipset对 IPv6 子网掩码不起作用。

还有其他支持IPv6的设置模块吗?

答案1

您使用了错误的集合类型。哈希:ip是针对“IP 主机地址”(或网络,但仅具有固定前缀长度)。您没有主机地址,您有网络,可能具有不同的前缀长度。因此,您想使用哈希:净值

$ ipset create foo hash:net family inet6
$ ipset add foo 2A03:C2C0::/32
$ ipset test foo 2A03:C2C0::123
2a03:c2c0::123 is in set foo.

相关内容