2012-04-23 18 views
0

私は、さまざまなマシン上で動作し、よく知られているIPアドレスとポートを受信して​​いる多くのサーバーを持っています。 よく知られているIPAddress/portのペアに基づいて、サーバー間の接続を確立して(最初に試してみてください)、呼び出し元を認証します。ソケットリスナーサーバー間の接続を確立する

新しい接続を開始するためにリスナーポートを再利用することができないため、この認証はできません(後で通信インスタンスパラメータによって接続ソケットが一意に識別されても問題ありません)。

私はパートナー間で対称性を保ちたいと思います(ノードを調整する 'マスター'のようなものはありません)。 この問題の解決策はありますか?

[私が知っているように、SO_REUSEADDRは、このためのものではなかった...]

更新: 私はちょうどたIPAddressとポート番号のペアを含む、いくつかの設定を定義しました。アイデアは、これらのペアを使って接続を確立することです。したがって、構成を持つ当事者は、着信接続を容易にチェックすることができる。 後ですべてをxinetdの背後に置き、受信アドレス/ポートの組み合わせを確認させたいと思います。

要約: イベント理論的には、マシン固有の(IPAddress、port)ペアを使用してネットワークを確立することができれば、同等の通信ノードで実現する可能性はありません( '半分'はクライアント、他の半サーバー)。 私はそうですか? [我々はまた、問題の背後にある動機を議論することができますが、これはない質問です]私はIPアドレスに依存すると言わなければならない

+1

サーバがリッスンしているのと同じポートを使用する代わりに、発信接続を別の指定ポートにバインドしてみてはどうでしょうか?一般的な例は 'listening_port_number + 1'です。 –

+0

...すべてのネットワークノードでこれを続けますか?それはほとんど許可されることはできません... – BenSteven

+0

あなたは**よく知られているIPアドレスとポート**の意味を明確にすることはできますか? SMTPのような標準サービスの場合、SMTPの上にあるip-portペアに基づいて認証サービスを追加する方法は? – tuxuday

答えて

0

は真のセキュリティではありません。しかし、それがあなたがしたものなら、次のいずれかを行うことができます。

  • TCPではなくUDPを使用します。同じポートから簡単にメッセージを送受信できます。
  • TCP用に一対のポートを使用します。 1つは送信用、もう1つは受信用です。
関連する問題