
私のAWS AMI Centosサーバーに、インターネットゲートウェイを持つ2つのサブネットeth0 10.0.0.1とパブリックIP経由のNATゲートウェイを持つeth1 10.10.0.1を持つVPCをデプロイしました。私の問題は、私のNATゲートウェイパブリックIPがクライアントに提供されることです。対話するか、そのサブネットを使用してデータをプッシュできます。同じサーバーに複数のクライアントが接続されていて、ip shdがデータをプッシュするサブネットを定義するためのパスを追加したくありません。デフォルト値を変更するか、eth1サブネットから出るすべてのトラフィックを話したいと思います。 。
/etc/sysctl.conf
net.ipv4.ip_forward =1
sysctl net.ipv4.ip_forward = 1
sudo iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE
sudo iptables -A FORWARD --in-interface eth0 -j ACCEPT
クライアントが eth1 サブネットへの接続を開いたため、クライアント IP に対して ping または Telnet を実行できません。ただし、eth0からeth1にトラフィックを転送すると、送信元アドレスは変更されず、代わりにクライアントが取得されます。 eth0 サブネット IP はネットワークでは不明です。
デフォルトのeth1を変更してみました。
**/etc/sysconfig/network
GATEWAY=x.x.x.x
GATEWAYDEV=eth1**
ここではすべてのトラフィックがブロックされ、着信トラフィックもeth1に変わります。
私の要件は、着信トラフィックがeth0サブネット10.0.0.1から発信され、発信トラフィックがeth1サブネット10.10.0.1から来ることです。パスを追加すると、私のプロセスはさらに複雑になります。すべてのタスクを実行するためにコマンドまたはスクリプトを自動的に追加する機能が必要です。
答え1
これは私には言えませんが...
私の要件は、着信トラフィックがeth0サブネット10.0.0.1から発信され、発信トラフィックがeth1サブネット10.10.0.1から来ることです。パスを追加すると、私のプロセスはさらに複雑になります。すべてのタスクを実行するためにコマンドまたはスクリプトを自動的に追加する機能が必要です。
ボックスは、ネットワークトラフィックがどのネットワークカードから出るのかを制御せずにネットワークカードに到達し、ボックスがそれを処理するため、トラフィックが出てくるネットワークカードを隠そうとするのは作業です。
ただし、トラフィックを送信するネットワークカードをボックスに通知できます(他のネットワークカードを介して確立されたTCP接続にトラフィックを送信しない場合)...つまり、トラフィックが問題のボックスで発生した場合...
これを行います。
/etc/sysconfig/ネットワークスクリプト/route-eth0
default via 10.10.0.1 dev eth1
iptablesはnic間のトラフィック移動には適しておらず、固定IPにMASQUERADEの代わりにDNAT / SNATを使用します。
不明瞭に見えるので、質問を再構成または明確にしてください...