No.5ベストアンサー
- 回答日時:
> ルーターにも「ポート」があるのですか?
はい、あります。
まず、通常「ルータ」と呼ばれているものの正体から説明する必要があるのですが、ルータとか、異なるIPセグメント(近いIPアドレスを持つノード同士が繋がっているネットワークのひとかたまりだと思ってください、ノードとは、IPアドレスを付けられたあらゆる装置のことです)同士を接続し、パケットを中継するための装置です。
上記の説明の中に「TCP」とか「ポート」という用語が出てこないことからおわかりになるかもしれませんが、通常の「ルータ」には、ポートという概念はありません。あるIPアドレスを宛先とするパケットがルータにやってくると、ルータはそのパケットの宛先IPアドレスを見て、適切なネットワーク向けてパケットを中継します。しかし、その時点ではポート番号などは一切見知しません。あくまでIPアドレスしか見ていないのです。
ところが、よくADSLや光ファイバーを家庭に引いたユーザが利用する、通称「ブロードバンドルータ」の場合、ルータという機能の他に、NATと呼ばれる機能を持っているために話がややこしくなるのです。
どういうことかというと、通常、プロバイダは、ある回線(ADSL、光ファイバーなど)を経由して接続に来たユーザに対し、IPアドレスを一つしか割り当てません。正確には、複数のIPアドレスを割り当てるサービスは法人向けで、非常に高い(月額数万円~数十万円)値段で売られています。個人向けの月額2~5千円程度のサービスでは、ほとんどのプロバイダはアドレスを一つしか割り当てないのです。
で、IPアドレスというのはインターネットと通信するために絶対に必要なものですから、これではある家庭に回線が一本引かれていても、一台のPCしかインターネットが使えなくなってしまいます。これを回避するために、家庭向けのルータはNAT(Network Address Translation)という機能を兼ね備えています。
まず、ルータは家庭内のLANと家庭外に広がるインターネットを繋ぐ中継器の役割を果たします。家庭内のLAN(ローカルエリアネットワーク)に接続されたPCは、プライベートアドレスと呼ばれる、誰でも利用できるアドレスを使ってルータとの間にセグメント(上でも説明しましたが、近いアドレスを持つノードによるネットワークのひとかたまり)を形成します。代表的なプライベートアドレスには
192.168.***.***
というのがありますが、例えば192.168.0.1とか、192.168.0.2などという近いアドレスをルータやPCに順次付けていくことで、家庭内のIPネットワークを構成するわけです。
ところが、このままでは外部へのパケットの中継をすることが出来ません。192.168.***.***というアドレスは、家庭内であれば誰でも使って良いのですが、裏を返せば、家庭外に広がるインターネットでは決して使ってはいけないことになっています。よって、192.168.***.***から外部のインターネットにWebサイトを見たいなどのTCPの要求を#3で説明したとおりに投げたとしても、Webサーバからすると「192.168.***.***ってどこにあるんだよ?」ということになってしまうわけですね。よってサーバからの返答が届かないのです。
そこで、以下のような順序で、上手く通信を行う仕組みを考えつきました。
(1)利用者はブロードバンドルータにプロバイダから与えられたユーザ名とパスワードを設定します
(2)ルータは、あたかも自分がパソコンであるかのように、プロバイダに接続します。その結果、プロバイダからIPアドレス一つ(例えばaaa.bbb.ccc.ddd)を割り当てられます
(3)家庭内部のパソコンA(例えば192.168.0.10)を利用している人が、www.goo.ne.jpのサーバに対し、Webのアクセスを行ったとします。このときのTCPパケットは、
Src.Address=192.168.0.10, Dst.Address=www.goo.ne.jp
Src.Port=1050, Dst.Port=80
です。この後、パソコンAは、1050番のポートを開けて返答を待ちます。
(4)ルータはそのパケットを外部に中継しないといけません。が、このままではまずいです。何故かというと、www.goo.ne.jpは上記のパケットへの返答をしなくてはいけない(TCPは双方向通信)のですが、192.168.0.10への返答というのは出来ないのです。よって、ルータは、以下のようなトリックを使います。
まず、Src.AddressとSrc.Portを勝手に書き換えます。
Src.Address=aaa.bbb.ccc.ddd, Dst.Address=www.goo.ne.jp
Src.Port=2100, Dst.Port=80
そして、上記の書き換えを行ったことをメモリーに記憶し、TCPポート2100番を開けて待ちます(この辺はパソコンが直接通信する場合と同じです)。
(5)www.goo.ne.jpというWebサーバは上記のリクエストを受け取ります。そして、SrcとDstを入れ替えて返答します。
Src.Address=www.goo.ne.jp, Dst.Address=aaa.bbb.ccc.ddd
Src.Port=80, Dst.Port=2100
(6)この返答は、aaa.bbb.ccc.dddというアドレスを持つルータに帰ってきます。ルータは、先ほどのメモリーの内容を見て、Dst.AddressとDst.Portを書き戻します
Src.Address=www.goo.ne.jp, Dst.Address=192.168.0.10
Src.Port=80, Dst.Port=1050
(7)そして、上記のパケットを家庭内LANに配送します。受け取ったパソコンAは、1050番ポートを開けて待っていましたので、上記のパケットを正常に受領します。
上記のようなプロセスで、プライベートアドレスしか持てない家庭内PCと、外部のインターネットの間を正常につなぐのがNATという機能です(最近は用語の区別がかなり曖昧になりましたが、以前はIPマスカレード機能とも言われました。一部のルータの説明書ではこのような名前で呼ばれているかもしれません)。
ところが、次のような場合、上手く通信が行えません。例えばインターネットゲームなどに参加している場合、外部のパソコンから、なんの予兆なくゲーム用のパケットが飛んでくることがあります。
このとき、ルータはLAN内の誰にこのパケットを届ければいいか、自分のメモリーをチェックしますが(上の(6)です)、予兆なくパケットが飛んできた場合はメモリーに情報がないため、どう書き換えればいいかルータは判断できません。こういうとき、ルータはパケットを捨ててしまいます。
よって、ルータを経由するゲームの場合、正常にネットゲームを行えないという場合が登場します(この教えて!gooでもこのようなケースについての質問が数多くあります)。
この場合、あらかじめそのネットゲームで利用されているポート番号と、そのネットゲームを遊ぶLAN内のパソコンが判明している場合、特例をルータに設定してやることで解決します。
特例とは、「メモリーにないパケットがTCPの****ポートにいきなり飛んできた場合は、アドレスだけ192.168.0.10に書き換えて、LAN内に中継しろ」というものです。
こういった設定をすることで、それまでは動作しなかったネットゲームなどのアプリケーションが動作するようになります。
本来、ルータとはIPアドレスのみを見て動作する装置であり、ポート番号とは無縁なのですが、NATのために、家庭向けブロードバンドルータはポートについての設定を行ったりするような装置になってしまっています。
No.4
- 回答日時:
> 「ポート マジック」なるプログラムが入っているのですが、これは何をしているのでしょうか?
すみません、使ったことはないので確かなことは言えないのですが、下のURLを見る限り、ある特定のルータを利用している場合に、自動的にあるポート宛の通信を静的にフォワードする(いわゆるポート開放などと言われているようですが)ような設定をルータに行うようなソフトウェアのように思えます。
他にも、トラフィックのモニタリング、未利用のポート閉塞、ゲーム中にそれ以外の通信を遮断するモード、などの付随的な機能を持っているようです。
http://www.purenetworks.com/products/portmagic.php
特定のルータ(下記URL)を利用している人以外では、それほど嬉しいことはないように思えます…。
http://www.purenetworks.com/internet_gateways.php
お役に立てずすみません。
No.3
- 回答日時:
> プロトコルがあるものは、『専用の玄関口』があるようなもので、その、まさに「キー」となるべきものは、パケットの中に含まれているのでしょうか??
その通りです。パケットの頭にヘッダと呼ばれるものが付いているのですが、その中にソースポート(発信元ポート番号、Src.Port)とデスティネーションポート(宛先ポート番号、Dst.Port)と呼ばれる情報が格納されています。
http://ew.hitachi-system.co.jp/p/r-tcpheader.html
例えばTCPの場合は上記のようなヘッダが付いています。最初の16ビットがSrc.Port、次の16ビットがDst.Portです。
> ポートとは、入り口(通信先)のことで、出口(通信元)はどうなるのでしょうか?ランダムに割り振られるのでしょうか?
TCPの場合、パケットを送ると、それに対し必ず応答が発生します(双方向性)。このとき、あるパケットについての応答は、Src.PortとDst.Portを入れ替えることになっています。例えばWebサーバへの通信の場合、ウェルノウンポートとしてはWebサーバは80番と決められていますが、あるWebサーバへのアクセスは、例えば
Src.Port=1050、Dst.Port=80
というようになっています。Src.Portはランダムですが、ウェルノウンポートと重ならないよう、1024より大きい範囲で使うよう決められています。
ちなみに返答パケットは、
Src.Port=80 Dst.Port=1050
となるわけです。よってこのパケットを発信したPCは、1050番のポートを開けて返答を待っていればOKということになります。
また、これだけでは通信の混信やパケットの順番の入れ違いを防げませんから、ヘッダにはその他に様々な情報が格納されています。例えばシーケンス番号はパケットの順番を定義するために使われますし(シーケンス番号の順にパケットを整理してつなぎあわせ、アプリケーションに渡します)、コードビットはTCPの通信の制御(開始・終了・肯定、など)をやりとりするために使われます。
UDPの場合、通信の流れは双方向ではなく片方向ですから(双方向にやりとりしているように見える場合は、片方向の通信をそれぞれが行ってるだけ)、Src.PortとDst.Portを入れ替えて返信を待つ、というような動作はありません。
現実的な話になって申し訳ないのですが、海外のA●Lから、専用ブラウザをダウンロード、インストールすると、「ポート マジック」なるプログラムが入っているのですが、これは何をしているのでしょうか?
ご存知ならば、ご教授願いたいのですが...
No.2
- 回答日時:
> 仮に、FTPのプロトコルを、双方が意図的に、他のポートで実行することなどは可能ですか???
はい、可能です。もちろん他の通信に影響が出ないように配慮する必要はありますが、他の通信のことはさておき、そのFTPの通信が出来るか出来ないかというだけの問題であれば、サーバ側・クライアント側アプリケーションでポート番号の設定変更が可能でさえあれば問題なく通信できます。
ありがとうございます。おぼろげながら、ポートの『実体』が見えてきました。!(^^)!
プロトコルがあるものは、『専用の玄関口』があるようなもので、その、まさに「キー」となるべきものは、パケットの中に含まれているのでしょうか??
あ!思いついたのですが、ポートとは、入り口(通信先)のことで、出口(通信元)はどうなるのでしょうか?ランダムに割り振られるのでしょうか?
No.1
- 回答日時:
ポートとはTCP/UDPの通信の識別のための番号です。
番号としてはそれぞれ0~65535になります。なお、制御についてはNICより上のレベルの話で、OSのプロトコルスタック~アプリケーションの機能ということになります。
ポートを利用したハッキングの場合、多くは、そのマシンがあらかじめ開けてあるポートに対し、攻撃用のデータを投げつけることで行われます。なぜかというと、そもそもポートが閉じている場合、NICから上がってきたパケットを処理するOSのプロトコルスタック(相対的に低いレイヤ)で捨てられてしまい、攻撃が成立しないからです(評価者がいないと攻撃にならない)。ポートが開いている場合、OSのプロトコルスタックはより上位の層にパケットを渡します。その際、そのパケットを評価するアプリケーションなどに脆弱性があると、そこを突いた攻撃が可能になる、というわけです。
当然、ドライブごとOSを消去したPCは、例えNICにケーブルが刺さっていても、攻撃することは不可能です(攻撃用パケットを処理する評価者がいないため)。
ありがとうございます。
「ウエル-ノウン ポート」として、通信プロトコルなどにより、ポート番号が決まっていますが、仮に、FTPのプロトコルを、双方が意図的に、他のポートで実行することなどは可能ですか???
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- モニター・ディスプレイ display portの仕様と使い方について教えてください。 1 2023/06/12 08:13
- その他(セキュリティ) PCとスマホのクラッキング、ハッキングに困っています 2 2022/10/09 22:36
- モニター・ディスプレイ Windows10のプロジェクター映写について Windows10には2画面設定はできず、HDMIポ 2 2022/08/25 19:56
- ドライブ・ストレージ PCのパーフォーマンスが極端に落ちた。 8 2023/01/28 15:22
- ルーター・ネットワーク機器 家庭内LANで10GbE 3 2022/11/14 02:03
- その他(パソコン・周辺機器) Windowsマシン。USBタップの「自動切れ、再接続」がうざい。解決策は? 7 2023/01/25 08:27
- ドライブ・ストレージ PCに外付けドライブをつけて音楽を聞いたり、動画を見たい! わたしはWindowsPCを持っているの 6 2022/07/15 18:48
- メルカリ メルカリに登録した個人情報が心配です 2 2023/01/25 22:23
- Wi-Fi・無線LAN 社用PCのWi-Fiがインターネット無しになる 5 2023/07/13 09:13
- サーバー NASの利用経験多い方教えてください! 1 2022/03/24 19:21
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自分のGmailアドレスを使って買...
-
netflixに不正ログインされまし...
-
シム外されたら
-
walmartから身に覚えのないメール
-
JS/Packed.Agent.N が検出され...
-
Googleで画像を見ててGIFが勝手...
-
UberEatsのフィッシング詐欺に...
-
電子メールのリダイレクトURLは...
-
ネット民の特定班ってどうやっ...
-
詐欺?文集オンライン 次のペー...
-
何のサイトでしょうか
-
エクセルパスワードについて
-
Yahoo mailがおかしい
-
マイクロソフトを語る悪質業者...
-
このようなメールが来ました。 ...
-
私の行っているバイト先は指紋...
-
同じドメイン内の詐欺メールの...
-
Torブラウザ セキュリティに良...
-
ネットの世界
-
Yahoo知恵袋での利用制限について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同セグメント内に流れているパ...
-
異なるサブネットで片やPing OK...
-
NT Kernel System(ntoskrnl.exe...
-
Overlapping Fragment Attackに...
-
「239.255.255.250:1900」宛の...
-
マルチキャストのExcludeモード...
-
「IPパケットのチェックサムが...
-
コリジョンドメインを超えたパ...
-
NATとNAPTについて教え...
-
毎日、不正アクセスの集中攻撃
-
ノートン
-
ファイアウォールと通信速度
-
スイッチングハブ
-
ブラウザからのSSL通信の動きに...
-
Etherealの使い方(A⇔B間)
-
SWのストームコントロール機能...
-
NATディスクリプタを挟んだ送信...
-
異なるグループのLANへ安全に入...
-
基本的なことですが、『ポート...
-
ルータとブリッジの違い?
おすすめ情報