いくつかのルールを追加しようとしましたが、失敗しました。
ルールは次のとおりです。
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
ファイルには少なくとも1つの「コレクション」が必要です。一部の記事では、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モジュールがありません。ベンダーが別のカーネルを提供した後、問題は消えました。