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;
}
}