UPDアイデアは、コメントで完全に明白で詳細な説明ではありません。
少し前まで、ipv4アドレスの最後のブロックが出力されました。 プロバイダーは、通常の顧客に無料の外部IPアドレスを提供する可能性がますます低くなり、独立したサービスとして接続することを提案しています。 同時に、ユーザーはコンピューターにリモートで接続できること、トレントのパフォーマンスが向上すること、ゲームをホストすること、さらにはWebサーバーを上げることもできることに誘惑されます...そして、グレイIPの唯一の利点は、セキュリティ、つまり、外部からのアクセスがあなたの欲望なしであることです。
この記事では、この機会を活用する方法について説明します。この機会は、完全に無料で提供され、機能を維持しながらサーバーを攻撃から確実に保護します。
理想的に得られるもの:
-完全に機能するクライアントサーバーアプリケーション。
-洪水トラフィックを吸収できるDDOSからの無料の保護。プロバイダーのトランクチャネルの幅に匹敵します。
-ネットワークインフラストラクチャを変更する必要のないソフトウェアの実装。
したがって、NATプロバイダーの背後にいて、灰色のIPがあります。 コンピューターは外部IPを受け取りません。 原則として、これでサーバーがDDOSから保護されます。
しかし、あなたは尋ねます:しかし、立派なユーザーは私のサーバーに接続しますか? 外部からはアクセスできません...実際、クライアントの主導で接続を確立することは失敗します。 しかし、ここから楽しみが始まります。
Webサーバーだけでなく、ユーザーが作成したクライアントと対話するサーバーアプリケーションがある場合を考えます。 この場合、サーバーとクライアントの両方のロジックを完全に決定します。 基本的な考え方は、クライアントが接続しようとしていることをサーバーに知らせることです。 その後、サーバーは提供されたアドレスでTCP接続を確立し、その瞬間から、クライアントとサーバー間の完全な通信が可能になります。 サーバーが切断されるまで続行します。 したがって、ネットワークの相互作用は完全にサーバーの制御下にあり、通常のudp-floodを含む不要なトラフィックを回避するのに役立ちます。
しかし、サーバーは接続することをどのように認識するのでしょうか?
これは、主に無料のソリューションに基づいて、想像力の広い範囲を開きます。 事実、ログオンサーバー(これを呼び出しましょう)は、本質的には非常に単純なアプリケーションです(作業ロジックの観点から)。 接続する必要のあるIPアドレスをクライアントから取得し、メインサーバーに転送するだけです。 IPフィルタリングを含む残りのロジックは、既に実装できます。 このような単純なタスクのために、巨大な無料のインフラストラクチャがあります。
以下に例を示します。
-メールサーバー。
-Google Apps;
-FTPサーバー。
-無料ホスティング(静的を含む);
-APIを提供し、情報を交換できるサービス。
繰り返しますが、3番目のサービスを介して、妥当な時間(数秒)でクライアントからサーバーに小さなテキストフラグメント(IPアドレスと、場合によってはその他の情報を含む)を転送するだけです。 そして、クライアントを接続するときにこれを一度だけ行うこと。
だから、私たちは何を達成することができましたか
許可されたクライアントからの接続を受け入れ、悪意のあるトラフィックを完全に無視できます。 結局のところ、主な問題は、UDPフラッドに対処することがほとんど不可能であるという事実に正確にありました(チャネル拡張を除く)。 そして今、私たちは実際にプロバイダーのメインチャネル全体を自由に使用でき、それが詰まるまで、私たちのサービスはうまくいきます。 プロバイダーは私たちについて不満を持ちません。Doserは私たちとは一切関係なく、パケットはプロバイダーのNATアドレスに行き、そこで破壊されます。
提案された方法の欠点は何ですか?
-このメソッドは、本格的なクライアント/サーバーアプリケーションにのみ適しています。
-この方法は小規模プロジェクトに適しています。
-NATプロバイダーの背後にいることを確認してください。
-灰色のIPを持つクライアントは接続できません。
結論として、記述されたアイデアは個人的に私に属していると言いたいです。 そして、私はそれをHabraの住民と議論したいという大きな望みを持っています:)私はあなたの質問に答える準備ができています...