몇 가지 규칙을 추가하려고 시도했지만 계속 실패했습니다.
규칙은 다음과 같습니다.
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 ip
ip_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 모듈이 누락된 것 같습니다. 공급업체가 다른 커널을 제공한 후 문제가 사라졌습니다.