Почему ipset успешно добавляет диапазоны ipv4, но терпит неудачу при добавлении диапазона ipv6?

Использование ipset для очистки громоздких iptable наборов правил не так сильно отличается между IPv4 и IPv6 :

# ipset create TEST hash:net family inet
# ipset create DEMO hash:net family inet6
# iptables -A INPUT -m set --match-set TEST src -j DROP
# ip6tables -A INPUT -m set --match-set DEMO src -j DROP

Однако при добавлении диапазонов ip неожиданные ошибки возникают только для диапазонов IPv6 :

# ipset add TEST 192.0.2.0-192.0.2.127
# ipset add DEMO 2001:db8::-2001:db8::ffff
ipset v6.34: Syntax error: IP address or IP/cidr must be specified: 2001:db8::-2001:db8::ffff

Это неожиданно, поскольку ipset , похоже, может анализировать эти IPv6 адреса:

# ipset add DEMO 2001:db8::/112
# ipset del DEMO 2001:db8::/112
# ipset add DEMO 2001:db8::ffff/112
# ipset -L DEMO | tail -2
Members:
2001:db8::/112

Почему ipset принимает fromaddr-toaddr диапазоны для IPv4, но считает то же самое синтаксической ошибкой для IPv6 ?

1
задан 3 September 2018 в 00:23
1 ответ

Синтаксис fromaddr-toaddr поддерживается только для IPv4. Используйте нотацию cidr , чтобы добавить диапазоны IPv6 .

Для семейства inet можно добавить или удалить несколько записей, указание диапазона или сети IPv4-адресов в IP-адресе часть записи - man 8 ipset

1
ответ дан 3 December 2019 в 23:13

Теги

Похожие вопросы