Internet Protocol (IP) とは、OSI参照モデルにおけるネットワーク層に位置付けられる通信プロトコルである。
IPアドレス とは、IPネットワーク上において、パケットを送受信する機器を識別するための番号である。IPアドレスを32ビット長で表すIPv4と128ビット長で表すIPv6の2つのプロトコルがある。
IPv4のIPアドレスは32ビットで、ある端末が属しているネットワークを示すネットワーク部と、ネットワーク内でその端末を特定するホスト部から構成される。ホスト部のすべてを0としたIPアドレスを「ネットワークアドレス」と呼ぶ。ネットワークアドレスを表記する際には、アドレス後ろに「/」とネットワーク部の長さを付加する。たとえば、IPアドレスが192.168.10.2の端末があり、ネットワーク部が24ビットであった場合、この端末のネットワークアドレスは「192.168.10.0/24」と表す。
ネットワーク部 | ホスト部 |
インターネットでは企業などの組織ごとに固有のネットワークアドレスを割り当てている。しかし、企業であれば、事業部や部署ごとにネットワークを分割したい場合がある。このネットワークの分割を行うのがサブネット化である。たとえば、クラス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つのアドレスクラスに分けられている。
クラス | アドレス空間の範囲 | 備考 |
---|---|---|
クラス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アドレスとは、プライベートネットワーク(外部から利用できない社内LANなど)のアドレスとして使うことができる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 |
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 (Internet Protocol Version 4) ヘッダの構成は次のとおり。
TOSフィールドの先頭6ビットはDSCP (Differentiated Services Code Point)と呼ばれ、64段階の転送優先順位を指定する。
ビット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 |
IPv6では、DHCPサーバーが無くてもルーターさえあれば、自動的にIPアドレスとデフォルト経路がホストに設定される。
IPv6ノードのネットワークインタフェースには、必ずリンクコントロールアドレスという、そのリンクだけに到達性のあるアドレスが付く。これは「fe80::」というプリフィックスと、MACアドレスから生成されたインタフェースIDから生成される。
また、ルーターは自分の接続しているネットワークに対して、定期的にあるいは要請に基づいて、そのネットワークに関する情報(RA: Router advertisement)を送信している。
この情報に含まれるプリフィックス情報と一意のインタフェースIDを用いて、IPv6ホストはグローバルアドレスを生成する。同時に、そのIPv6ホストは受信したRAを送信したルーターをデフォルト経路にすることで、グローバルIPv6ネットワークの接続性を確保する。
IPv6のIPアドレスは128ビットで、プレフィックスとインタフェースIDから構成される。
プレフィックス | インタフェースID |
IPv6のIPアドレス設定方法には、次に示す3種類の方法がある。
設定方法 | 備考 | |
---|---|---|
手動設定 | 固定IPアドレスを手動で設定する | |
自動設定 | ステートフル設定 | DHCPv6による自動設定 |
ステートレス設定 | ルータ広告(RA)による自動設定 |
IPv6においては、ネットワークインタフェースに対して何もしなくてもアドレスが割り当てられる。インタフェースに自動的に付与されるこのアドレスをリンクローカルアドレスという。
ステートフル自動設定は、各ノードに割り当てるIPv6アドレスをDHCPサーバーで管理し、割り当てる。どのノードにどのIPv6を割り当てたか、どのアドレスを割り当てるかなどはDHCPサーバー側で管理できる。DNSサーバーアドレスや(DHCPで配布可能な)各種情報も自動設定できる。
ステートレス自動設定はIPv6において導入された自動設定法である。ステートレス自動設定においては、ホストにIPアドレスを手動設定する必要はなく、ルータにだけ設定すればよい。サーバを必要とするとこもない。DHCPサーバーが無い環境でも、IPv6ネットワークに接続するだけで自動的にインタフェースアドレスを生成し、割り当てる。ノードが接続されているネットワークのアドレス(プレフィックス)を自動的に取得し、それに合うIPv6アドレスを自動生成する。デフォルトゲートウェイ情報も自動的に取得し、設定する。ただし、DNSサーバーなど情報は設定できない。
ルータは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) |