IP (Internet Protocol)

Internet Protocol (IP) とは、OSI参照モデルにおけるネットワーク層に位置付けられる通信プロトコルである。

IPアドレス

IPアドレス とは、IPネットワーク上において、パケットを送受信する機器を識別するための番号である。IPアドレスを32ビット長で表すIPv4と128ビット長で表すIPv6の2つのプロトコルがある。

Internet Protocol version 4 (IPv4)

IPv4のIPアドレスは32ビットで、ある端末が属しているネットワークを示すネットワーク部と、ネットワーク内でその端末を特定するホスト部から構成される。ホスト部のすべてを0としたIPアドレスを「ネットワークアドレス」と呼ぶ。ネットワークアドレスを表記する際には、アドレス後ろに「/」とネットワーク部の長さを付加する。たとえば、IPアドレスが192.168.10.2の端末があり、ネットワーク部が24ビットであった場合、この端末のネットワークアドレスは「192.168.10.0/24」と表す。

IPv4アドレスの構成(32ビット)
ネットワーク部 ホスト部

インターネットでは企業などの組織ごとに固有のネットワークアドレスを割り当てている。しかし、企業であれば、事業部や部署ごとにネットワークを分割したい場合がある。このネットワークの分割を行うのがサブネット化である。たとえば、クラスBのネットワークアドレスが与えられたネットワークには65,534台の端末を収容できるが、16ビットのホスト部のうち8ビットをネットワークアドレスに流用すれば、それぞれ254台の端末を収容可能な256のサブネットに分割できる。

通信プロトコルにIPを用いるネットワークでは、同じイーサネットセグメントの端末には同一のネットワークアドレスに属するようIPアドレスを割り当てる。また、異なるイーサネットセグメントにまたがって同じネットワークアドレスに属するIPアドレスを割り当ててはならない。すなわち、1つのイーサネットセグメントは一つのサブネットと同意である。

そして、パケットを直接に送付できるのは、同じサブネットに接続された端末同士に限られる。接続したサブネットが異なる場合は、ルータやL3スイッチにパケットを中継してもらう必要がある。そこで、端末に対して「デフォルトゲートウェイ」となる端末のIPアドレスを設定しておく。デフォルトゲートウェイとは、自端末と異なるネットワーク端末と通信する際に、最初にパケットの中継を依頼するルータのことである。このルータは自端末と同じサブネットに接続されていなければならない。

通信を行う端末は、サブネットマスクと通信相手のIPアドレスの論理積から相手のネットワークアドレスを取り出す。それが自分と同じネットワークアドレスと一致すれば、パケットを相手に直接送る。自分のネットワークアドレスと異なっていれば、パケットをデフォルトゲートウェイに送って中継を依頼する。ルータは受け取ったパケットに格納された宛先のIPアドレスを見て、正しい宛先へ届ける。

ただし、送信元の端末からパケットを受け取ったルータが、宛先の端末に直接パケットを届けることができるとは限らない。大規模な組織やインターネットでは、複数のルータを経て届けられることもある。パケットを中継するルータは、宛先までの適切な経路を選択しなければならない。この経路を決定する動作がルーティング(経路選択)である。

IPアドレスを32ビット長で表すIP。IPアドレスは32ビットの数値であるが、通常は8ビットごとに区切った10進数をドットで繋いで表記する。32ビットのアドレス空間は、ネットワーク部とホスト部で構成される。ネットワーク部はネットワークを識別するための部分で、そのネットワーク内に存在する機器を識別するのがホスト部である。ネットワーク部とホスト部の区分はサブネットマスクを用いる。

IPアドレスは次の5つのアドレスクラスに分けられている。

IPv4のアドレスクラス
クラス アドレス空間の範囲 備考
クラスA 0.0.0.0 ~ 127.255.255.255
クラスB 128.0.0.0 ~ 191.255.255.255
クラスC 192.0.0.0 ~ 223.255.255.255
クラスD 224.0.0.0 ~ 239.255.255.255 IPマルチキャスト専用
クラスE 240.0.0.0 ~ 255.255.255.255 将来に備えて予約されているため、使用できない。
RFC 1112 Host Extensions for IP Multicastingの「4. HOST GROUP ADDRESS」で規定されている。

プライベートIPアドレス

プライベートIPアドレスとは、プライベートネットワーク(外部から利用できない社内LANなど)のアドレスとして使うことができるIPアドレスである。IPv4では、プライベートIPアドレスとして次のアドレス空間が予約されている。

IPv4のプライベートIPアドレス
クラス アドレス空間の範囲
クラスA 10.0.0.0 ~ 10.255.255.255
クラスB 172.16.0.0 ~ 172.31.255.255
クラスC 192.168.0.0 ~ 192.168.255.255

Classless Inter-Domain Routing (CIDR)

CIDR(サイダー)とは、クラスを使わずにネットワーク部とホスト部を構成する方法である。ネットワーク部に相当する部分をプリフィクスと呼び、可変長のビット数として表す。

CIDRでは、IPアドレスの範囲を「address / prefix 」と表す。prefix はネットワーク部に相当するビット数である。たとえば、「192.168.1.0/24」は「192.168.1.0」から「192.168.1.255」までの範囲を表す。

ブロードキャストアドレス

IPv4のブロードキャストアドレスにはLimited broadcast addressとDirected broadcast addressの2種類がある。

Limited broadcast addressは255.255.255.255である。

Directed broadcast addressはホスト部のビットをすべて1にしたアドレスである。たとえば、192.168.1.1/24のDirected broadcast addressは192.168.1.255であり、192.168.1.1/16のDirected broadcast addressは192.168.255.255である。

IPv4ヘッダ

IPv4 (Internet Protocol Version 4) ヘッダの構成は次のとおり。

IPv4ヘッダ

Internet Header Length (IHL)
Internet Header Length (IHL) とは、IPヘッダの長さを表すフィールドである。IPv4では、IPヘッダの長さが20バイトから60バイトまでの可変であるが、常に4バイト(32ビット)の倍数になるため、IHLは4バイト単位でIPヘッダ長を表す。つまり、IHLが5の場合は20バイトであることを表し、15の場合は60バイトであることを表す。
Type of Service (TOS)
Type of Service (TOS) とは、通信のQoSを制御する目的で、パケットを受け取ったルータに対して処理の優先度を指定するために使用されるフィールドである。先頭の3ビットは「IPプレシデンス」と呼ばれ、8段階の転送優先順位を指定する。

TOSフィールドの先頭6ビットはDSCP (Differentiated Services Code Point)と呼ばれ、64段階の転送優先順位を指定する。

フラグ
フラグはIPパケットの分割を制御するときに使用される。
IPヘッダのフラグ
ビット0 予約(未使用)
ビット1 DF(Don't Fragment)ビット
ビット2 MF(More Fragment)ビット

ビット1は「DF(Don't Fragment)ビット」と呼ばれ、分割を許可するかしないかを表す値である。0なら分割可、1なら分割不可である。

ビット2は「MF(More Fragment)ビット」と呼ばれ、フラグメントが最後かどうかを表す値である。0なら最後のフラグメントであることを表し、1なら後続のパケットが存在することを表す。

プロトコル番号
プロトコル番号
# Protocol
1 ICMP
2 IGMP
4 IPv4
6 TCP
8 EGP
9 IGP
17 UDP
41 IPv6
46 RSVP
47 GRE
50 ESP
51 AH
58 IPv6-ICMP
94 IPIP
112 VRRP
115 L2TP

Internet Protocol version 6 (IPv6)

IPv6では、DHCPサーバーが無くてもルーターさえあれば、自動的にIPアドレスとデフォルト経路がホストに設定される。

IPv6ノードのネットワークインタフェースには、必ずリンクコントロールアドレスという、そのリンクだけに到達性のあるアドレスが付く。これは「fe80::」というプリフィックスと、MACアドレスから生成されたインタフェースIDから生成される。

また、ルーターは自分の接続しているネットワークに対して、定期的にあるいは要請に基づいて、そのネットワークに関する情報(RA: Router advertisement)を送信している。

この情報に含まれるプリフィックス情報と一意のインタフェースIDを用いて、IPv6ホストはグローバルアドレスを生成する。同時に、そのIPv6ホストは受信したRAを送信したルーターをデフォルト経路にすることで、グローバルIPv6ネットワークの接続性を確保する。

IPv6のIPアドレス

IPv6のIPアドレスは128ビットで、プレフィックスとインタフェースIDから構成される。

IPv6アドレスの構成(128ビット)
プレフィックス インタフェースID

IPv6のIPアドレス設定方法には、次に示す3種類の方法がある。

IPv6のアドレス設定方法
設定方法 備考
手動設定 固定IPアドレスを手動で設定する
自動設定 ステートフル設定 DHCPv6による自動設定
ステートレス設定 ルータ広告(RA)による自動設定

IPv6においては、ネットワークインタフェースに対して何もしなくてもアドレスが割り当てられる。インタフェースに自動的に付与されるこのアドレスをリンクローカルアドレスという。

ステートフル自動設定は、各ノードに割り当てるIPv6アドレスをDHCPサーバーで管理し、割り当てる。どのノードにどのIPv6を割り当てたか、どのアドレスを割り当てるかなどはDHCPサーバー側で管理できる。DNSサーバーアドレスや(DHCPで配布可能な)各種情報も自動設定できる。

ステートレス自動設定はIPv6において導入された自動設定法である。ステートレス自動設定においては、ホストにIPアドレスを手動設定する必要はなく、ルータにだけ設定すればよい。サーバを必要とするとこもない。DHCPサーバーが無い環境でも、IPv6ネットワークに接続するだけで自動的にインタフェースアドレスを生成し、割り当てる。ノードが接続されているネットワークのアドレス(プレフィックス)を自動的に取得し、それに合うIPv6アドレスを自動生成する。デフォルトゲートウェイ情報も自動的に取得し、設定する。ただし、DNSサーバーなど情報は設定できない。

ルータ広告 (RA: Router Advertisement)

ルータはRAを有効にしたインタフェースへ定期的にRAパケットを広告している。このパケットには、そのネットワークのプレフィックス(通常64ビット)やその寿命などのパラメータが含まれている。端末がそのネットワークに繋がり、RAパケットを受信すると、端末はRAパケットのプリフィックスと自分のリンクローカルアドレスの下位64ビットとを組み合わせて、IPv6アドレスを生成する。そしてRAパケットの送信元をデフォルトルータとして扱う。なお、端末のリンクローカルアドレスは端末のイーサネットカードのMACアドレス等からネットワーク内で一意になるように端末内で自動的に生成される。

ループバックアドレス

ループバックアドレスとは、IPネットワーク上において、自分自身を表す特別なIPアドレスである。

ループバックアドレス
IPのバージョン ループバックアドレス
IPv4 127.0.0.1
IPv6 0:0:0:0:0:0:0:1(省略形は::1)