同じルール内に1つのIPv4と1つのIPv6IPセット(ipset(8)
)を含めることは可能ですか?
IPv4アドレスの1つのセットとIPv6アドレスの別のセットにそれぞれ依存するいくつかのルールがありますが、それ以外は同じです。
ipset(8)
には希望に満ちた機能があることを付け加えておきますが、目前の問題に対する解決策はありません。
list:set
The list:set type uses a simple list in which you can store set names.
[...]
Please note: by the ipset command you can add, delete and test the
setnames in a list:set type of set, and not the presence of a set's
member (such as an IP address).
richard は正しかったことがわかりました。 list:set
タイプは確かに解決策ですが、誤解を招くものではないにしても、ドキュメントの文言はやや紛らわしいと思います。
ipset restore
で使用する次のコンテンツを指定することができます。
create dns4 hash:ip family inet
create dns6 hash:ip family inet6
create dns list:set
add dns dns4
add dns dns6
次に、ipset add
を使用してメンバーセットにIPを追加できます(つまり、それぞれdns4
とdns6
)、ただし、タイプlist:set
のスーパーセット(dns
)には適用されません。
ただし、SET
(-j SET --add-set dns src --exist
)ターゲットは、実際にはIPをdns
に追加するように指示でき、それが可能なセットにのみ追加されます。この場合は、 family
オプション。これは、追加およびIP(またはネットワークまたは...)の対象となる可能性のあるセットが増えると難しくなります。その場合、最初のセットがエントリの追加に使用されます。
つまり、list:set
を使用すると、ルールの数を半分にすることができます。そうしないと、IPv4およびIPv6ルールごとに設定されたIPを、それ以外は同じルールとそれぞれ一致させる必要があります。