2

私は、少なくとも私のシニアプロジェクトにNATブレークスルーを実装しようとすることに非常に興味があります。(私はネットワーキングAPIを実行しています)。それは私のプロジェクトの要件ではなく、私の興味です。私はそれがどのように機能するかの基本を知っています、私が間違っている場合は私を訂正してください:2つのクライアントがNATの背後にないサーバーに接続し、このサーバーはこれら2つのクライアントのIPを知っており、クライアントに相互に接続するように指示します同時に。したがって、「ブレークスルー」。

これは、コーディングがそれほど簡単でも難しいものでもないようです。しかし、私が立ち往生しているのは、これのテストです。1台のルーター/1台のNATと3台の利用可能なコンピューターで実行できる合理的なセットアップはありますか?

アドバイスありがとうございます!

4

2 に答える 2

1

私がこれをまっすぐにしているかどうか見てみましょう。NATの背後にある2つのクライアントと、そうでないサーバーがあります。両方のクライアントがサーバーに接続し、もう一方の公開IPアドレスが通知されます。それぞれに宛先があるため、サーバーから切断し、それぞれのNATボックスを介して相互に直接接続します。それはあなたの考えですか?もしそうなら、私はあなたにいくつかの悪いニュースがあるかもしれません。

これを完全に機能させるには、各NAT構成に専用ポートを設定して、少なくとも1つの外部ポートを事前定義された内部IPアドレス/ポート番号に転送する必要があります。一般的なNATセットアップでは、発信接続要求は一時的な外部ポートを開くNATによってキャプチャされます。その外部ポート番号は、その1つの発信元アドレスおよびポートへの通信にのみ使用されます。接続が閉じられると、その外部ポートはなくなり、後で別の接続に再割り当てされます。したがって、両方のクライアントがサーバーと通信してから切断すると、サーバーがクライアントに送信した情報は無効になります。

これをなんとかして回避したとすると、両方のクライアントをNATの「内部」側に接続し、サーバーPCを「外部」側に接続するのはかなり簡単なはずです。次に、NATボックスが、あるローカル外部ポートから別のローカル外部ポートにパケットをループバックするのに十分スマートであることを期待する必要があります。ネットファイラーはこのように構成できると確信していますが、ホームインターネットの「ルーター」(Linksys、NetGearなど)がそれを実行できるとは思えません。

于 2009-10-26T21:39:45.313 に答える
1

NAT の解読に関するコード/理論に関しては、私はアドバイスを提供できませんが、テスト環境の設定についていくつかの提案を行うことができます。

m0n0wallのコピーをダウンロードして、Virtual PC イメージ内で実行できます (どちらも無料)。これにより、追加のハードウェアを購入することなく、2 台目のルーターが提供されます。この余分なルーターを使用すると、2 つのクライアント用に個別のサブネットを作成できます。

もう 1 つの簡単なオプションは、単純に 2 台目のルーターを購入することです。良いルーターをかなり安く手に入れることができます。

次に、既存のルーターとサーバーを現在の 192.168.1.x /24 サブネットに設定します。次に、2 番目のルーター (m0n0wall/ハードウェア ルーター) を 192.168.2.x /24 サブネットとしてセットアップし、2 番目のルーターの「インターネット」ポートを最初のルーターの「PC」ポートの 1 つに接続します。次に、両方のクライアントを 2 番目のルーターに接続します。

(少し混乱していることは承知しています。私の言いたいことが理解できない場合はコメントしてください)

于 2009-10-27T14:15:24.307 に答える