109.1 レッスン 2
Certificate: |
LPIC-1 |
---|---|
Version: |
5.0 |
Topic: |
109 ネットワークの基礎 |
Objective: |
109.1 インターネットプロトコルの基礎 |
Lesson: |
2 of 2 |
はじめに
前のレッスンでは、TCP/IPスタック(インターネット プロトコル スイート)の中からIPプロトコルを取り上げて、IPアドレス(IPv4)、ネットマスク、デフォルトルートなどについて学習しました。
IPはネットーワーク層のプロトコルであり、「ホスト間」のデータのやり取りを司ります。1つのホストではたくさんのサービスやアプリケーションが動作しますから、TCPやUDPなどのトランスポート層のプロトコルで、利用するサービスやアプリケーションを指定することが必要です。
TCPならびにUDPでは、ホストで稼働しているサービスやアプリケーションを識別するために、ネットワークポート という概念を使用します。つまり、あるプログラムが別のホストで稼働しているサービスと通信する場合には、IPアドレスでホストを指定し、さらに ポート番号 でサービスを指定します。もちろん、発信側のプログラムにもポート番号が割り当てられます。
ポート番号は16ビットの数値ですから、0を除く65,535個までのポートをそれぞれのホストが使用できます。ただし1023以下のポート番号は 特権ポート と呼ばれ、root権限を持つプロセスのみが使用できます。発信側のプログラムでは、非特権ポート ないしソケットポートと呼ばれる1024から65,535までのポート範囲を使用します。
受信側であるサービスが使用するポート番号は、サービスの種類ごとにIANA(Internet Assigned Numbers Authority)によって標準化されています。つまり(特別な事情がない限り)どのシステムでも、SSHサービスは22番ポートを、HTTPサービスは80番ポートを使用します。
次の表に、主なサービスとそれぞれのポートを示します。
ポート | サービス |
---|---|
20 |
FTP (データ転送用) |
21 |
FTP (制御用) |
22 |
SSH (Secure Socket Shell) |
23 |
Telnet (暗号化なしのリモート接続) |
25 |
SMTP (Simple Mail Transfer Protocol) メールの送信 |
53 |
DNS (Domain Name System) |
80 |
HTTP (Hypertext Transfer Protocol) |
110 |
POP3 (Post Office Protocol) メールの受信 |
123 |
NTP (Network Time Protocol) |
139 |
Netbios |
143 |
IMAP (Internet Message Access Protocol) メールへのアクセス |
161 |
SNMP (Simple Network Management Protocol) |
162 |
SNMPTRAP、SNMP通知 |
389 |
LDAP (Lightweight Directory Access Protocol) |
443 |
HTTPS (Secure HTTP) |
465 |
SMTPS (Secure SMTP) |
514 |
RSH (Remote Shell) |
636 |
LDAPS (Secure LDAP) |
993 |
IMAPS (Secure IMAP) |
995 |
POP3S (Secure POP3) |
Linuxシステムでは /etc/services
ファイルに、サービスごとのポート番号がリストされています。
接続の際に宛先のサービスを指定するには、IPアドレスの後に文字 :
(コロン)で区切り、ポート番号を置きます。たとえば、IPホスト 200.216.10.15
で稼働しているHTTPSサービスにアクセスする場合は、宛先として 200.216.10.15:443
を指定します。
それぞれのサービスは、その働きに応じたトランスポートを使用します。ほとんどの場合は、TCPかUDPのいずれかです。
Transmission Control Protocol(伝送制御プロトコル、TCP)
TCPは、コネクション型のトランスポートプロトコルです。クライアントのソケットポートからサーバーの標準ポートに宛てて、接続が確立されます。TCPプロトコルでは、ネットワークエラーのために失われたパケットの再送信を行うなどの機能が組み込まれていて、パケットの整合性や到着順序が保証されています。
したがって、TCPプロトコルを使用するアプリケーションでは、データフロー制御をOSに任せればよく、アプリケーションで制御する必要はありません。
User Datagram Protocol (ユーザーデータグラム、UDP)
UDPはコネクションレス型のトランスポートプロトコルです。クライアントのソケットポートとサーバーの標準ポートの間でパケットの送受信が行われますが、接続の状態やデータの送受信は一切制御されません。つまり、パケットが紛失したり壊れていたとしても、OSは何もしてくれません。アプリケーション側で、必要な制御をすべて実装する必要があります。
その分、UDPのデータフローは高速です。ある種のサービスにとっては、とても重要な特徴です。
Internet Control Message Protocol (インターネット制御通知プロトコル、ICMP)
ICMPは、IPと同じネットワーク層プロトコルです。次に示すような、ネットワーク自体を分析ならびに制御するために使われます。
-
トラフィック量の制御
-
到達不能な宛先の検出
-
経路のリダイレクト
-
リモートホストのステータス確認
ICMPは ping
コマンドで使用されるプロトコルであり、別のレッスンで取り上げます。
IPv6
ここまでに、IPプロトコルのバージョン4、つまりIPv4について学習してきました。これは、ほぼすべてのネットワークおよびインターネット環境で使用される標準バージョンです。しかし、使用可能なIPv4アドレスが足りないことや、さまざまな種類のデバイスをインターネットに接続しておきたいというニーズ(IoTなど)から、IPプロトコルのバージョン6を使用することがますます一般的になっています。通常、IPv6と記述されています。
IPv6では、さまざまな機能が変更ないし追加されただけではなく、IPアドレス自体の形式も変更されています。
IPv6アドレスは128ビット(IPv4の4倍長)の数値です。16ビットずつ8つのグループに分け、コロン :
で区切って16進数で表現します。
例えば次のようになります。
2001:0db8:85a3:08d3:1319:8a2e:0370:7344
省略形
IPv6アドレスは長い(最長39文字)ので、状況に応じて一部を省略して短く表現する方法が定義されています。次のアドレス例を見てみましょう。
2001:0db8:85a3:0000:0000:0000:0000:7344
最初のルールは、16進数の上位の 0
を省略することです。0000
は1つの 0
に短縮できます。
2001:db8:85a3:0:0:0:0:7344
次のルールは、連続する 0
ブロックを、1つの ::
にまとめることです。0:0:0:0
は、次のように1つの ::
に短縮できます。
2001:db8:85a3::7344
ただし、この ::
による省略は、1箇所のみに限られます。最も長い部分を置き換えるのが普通です。
2001:db8:85a3:0000:0000:1319:0000:7344 2001:db8:85a3:0:0:1319:0:7344 2001:db8:85a3::1319:0:7344
IPv6のアドレス種別
IPv6には、次の3種類のアドレスがあります。
- ユニキャスト
-
1つのネットワークインターフェイスを表します。デフォルトでは、上位64ビットはネットワーク(サブネットプレフィックスないしネットワークID)を表し、下位64ビットはネットワークインターフェイス(インターフェイスID)を表します。
- マルチキャスト
-
複数のノードに割り当てられるアドレスです。マルチキャストアドレスに送信されたパケットは、そのグループに属する すべての インターフェイスに送信されます。なお、IPv4のブロードキャストに相当するアドレスはIPv6にはありません。
- エニーキャスト
-
複数のノードに割り当てられるアドレスですが、マルチキャストアドレスがすべてのノードに送られるのに対して、エニーキャストアドレスは いずれかの ノード(通常はネットワーク的に最も近いもの)に送られます。
IPv4とIPv6の違い
アドレスの違いだけではなく、IPバージョン4と6の間には他にもいくつもの違いがあります。重要ないくつかを紹介します。
-
ポート番号に違いはありません。ただし、宛先のIPアドレスとポート番号をセットで表現する場合に、IPv6ではIPアドレスを
[]
(角かっこ)で囲みます。(他にもIPv6アドレスであることを明示するために、アドレス全体を[]
で囲むことがあります)。- IPv4
-
200.216.10.15:443
- IPv6
-
[2001:db8:85a3:8d3:1319:8a2e:370:7344]:443
-
IPv6には、IPv4にあるようなブロードキャスト機能がありません。ただし、リンクローカルアドレスの一種である
ff02::1
を使用して、同じ結果を得ることができます。IPv4で宛先にマルチキャストアドレス224.0.0.1
を使用するのと同様に、ローカルネットワーク上のすべてのホストにパケットが到着します。 -
IPアドレスの自動設定機能。SLAAC(Stateless Address Autoconfiguration)と呼ばれる機能により、IPv6ホストはIPアドレスを自動構成できます。DHCPv6を利用することもできます。
-
IPv4パケットのTTL(Time to Live)フィールドは、IPv6ヘッダーの “HopLimit” に置き換えられました。働きは同じです。
-
すべてのIPv6インターフェースには、リンクローカルアドレスと呼ばれるローカルアドレスが自動的に割り当てられます。プレフィックスは
fe80::/10
です。 -
IPv4におけるARPに代わり、IPv6では Neighbor Discovery Protocol(近隣探索プロトコル、NDP)を使用します。NDPはARPよりも広範囲なネットワーク制御を行います。
演習
-
SMTPプロトコルのデフォルトは何番ポートですか?
-
システムが使用できるポート数はいくつですか?
-
すべてのパケットが正しい順序で間違いなく配信されることが保証されているトランスポート層のプロトコルは何ですか?
-
IPv6で、グループに属するすべてのインターフェイスにパケットを送信するためのパケット種別は何ですか?
発展演習
-
デフォルトでTCPプロトコルを使用するサービスの例を4つ挙げてください。
-
IPv4におけるTTLと同じ働きをする、IPv6ヘッダーのフィールドは何ですか?
-
Neighbor Discovery Protocol(NDP)が扱う情報にはどのようなものがありますか?
まとめ
このレッスンでは、TCP/IPプロトコルスタックで使用されるトランスポートプロトコルとサービスについて説明しました。
もう1つの重要なトピックとして、アドレスの違いを含むIPv6とIPv4の主な違いを説明しました。
このレッスンでは、以下の事柄を取り上げました。
-
ポート番号とサービスの関係
-
TCP(Transmission Control Protocol)
-
UDP(User Datagram Protocol)
-
ICMP(Internet Control Message Protocol)
-
IPv6アドレスとその省略表記方法
-
IPv6アドレス種別
-
IPv4とIPv6の主な違い
演習の解答
-
SMTPプロトコルのデフォルトは何番ポートですか?
25
-
システムが使用できるポート数はいくつですか?
65535
-
すべてのパケットが正しい順序で間違いなく配信されることが保証されているトランスポート層のプロトコルは何ですか?
TCP
-
IPv6で、グループに属するすべてのインターフェイスにパケットを送信するためのパケット種別は何ですか?
マルチキャスト
発展演習の解答
-
デフォルトでTCPプロトコルを使用するサービスの例を4つ挙げてください。
FTP、SMTP、HTTP、POP3、IMAP、SSH
-
IPv4におけるTTLと同じ働きをする、IPv6ヘッダーのフィールドは何ですか?
ホップリミット
-
Neighbor Discovery Protocol(NDP)が扱う情報にはどのようなものがありますか?
NDPでは、他のノード、アドレスの重複、ルート、DNSサーバー、ゲートウェイなど、ネットワークからさまざまな情報を取得できます。