nftables ポート転送によりネットワーク要求が失敗する

nftables ポート転送によりネットワーク要求が失敗する

172.10.22.22パブリックIPの一部のポートをリモートVPN IPに転送しようとしています10.22.22.22。ローカルVPN IPは10.22.22.1

イーサネットインターフェイスはeth0です。 wireguard VPN インターフェイスは wg0 です。

これらのnftableルールは、他のネットワーク要求が削除されていることを除いて正常に機能します。

table ip nat {
        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                masquerade
        }

        chain prerouting {
                type nat hook prerouting priority dstnat; policy accept;
                ip daddr 172.10.22.22 tcp dport { 3396 } dnat to 10.22.22.22;
                ip daddr 172.10.22.22 udp dport 10000-10100 dnat to 10.22.22.22;
        }
}

だからping www.google.com動作しません。このルールをどのように修正できますか?アドバイスしてください。

編集する

代わりchain postrouting ...masqueradeにを使用するとofiname "wg0" masquerade問題がなくなります。 Masqueradeという表現をより具体的にする必要がありますか?

答え1

私自身の質問に答えるために。この問題は、バックルーティングチェーンの迷彩表現をより具体的にして解決されます。

table ip nat {
        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                # masquerade (as in question)
                ofiname "wg0" masquerade
        }

        chain prerouting {
                type nat hook prerouting priority dstnat; policy accept;
                ip daddr 172.10.22.22 tcp dport { 3396 } dnat to 10.22.22.22;
                ip daddr 172.10.22.22 udp dport 10000-10100 dnat to 10.22.22.22;
        }
}

関連情報