Acontece que richard estava certo. O tipo list:set é de fato a solução, embora eu ache que a redação da documentação é um tanto confusa, se não enganosa.
É possível ter, digamos, o seguinte conteúdo a ser usado com ipset restore :
create dns4 hash:ip family inet
create dns6 hash:ip family inet6
create dns list:set
add dns dns4
add dns dns6
você pode usar ipset add para adicionar IPs aos conjuntos de membros (ou seja, dns4 e dns6 respectivamente), mas não ao super conjunto ( dns ) do tipo list:set .
No entanto, o objetivo SET ( -j SET --add-set dns src --exist ) pode realmente ser informado para adicionar o IP a dns e só adicionará ao conjunto para o qual é possível, o que no nosso caso depende da opção family . Isso será mais difícil com mais conjuntos que podem ser qualificados para adicionar e IP (ou rede ou ...). Nesse caso, o primeiro será usado para adicionar a entrada.
Isso significa que list:set pode ser usado para reduzir pela metade o número de regras, caso contrário você teria que corresponder a um conjunto de IPs por regra IPv4 e IPv6, respectivamente, com uma regra idêntica.