ポート転送とは何ですか?


215

「ポートフォワーディング」には多くの質問がありますが、それが何であり、何のために使用されているかを明確に述べているものはないようです。そう:

  1. ポート転送とは何ですか?

  2. それは何のために使用され、なぜそれが必要なのですか?


1
これで十分だと思います:portforward.com/help/portforwarding.htm
Koray

回答:


318

基礎

ポート転送を実際に説明するには、まずルーターの機能についてもう少し理解する必要があります。インターネットサービスプロバイダーは、インターネット接続に1つの IPアドレスを割り当てます。インターネット上のすべてのコンピューターには一意のIPアドレスが必要ですが、自宅には複数のコンピューターがあり、アドレスは1つだけです。では、これはどのように機能しますか?

あなたがそれが何であるかを知っていて、それをどうやってやるのか知りたいだけなら http : //portforward.com/には、文字通り何百もの異なるルーターのスクリーンショット付きのハウツーがあります。ドキュメントは、自動portconfigツールの広告ページの後ろに隠れています。(それを見つけるには少しクリックしてください。)

NAT-それは何ですか?なぜ使用するのですか?

ホームルーターには、ネットワークアドレス変換(NAT)と呼ばれる機能が組み込まれています。ネットワーク内には、コンピューターに192.168.1.100などのアドレスがあります。192.168。*範囲(または10. *)範囲のすべてのアドレスは、プライベートまたは予約済みアドレスです。これらのアドレスは、プライベートネットワーク内で使用するためにIANAによって公式に割り当てられています。ルーターは、DHCPを介して接続された各コンピューターにそのようなアドレスを自動的に割り当てます。これらのアドレスは、ネットワーク内のコンピューターがルーターと相互に通信する方法です。

ルーターには、インターネットに接続する別のネットワークインターフェイスがあります。このインターフェイスには、ISPによって割り当てられた非常に異なるアドレスがあります。これは私が前に言及した1つのアドレスであり、ルーターはインターネット上の他のコンピューターと通信するためにそれを使用します。ネットワーク内のコンピューターにはルーティングできないプライベートIPアドレスがあります。つまり、インターネットに直接パケットを送信すると、パケットは自動的にドロップされます(プライベートアドレスを持つパケットは、安定性のためにインターネットを通過できません)。ただし、ルーターにはルーティング可能なアドレスがあります。ネットワークアドレス変換は、その名前が示すように、変換します これらの2種類のアドレス間で、ネットワーク内の複数のコンピューターが1つのアドレスを持つ1つのコンピューターとしてインターネットに表示されるようにします。

詳細

これは複雑に聞こえるかもしれませんが、実際にはルーターがそれを行う方法は非常に簡単です。ネットワーク内のコンピューターがインターネット上のコンピューターに接続するたびに、ルーターに接続要求を送信します(デフォルトゲートウェイパラメーターがルーターのアドレスに設定されているため、ルーターに送信することを認識しています)。次に、ルーターはその接続要求(TCP / IPの「SYN要求」)を取得し、送信元アドレス(「返信先」または返信アドレス)を変更し、コンピューターのプライベートIPからパブリックIPに変更します。応答がルーターに送信されるように。その後、接続が開始されたことをデータベース(NATテーブルと呼ばれる)に記録し、後でそれを記憶します。

リモートコンピューターから応答が返されると( "SYN-ACK")、ルーターはNATテーブルを調べ、そのポート上のそのホストへの接続がネットワーク上のプライベートコンピューターによって以前に開始されたことを確認し、宛先を変更しますアドレスをコンピューターのプライベートアドレスに変換し、ネットワーク内に転送します。このようにして、パケットはネットワーク間を行き来し続けることができ、ルーターはアドレスが透過的に変更されて動作します。接続が終了すると、ルーターはそれをNATテーブルから削除するだけです。

または、このように考えてください

これは、メタファーを使って視覚化するのが少し簡単かもしれません-あなたが中国の顧客と仕事をしている米国の貨物運送業者だとしましょう。彼らは米国の多くの顧客に荷物を送る必要がありますが、税関/事務処理上の理由から、荷物を1か所に送る方が簡単です。したがって、パッケージは中国のクライアントの1つ(この例ではプライベートネットワーク)から届き、実際の宛先は米国のどこかにあります(インターネット)。ボックスの住所ラベルを米国(パブリック)アドレスに変更し、返信先アドレスを自分の公開アドレスに変更し(顧客に迷惑をかけずに中国に直接返送できないため)、郵便サービスに渡します。 。顧客が製品を返品した場合、それはあなたに届きます。記録で調べて、中国のどの会社から来たのかを確認します。

これはうまく機能しますが、少し問題があります。顧客が会社に何かを送る必要がある場合、何かの支払いで為替を言ってみましょう。または、インターネット上のコンピューターがルーターとの接続(SYN要求)、たとえばネットワーク内のWebサーバーへの接続を開始したとしましょう。レター/パケットにはルーターのパブリックアドレスのみが含まれているため、ルーターは実際に送信先を知りません。プライベートネットワーク上の任意のコンピューターを宛先とすることも、どのコンピューターも宛先としないこともできます。誰かの自宅の電話に電話するときにこの問題が発生した可能性があります-彼らがあなたに電話するときは問題ありませんが、あなたに電話するとき、誰が電話をかけているのかを知る方法がないので、間違った人が答える可能性があります。

ネットワーク上ですべてのコンピューターが他のすべてのコンピューターを知っているわけではないため、人間がこれを簡単に解決することはできますが、コンピューターにとっては非常に複雑です。

そして最後に、ポートフォワーディングに到達します

ポートフォワーディングは、この問題を解決する方法です。これは、着信接続をネットワーク内のどのコンピューターに向けるかをルーターに伝える方法です。これを行うには、3つの異なる方法があります。

  • Faux-DMZ:多くのルーターにはDMZと呼ばれる機能があります。これは、一種のネットワークセキュリティ構成である非武装地帯の略です。ホームルータのDMZは、実際のDMZの機能がないため、faux-DMZと呼ばれることがよくあります。行うことは、最も単純な種類の着信接続処理です。すべての着信接続要求は、ネットワーク内で指定されたものに送信されます。簡単です-IPアドレスをルーターの構成に入力すると、すべての着信接続がそこに行きます。ただし、着信接続を受け入れる必要がある複数のコンピューターがある場合があるため、これは常に機能するとは限りません。そのために...
  • ポート転送:すべてのネットワーク接続要求には「ポート」が含まれます。ポートは単なる数字であり、コンピューターがパケットの内容を認識する方法の一部です。IANAは、ポート80がHTTPに使用されることを指定しています。つまり、ポート番号80を示す着信パケットは、Webサーバー向けの要求でなければなりません。ルーターのポート転送を使用すると、ポート番号(または、ルーターに応じて番号の範囲または組み合わせ)とIPアドレスを入力できます。一致するポート番号を持つすべての着信接続は、そのアドレスを持つ内部コンピューターに転送されます。
  • UPnPポート転送:UPnP転送はポート転送とまったく同じように機能しますが、設定する代わりに、ネットワーク内のコンピューター上のソフトウェアが自動的にルーターを設定し、特定のポートのトラフィックを転送します。

使用例を見てみましょう。多くのマルチプレイヤービデオゲーム(例として、Counter Strike)を使用すると、コンピューターでゲームサーバーを実行し、他の人が接続してプレイすることができます。お使いのコンピューターは、プレイしたいすべての人を知っているわけではないため、接続できません。代わりに、インターネットからコンピューターに新しい接続要求を送信する必要があります。

ルーターに何も設定されていない場合、これらの接続要求を受信しますが、ネットワーク内のどのコンピューターにゲームサーバーがあるかはわからないため、それらを無視します(または、より具体的には、送信します)接続できないことを示すパケットを返します)。幸いなことに、ゲームサーバーへの接続要求に使用されるポート番号はわかっています。そのため、ルーターでは、ゲームサーバーが予期するポート番号(27015など)とゲームサーバーがインストールされているコンピューターのIPアドレス(192.168.1.105など)を使用してポートをフォワードに設定します。
ルーターは、着信接続要求をネットワーク内の192.168.1.105に転送することを認識し、外部のコンピューターが接続できるようになります。

別の例は、IP 192.168.1.10を持つ2番目のマシンがApacheを使用してWebサイトをホストする2つのマシンを持つローカルネットワークです。したがって、ルーターは着信ポート80要求をこのマシンに転送する必要があります。ポート転送を使用すると、両方のマシンが同じネットワークで同時に実行できます。

ポート転送のグラフ例

ビデオゲームは、おそらく毎日のユーザーがポートフォワーディングに遭遇する最も一般的な場所ですが、最新のゲームのほとんどはUPnPを使用しているため、手動でこれを行う必要はありません(代わりに、完全自動です)。ただし、ネットワーク上の何かに直接接続できるようにしたいときはいつでも、これを行う必要があります(インターネット上の仲介者を介してではなく)。これには、独自のWebサーバーの実行、またはリモートデスクトッププロトコルを介したコンピューターの1つへの接続が含まれる場合があります。

セキュリティに関する注意

NATの優れた点の1つは、NATが手間をかけずに組み込みのセキュリティを提供することです。多くの人々は、脆弱なマシンを探してインターネットをさまよいます...そして彼らはさまざまなポートとの接続を開こうとすることによってこれを行います。これらは着信接続であるため、上記で説明したように、ルーターはそれらをドロップします。つまり、NAT構成では、ルーター自体のみが着信接続を含む攻撃に対して脆弱です。これは良いことです。なぜなら、多くのソフトウェアを備えた完全なオペレーティングシステムを実行しているコンピューターよりも、ルーターがはるかに単純である(したがって脆弱性が低い)からです。ネットワーク内のコンピューターをDMZする(DMZの宛先として設定する)ことにより、そのコンピューターのセキュリティ層が失われることに注意してください:インターネットからの着信接続に対して完全に開かれているため、そのため、直接接続されているかのように保護する必要があります。もちろん、ポートを転送するたびに、受信側のコンピューターはその特定のポートに対して脆弱になります。したがって、適切に構成された最新のソフトウェアを実行してください。


2
簡単に説明しましたが、DMZスタイルのポートフォワーディングの使用の重要性について説明することもできます。実稼働環境下で、SQLサーバー(またはその他)のようなものを外部に公開することをお勧めする単一のインスタンスを考えることはできません。ポート転送により、セキュリティを大幅に損なうことなく、保護されたリソースにアクセスできます。
ブライアンヴァンデンバーグ

11
NATセクションで拡張されていない詳細の1つは、ネットワーク上のコンピューターがDHCPを使用して内部のルーティング不可能なプライベートIPアドレスを取得する場合、割り当てられたものが変わる可能性があり、それが発生するとポート転送が行われるという事実ですめちゃめちゃになる。各コンピューターのネットワークアドレス指定を手動で設定することにより、それを回避するのが最善です。portforward.comはこれの重要性を強調し、システムで静的IPアドレスを設定する方法を説明するガイドを持っていますが、これらの現在予約されているNATアドレスを回避するためにルーターのDHCPを構成する必要性についても言及していません。
マルティノー

2
@jcrawfordor、こんにちは、UPnPが完全にどのように完全に自動化されているかを説明してもいいですか?UPnPとは何ですか?
Pacerier

1
DHCPアドレスを予約する@martineauは、これを行う良い方法です。一部のルーターは、アドレスではなく特定のクライアントにポート転送できますが、これはさらに望ましい方法です。
Baldrickk

2
「ポートは単なる数字であり、パケットが何であるかをコンピューターが認識する方法の一部です」という答えの部分。誤解を招く。アプリケーションのポート番号の修正は慣例であり、パケットのタイプを決定する要素ではありません。せいぜいパケットがポート80のために意味することができます推測 HTTP、より多くの何もないように、それは完全にアプリケーションがポート80でリッスン(アプリケーション層で)に依存します
codeman48
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.