Warum ist das Hinzufügen von IPv4-Bereichen mit ipset erfolgreich, das Hinzufügen von IPv6-Bereichen schlägt jedoch fehl?

Warum ist das Hinzufügen von IPv4-Bereichen mit ipset erfolgreich, das Hinzufügen von IPv6-Bereichen schlägt jedoch fehl?

Verwenden vonipsetzum Aufräumen von sperrigeniptableRegelsätze scheinen nicht so unterschiedlich zu sein zwischenIPv4UndIPv6:

# 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

Beim Hinzufügen von IP-Bereichen treten jedoch unerwarteteFehler treten nur bei IPv6-Bereichen auf:

# 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

Das ist unerwartet, dennipsetscheint in der Lage zu sein, diese zu analysierenIPv6Adressen:

# 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

Warum sollteipsetakzeptieren fromaddr-toaddrBereiche für IPv4, betrachten das aber als Syntaxfehler fürIPv6?

Antwort1

Die fromaddr-toaddrSyntax wird nur für IPv4 unterstützt. Verwenden Sie cidrdie Notation, um hinzuzufügenIPv6Bereiche.

Für dieinetFamilie kann man mehrere Einträge hinzufügen oder löschen, indem man im IP-Adressteil des Eintrags einen Bereich oder ein Netzwerk von IPv4-Adressen angibt -Mann 8 ipset

verwandte Informationen