Existe uma maneira de combinar um IP inet e inet6 em uma única regra?

6

É possível ter um IPv4 e um IP IPv6 definidos ( ipset(8) ) dentro da mesma regra?

Eu tenho várias regras que dependem de um conjunto de endereços IPv4 e outro conjunto de endereços IPv6, respectivamente, mas são idênticos.

Devo acrescentar que há um recurso em ipset(8) que parecia promissor, mas acaba por não oferecer solução para o problema em questão:

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).
    
por 0xC0000022L 05.06.2014 / 04:48

1 resposta

4

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.

    
por 01.07.2014 / 01:52