단일 규칙에서 inet 및 inet6 IP 세트를 일치시키는 방법이 있습니까?

단일 규칙에서 inet 및 inet6 IP 세트를 일치시키는 방법이 있습니까?

ipset(8)동일한 규칙에 IPv4 및 IPv6 IP 세트( )를 가질 수 있습니까?

한 IPv4 주소 세트와 다른 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).

답변1

그것은 밝혀리차드맞다. 이 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 addIP를멤버 세트(즉 dns4, dns6각각), 하지만 그렇지는 않습니다.슈퍼세트( dns) 유형 list:set.

그러나 SET( -j SET --add-set dns src --exist) 대상은 실제로 IP를 에 추가한 dns다음 가능한 세트에만 추가하도록 지시받을 수 있으며, 우리의 경우 옵션에 따라 다릅니다 family. IP(또는 네트워크 등)를 추가할 수 있는 세트가 많아지면 이는 더 어려워지며, 이 경우 첫 번째 세트가 항목을 추가하는 데 사용됩니다.

즉, list:set규칙 수를 절반으로 줄이는 데 사용할 수 있습니다. 그렇지 않으면 각 IPv4 및 IPv6 규칙의 IP 세트를 동일한 다른 규칙과 별도로 일치시켜야 합니다.

관련 정보