Tunインターフェースを使用して、openvzで実行されているVPSをOpenVPNサーバーとして構成しています。
MASQUERADEが使用できないため、iptablesルールに問題があります。
MASQUERADEが利用可能な場合、iptablesルールを次のように記述します。
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
ただし、MASQUERADEを使用できない場合、SNATまたはDNATを使用してこれらのルールを書き換えるにはどうすればよいですか?
前もって感謝します
--------------編集---------------
ソリューションを提供してくれたOliproに感謝します。ここに私のために働いたルールがあります:
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source 1.2.3.4
1.2.3.4はopenvpnサーバーのパブリックIPアドレスです
グローバルIPv4アドレスが頻繁に変更される場合(ADSLなど)にのみ実際にMASQUERADEが必要になります。それ以外の場合は、一般的にSNATが推奨されます。
MASQUERADEルールの代わりに、SNATを次のように使用します。
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 1.2.3.4
1.2.3.4をVMの実際のパブリックIPに置き換えます。また、OpenVZボックスであるため、eth0はveth0またはvenet0であると想定します。