3つのネットワークアダプタを持つLinuxボックスがあり、次のように設定したいと思います。
- アダプタAはコンピュータAに接続されています。
- アダプタ B はコンピュータ B に接続されます。
- アダプタCがインターネットに接続されます。特にsomeserver.comで
私が達成したいもの:
- Aのすべてのトラフィックはインターネットに移動します。
- アダプタBに特別な「秘密ポート」を定義します。
- 「秘密ポート」の「someserver.com」に向かうコンピュータBからのTCPトラフィックは、コンピュータAから来るように見えるようにソースIPを偽装します。
- 「someserver.com」からコンピュータAに戻り、#3で使用されているのと同じポートに到着するTCPトラフィックはコンピュータBにリダイレクトされます。
ルーターまたはブリッジを実装する必要がありますか? NetFitler / ipテーブルを構成してこれを実行できますか?それともいくつかのコードを実装する必要がありますか?コードなら、どの層でIPスタックと統合する必要がありますか?
ベストアンサー1
通常のアクセスにはMASQUARADE / SNATを使用する必要があります(CのIPアドレスが動的か静的かによって異なります)。
現状があなたのものだと仮定コンピュータA固定IPアドレスa.a.a.a
とコンピュータB固定IPアドレスを持っています b.b.b.b
。どちらにもデフォルトゲートウェイがありますコンピュータC。そしてSomeserver.com固定IPアドレスr.r.r.r
と秘密ポートを持つのはですpppp
。
構成するコンピュータCルータとしてインターネットへのデフォルトルートがあります。インターフェースC(静的構成、PPPoEによる動的設定などを介してすでにこれを行います。)これはそれ自体で行うことができます。1.
今、2つの可能性があります。
作るコンピュータAルーターも同じだ。だからあなたも変わります。コンピュータBデフォルトのパスは、以下を介して構成されるように構成されています。コンピュータA(いいえコンピュータC以前と同様)と構成コンピュータAこのように:
iptables -t nat -s b.b.b.b -d r.r.r.r -p tcp --dport pppp -j SNAT --to a.a.a.a
これにより、送信元IPから
b.b.b.b
宛先IP、宛先ポートまでのすべてのr.r.r.r
TCPパケットがpppp
そのパケットが開始されたと見なされ、次のトラフィックがa.a.a.a
完了します。3
サーバーウェブサイトソースアドレス(a.a.a.a
)に戻り、次にデコードされます。コンピュータAそしてまた送るコンピュータB。 (したがって完了4
)これは簡単ですが、コンピュータBがこのタイプのNATポリシーをサポートするオペレーティングシステムを実行する必要があります。
変化コンピュータA
10.0.1.100/24
次のプライベートIPがあります。コンピュータBプライベートIPを持っています10.0.2.100/24
。それからコンピュータCする:ip addr add a.a.a.a/nn dev ifaceC ip addr add b.b.b.b/nn dev ifaceC iptables -t nat -s 10.0.1.100 -j SNAT --to a.a.a.a iptables -t nat -s 10.0.2.100 -d r.r.r.r -p tcp --dport pppp -j SNAT --to a.a.a.a iptables -t nat -s 10.0.2.100 -j SNAT --to b.b.b.b
nn
あなたのネットマスクはどこにあり、ifaceC
あなたの名前はどこですか?インターフェースC。そうだろうコンピュータAそしてコンピュータBプライベート範囲内で許可コンピュータCネットワークアドレス変換コンピュータA(それで以前のように動作しますa.a.a.a
)とNATコンピュータBa.a.a.a
(dst =r.r.r.r
、dport =条件が満たされている場合)、または(else)のいずれかです。pppp
b.b.b.b
特別なサポートは必要ありません。コンピュータA...でもないコンピュータB、しかし後ろに残しましたネットワークアドレス変換これは他の事項に影響を与える可能性があります。
もちろん、この年齢には、上記の内容が良い老年層にのみ適用されることに言及しなければなりません。IPv4住所(最後の住所は早く使ってしまった)ではなくIPv6