Ubuntu 18.04 サーバーの 2 つのインターフェース間で NAT (SNAT) トラフィックを送信する必要があります。さまざまな NAT ニーズを実装するために '/etc/ufw/before.rules' ファイルを使用しようとしてきましたが、これまでのところは順調でした... これまでは。
次の iptables コマンドは、まさに必要なことを実行しているようです。
iptables -j SNAT -t nat -I POSTROUTING 1 -o eth0 -d 192.168.1.0/24 -s 172.18.0.0/16 --to-source 10.136.0.2
このルールは、'/etc/ufw/before.rules' ファイル内の構成に簡単に変換できますか? UFW NAT 構成のマニュアル ページは、より一般的なフィルタリング ルールと比較すると、少し不足しているようです。
背景: StrongSwan を使用して、一部の docker/コンテナ トラフィックをソース NAT し、IPSec ポリシー トンネル経由で送信しています。前述の iptables ルールがないと、VPN からコンテナにトラフィックをルーティングできますが、コンテナから送信されたトラフィックは失敗します。
eth0 は私の「パブリック」インターフェース IP 1.2.3.4 で、eth1 は私の「プライベート」インターフェース IP 10.136.0.2 です。
トラフィックを流すために '/etc/ufw/before.rules' ファイルにすでにある *nat 構成は次のとおりです (docker ソースのトラフィックを除く)。
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.1.0/24 -d 10.136.0.0/16 -j MASQUERADE
-A POSTROUTING -s 192.168.1.0/24 -d 172.18.0.0/16 -j MASQUERADE
COMMIT
#
答え1
このルールをすでに手動で追加している場合は、次のコマンドを実行して、iptables
追加する正しい形式と位置を見つけることができます。before.rules
# sudo iptables -t nat -S
...
-A POSTROUTING -s 172.18.0.0/16 -d 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.136.0.2
...