iptables가 ipset 일치를 로드할 수 없습니다.

iptables가 ipset 일치를 로드할 수 없습니다.

몇 가지 규칙을 추가하려고 시도했지만 계속 실패했습니다.

규칙은 다음과 같습니다.

ipset create FABEDGE-PEER-CIDR hash:net

iptables -t nat -N FABEDGE-NAT-OUTGOING
iptables -t nat -A POSTROUTING -j FABEDGE-NAT-OUTGOING
iptables -t nat -A FABEDGE-NAT-OUTGOING -s 192.168.3.0/24 -m set --match-set FABEDGE-PEER-CIDR dst -j RETURN

결과는 다음과 같습니다.

++ iptables -t nat -N FABEDGE-NAT-OUTGOING
iptables: Chain already exists.
++ iptables -t nat -A POSTROUTING -j FABEDGE-NAT-OUTGOING
++ iptables -t nat -A FABEDGE-NAT-OUTGOING -s 192.168.3.0/24 -m set --match-set 
FABEDGE-PEER-CIDR dst -j RETURN
iptables: No chain/target/match by that name.

이 줄마다

iptables -t nat -A FABEDGE-NAT-OUTGOING -s 192.168.3.0/24 -m set --match-set FABEDGE-PEER-CIDR dst -j RETURN

다음 메시지와 함께 실패합니다: "iptables: 해당 이름과 일치하는 체인/대상/일치가 없습니다."

이 메시지를 검색해 보니 iptables가 ipset 일치 항목을 로드할 수 없는 것 같습니다. "/proc/net/ip_tables_matches" 파일을 확인했는데 내용은 다음과 같습니다.

cat /proc/net/ip_tables_matches
conntrack
conntrack
conntrack
addrtype
udplite
udp
tcp
addrtype
icmp

파일에는 최소한 하나의 "컬렉션"이 있어야 합니다. 일부 기사에서는 iptables가 필요에 따라 일치 모듈을 로드한다고 언급했습니다.

나는 lsmod | grep ipip_set 모듈이 로드된 것을 사용하고 발견했습니다.

 lsmod | grep ip
iptable_raw             2525  0
ip_set_hash_net        33113  1
ip_set                 44480  1 ip_set_hash_net

정말 무엇을 해야할지 모르겠고 아무런 단서도 없습니다.

어떤 도움이라도 환영합니다. 미리 감사드립니다.

내 iptables는 v1.6.1이고 내 커널은 4.9.253-tegra이며 이 커널은 사용자 정의라는 것을 알아야 합니다.

답변1

이 자체 컴파일된 커널에는 일부 IPv6 모듈이 누락된 것 같습니다. 공급업체가 다른 커널을 제공한 후 문제가 사라졌습니다.

관련 정보