ip6tables — создать набор адресов IPv6 для блокировки

Я использую для хранения и сопоставления наборов 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 ответ

Вы используете неправильный тип набора. hash:ip предназначен для «IP-адресов хостов» (или сетей, но только с фиксированной длиной префикса). У вас нет адресов хостов, у вас есть сети, возможно, с разной длиной префикса. Таким образом, вы хотите использовать hash:net:

      $ 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.
Другие вопросы по тегам