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.