Rehat Enterprise Linux Server Release 5.5(Tikanga)を使用しており、次の2つのインターフェースがあります。
- eth0:パブリックIPはxxx.xx.64.118です。
- eth0:0: パブリック IP は xxx.xx.116.19 です。
- eth1:プライベートIPは172.16.23.2です。
デフォルトでは、私のiptable POSTROUTINGチェーンルールは次のとおりです。
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
これは、eth0のIPがNAT IPであることを意味します。これで、eth1に接続されている特定のホスト(172.16.23.6)がインターネットに接続されているときに、eth0:0(たとえばxxx.xx.116.19)と同じソースIPを持つことを望みます。だから、次のルールを追加しました。
iptables -t nat -A POSTROUTING -s 172.16.23.6 -o eth0 -j SNAT --to-source xxx.xx.116.19
次のようにMASQUERADEの上に新しいルールを追加します。
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 172.16.23.6 0.0.0.0/0 to:xxx.xx.116.19
MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
私の推測によると、IP 172.16.23.6を持つホストは、インターネットに接続するとパブリックIP xxx.xx.116.19を持っています(whatismyip.comを介して確認)。しかし、まだeth0(xxx.xx.64.118)のパブリックIPが表示されます。 Ubuntuもうまくいきます。誰でも問題が何であるかを提案できますか?