ネットワークの基本知識(9)~ポート番号とは~

ネットワークの基本知識(9)~ポート番号とは~

ポート番号の必要性

ポート番号とは、レイヤ4(トランスポートレイヤ)で使用されるサービス識別のための番号です。これだけではあまりピンとこないかもしれませんので、なぜ必要かを考えてみましょう。例えば、下記のようなサーバマシンがあるとします。彼は、ひとりでウェブサーバ・メールサーバ・DNSサーバ・FTPサーバの役割をこなしています。マルチなサーバですね。

マルチなサーバ

ポート番号の仕組みが、もしなかったとしたら、彼に何かしてほしいと通信を行っても「通信の種別」を判断するすべがありません。要求されたリクエストがWEBページが欲しいのか、メールをやりとりしたいのか名前解決がしたいのか、ファイルのやり取りをしたいのか、わからないのです。

マルチなサーバ?

通信の中身を見てよしなに判断してくれればいいのにと思いますが、残念ながらそんな便利な仕組みは通信のしくみには存在しないのです。そこでポート番号の出番です。

マルチなサーバポート

このようにポート番号を指定してリクエスト通信を行うことで、マルチなサーバ君は、「あーWEBページがほしいのね」と判断できます。ポート番号の目的・役割は「サービスの識別」のため、というわけです。

 

ポート番号の種類

ポート番号は0 ~ 65535まで存在しますが、用途別にいくつかの種類に分けることができます。

1.Well Known Port Number

ポート番号[0 ~ 1023]
IANAで正式に登録されているポート番号です。いわゆるwww(80)やFTP(21)やDNS(53)といった超メジャーなサービス(プロトコル)のポートはほとんどこの範囲に含まれます。ポート番号を使用することで番号とサービスの紐づけが行えることはわかりましたが、この紐づけはIANAという団体(http://www.iana.org/)によって管理されています。

2.Registered Port Number

ポート番号[1024 ~ 49151]
IANAで正式に登録されているポート番号。データベースソフトウェアのMySQL(3306)のリモートコネクションに利用するポートや、windowsをリモートで操作するためのRDP(3389)に利用するポートが登録されています。Well Known Port Number ほどのウルトラ級メジャーさはないものの、メジャーなソフトウェアのリモート通信に利用されるポートが多い印象です。

3.Dynamic Port Number

ポート番号[49152 ~ 65535]
IANAで正式に登録されていないポート番号。自由(※)に利用できるとされるポート番号です。何か目的があってアプリケーションのポート番号を指定する必要がある場合などに、この番号を使用することが多いです。

例えば、サーバの操作を行うSSHのポートは22番と策定されていますが、サーバをインターネットに公開した場合、色々な国から22番ポートで接続して認証を試みる通信が来ます。(サーバに不正侵入しようとしてるんですね)そんなとき、SSHの22番ポートをDynamic Port Numberに変更し(56022番など)、ターゲットになりにくくしたりします。

ポート番号の強制に関して

実際にポート番号をどう使うかに関しては、強制力はありません。たとえば、自前で作成したwebサーバを80番ポートではなく50000ポートで受け付ける設定に変更し、動作させることも技術的には可能です。(50000でwebサーバ公開しても誰も見に来ないと思いますがw)

ポート番号の割り当て一覧

wikiに詳細に記載されていますが、特によく使用するものについては以下にまとめます。

ポート番号 サービス 用途
20 FTP データ
21 FTP 制御
22 SSH
23 Telnet
25 SMTP
53 DNS
67 DHCP
68 DHCP
69 TFTP
80 HTTP
110 POP3
123 NTP
137 NetBIOS
138 NetBIOS
139 NetBIOS
143 IMAP4
161 SNMP
162 SNMP trap
179 BGP
389 LDAP
443 HTTPS
465 SMTPS
514 Syslog
520 RIP
587 Submission
694 HeartBeat
993 IMAP4 over SSL
995 POP3 over SSL
3306 MySQL
3389 RDP
5432 PostgreSQL

Linux環境では以下のようにserviceファイルを参照することで確認することも可能です。

ではまた次回~。

Bookmark this on Google Bookmarks
LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です