IP(インターネット層)の基礎まとめ【IPv4・IPv6・ルーティングの仕組みを解説】

IPに関するブログのアイキャッチ画像 ネットワーク
広告

 このページでは,基本情報技術者試験をはじめとする情報処理技術者試験で必須となる,IP(インターネット層)について,TCP/IPのインターネット層の役割,IPv4・IPv6のアドレス体系,ルーティング,NAT,ICMPなどのしくみをシンプルにまとめています。各用語やしくみを理解して,ネットワーク通信の基礎を押さえましょう。

  1. インターネット層とは(役割と機能)
  2. IP(Internet Protocol)とは(基本概要)
    1. IPアドレス(IPv4)とは(構造と役割)
      1. IPアドレスの表記(例とビット構造)
      2. ネットワークアドレスとホストアドレスとは
      3. グローバルIPアドレスとプライベートIPアドレスとは
      4. クラスとは
      5. サブネットワークとは(分割と活用)
      6. CIDR(Classless Inter-Domain Routing)とは(効率的なアドレス利用)
    2. ARP(Address Resolution Protocol)とは(IP→MAC解決)
    3. NAT(Network Address Translation;ネットワークアドレス変換)とは(端末1台の接続)
      1. NAPT(Network Address Port Translation)とは(複数端末の同時接続)
    4. ルーティングとは(経路選択の基本)
      1. スタティックルーティングとは(手動経路設定)
      2. ダイナミックルーティングとは(自動経路更新)
      3. ルーティングプロトコル(種類と特徴)
        1. RIP(Routing Information Protocol)とは
    5. IPv6とは(IPv4の課題と解決)
      1. IPv4の問題点(枯渇と課題)
      2. IPv6アドレスの表記(例とビット構造)
      3. ネットワークプレフィックスとインタフェースIDとは
      4. 通信の効率化(ヘッダ設計)
      5. セキュリティ機能(IPsec必須)
      6. アドレスの自動設定機能
      7. リンクローカルアドレスとは
    6. IPv4からIPv6への移行とは
      1. デュアルスタックとは
      2. トンネリングとは
  3. ICMP(Internet Control Message Protocol)とは(エラー通知と診断)
    1. pingとは(疎通確認コマンド)
  4. まとめ
広告

インターネット層とは(役割と機能)

 TCP/IPのインターネット層は,OSI基本参照モデルのネットワーク層に相当します。役割は,IPアドレスにより(ルーターなどで分割された)ネットワークやホストを識別して,最適な通信経路を選択しながら,データ(パケット)を送り届けることです。

※ ホスト…コンピューターネットワークに接続されたIPアドレスを持つコンピューターやネットワーク機器のこと

IP(Internet Protocol)とは(基本概要)

 IPは,コネクションレス型のプロトコルで,インターネットに接続された端末間でパケットの送受信を行います。次のような役割があります。

※ コネクションレス型では,コネクションを確立せず,送信側が一方的にデータを送信する。受信側が正常に受け取っているかは確認せず次々とデータを送るため,大量のデータを高速に送信することができる

※ IPパケットが消失した場合は,TCPが補完の役目を果たす。TCPについては,「TCP・UDP(トランスポート層)の基礎まとめ」を参照

  • アドレッシング(IPアドレスの管理)
  • ルーティング(通信経路の選択)

IPアドレス(IPv4)とは(構造と役割)

 IPアドレスは,通信相手を一意に識別するための番号です。ネットワークに接続されている機器(サーバーや端末,ルーターなど)に割り振られます。

IPアドレスの表記(例とビット構造)

 IPアドレスは「192.168.1.1」などと表記しますが,実際は32ビット(2進数32桁)のビット列です。この32ビットを8ビットずつに区切り,それぞれを10進数に変換しピリオドでつないでいます。

IPアドレスの表記に関する説明画像

ネットワークアドレスとホストアドレスとは

 IPアドレスは,ネットワークアドレス部ホストアドレス部から構成されています。ネットワークアドレスはネットワーク自体を示すアドレスで,ホストアドレスはネットワーク内の個々のホスト(ルーターやサーバー,PCなど)に割り当てられるアドレスです。下図のPC1の場合,IPアドレスの上位24ビット(IPアドレスの後ろの「/ 24(プレフィックス)の部分」)がネットワークアドレス部で下位8ビット(=32ビット-24ビット)がホストアドレス部になります。

ネットワークアドレスとホストアドレスの説明画像

 ネットワークアドレスとホストアドレスは,サブネットマスクを使用して求めることができます。

※ サブネットマスク…ネットワークアドレス部を1,ホストアドレス部を0とした32ビットのビット列

サブネットマスクの説明画像

 また,ネットワークAで割り当てることのできるホストの台数は次のようになります。

ネットワークアドレスとブロードキャストアドレスの説明画像
ネットワークアドレスホストアドレス部が,すべて0のIPアドレス。
(ルーターで区切られた)ネットワーク自体を示す
ブロードキャストアドレスホストアドレス部が,すべて1のIPアドレス。
パケットを,同じネットワークのすべてのホストに対して送信する場合に使用する

グローバルIPアドレスとプライベートIPアドレスとは

 グローバルIPアドレスは,インターネットに接続されている機器を識別するために使用されている,重複のない世界でただ一つのアドレスです。ほとんどの場合,ISPと契約し,インターネットに接続した際に,自動的に割り振られます。

※ グローバルIPアドレスは,重複が許されないため,世界的に管理されている

 プライベートIPアドレスは,(ルーターの内側の)ネットワークに接続されている機器を識別するために使用するアドレスです。DHCPサーバー機能を使用して自動的に割り振ったり,ネットワークの管理者が手動で割り振ったりします。

 なお,プライベートIPアドレスとして使用できる範囲は,次のように決められています。

クラスA10.0.0.0 ~ 10.255.255.255
クラスB172.16.0.0 ~ 172.31.255.255
クラスC192.168.0.0 ~ 192.168.255.255

※ プライベートIPアドレスは,ネットワーク内でのみ使用できる。インターネットでは使用できない

※ プライベートIPアドレスは,IPv4のIPアドレスを有効活用するために考え出された(IPv4のIPアドレス(約43億個)が足りないという枯渇問題が背景にある)

※ DHCPについては「」を参照

※ クラスについては後述

 IPアドレスの具体的な割り振りや通信の流れについては、「インターネットへの接続と通信の流れ(インターネットへの接続方法と通信の仕組み)」を参照してください。

クラスとは

 クラスとは,ネットワークの規模別にグローバルIPアドレスを分類するもので,先頭の4ビットの値によりクラスとサブネットマスクが決まります。

※ 初期のIPは,クラスにより分割されていた

IPアドレスのクラスに関する説明画像
IPアドレスの範囲ネットワークの数使用可能なホストの数
クラスA0.0.0.0 ~ 127.255.255.25527=128224-2=16,777,214
クラスB128.0.0.0 ~ 191.255.255.255214=16,384216-2=65,534
クラスC192.0.0.0 ~ 223.255.255.255221=2,097,15228-2=254

サブネットワークとは(分割と活用)

 サブネットワークは,IPアドレスを有効活用するために生まれた概念です。ホストアドレスの一部をネットワークアドレスに割り当てることで,サブネットワークに分割することができます(サブネットマスクの長さを拡張することで設定できます)。

※ IPv4のIPアドレス(約43億個)が足りないという枯渇問題が背景にある

※ クラスAやクラスBの場合,使用できるネットワークアドレス数は少なく,ホストアドレス数は多い(多すぎる)。そのため,未使用のIPアドレスが多数発生する

サブネットワークの説明画像

CIDR(Classless Inter-Domain Routing)とは(効率的なアドレス利用)

 CIDRは,連続する複数のクラスCのネットワークを1つのネットワーク(スーバーネットワーク)に集約するというものです。

CIDRの説明画像

 また,CIDRを適用すると,ルーティングテーブルの情報量を少なくすることができ,経路選択にかかる時間や,経路情報を共有するためにかかる時間を短縮することができます。

※ ルーティングの詳細は後述

CIDRでルーティングテーブルを集約できることに関する説明画像

ループバックアドレスとは

 ループバックアドレス(127.x.x.x)は,コンピューター自身を示すアドレスで,コンピューター内で通信を行う場合に使用します。

※ 通常は,127.0.0.1を使用する

ARP(Address Resolution Protocol)とは(IP→MAC解決)

 ARPとは,IPアドレスを基に,NIC(ネットワークインタフェースカード)に割り当てられたMACアドレスを調べるためのプロトコルです。

 イーサネットで通信する際には, IPアドレスを使用して通信相手を指定しますが,物理的に隣接ノード(中継ノードや通信相手となるノード)にデータを送る際には,MACアドレスを使用します。このとき,隣接ノードのMACアドレスは分かりませんのでARPにより調べ,ARPテーブルに設定する必要があります。

 詳細は,「LAN(ネットワークインタフェース層)の基礎まとめ(ARP(Address Resolution Protocol)とは)」を参照してください。

NAT(Network Address Translation;ネットワークアドレス変換)とは(端末1台の接続)

 NATは,内部ネットワークの端末からインターネットに接続する際に,プライベートIPアドレスをグローバルIPアドレスに1対1で変換する技術をいいます。ほとんどのルーターに,このNAT機能が備わっています。

NATの説明画像

 この場合,内部ネットワークからインターネットへ接続する際に,送信元IPアドレスが変換されます(SNAT)。

※ SNAT(Source NAT)…送信元IPアドレスを変換する方式。あて先IPアドレスを変換する方式はDNAT(Destination NAT)という

natの具体例に関する説明画像

NAPT(Network Address Port Translation)とは(複数端末の同時接続)

 NAPTは,内部ネットワークの端末からインターネットに接続する際に,プライベートIPアドレスとポート番号を,1つのグローバルIPアドレスと端末ごとに異なるポート番号を使用して変換することにより,複数の端末を同時にインターネットに接続する技術をいいます。

※ NAPTはIPマスカレードともいう

NAPTの説明画像

 NATやNAPT(SNAT,DNAT)の具体的な流れについては、「インターネットへの接続と通信の流れ(インターネットへの接続方法と通信の仕組み)」を参照してください。

広告

ルーティングとは(経路選択の基本)

 ルーティングとは,ルーターによる経路選択のことをいいます。

 ルーティングテーブルとは,経路情報を集めたもので,ルーターがデータ(パケット)の転送先を決めるために参照します。

スタティックルーティングとは(手動経路設定)

 スタティックルーティングとは,管理者が手動で経路情報を設定するものです。経路情報は自動で更新されることはないため,ルーター同士で経路情報を交換するトラフィックは発生しませんが,大規模なネットワークでは管理が手間でコストもかかります。

※ スタティックルーティングは,小規模なネットワークで使われることが多い

ダイナミックルーティングとは(自動経路更新)

 ダイナミックルーティングとは,自動で経路情報を設定するものです。隣接するルーター同士が定期的に経路情報を交換し,ルーティングテーブルの経路情報を更新します。そのため,ネットワーク構成の変化に柔軟に対応できますし,ネットワークに障害が発生した場合でも,自動的に代替経路に切り替えることができます。しかし,経路情報を交換するトラフィックが発生しますので,ネットワークに負荷がかかります。

※ ダイナミックルーティングは,大規模なネットワークや,不通が許されない場合に使われることが多い

ルーティングプロトコル(種類と特徴)

 ルーティングプロトコルには,次のようなものがあります。

RIPディスタンスベクタ型。メトリックとして,中継するルーターの数を表すホップ数が用いられる

※ ディスタンスベクタ型とは,距離を基準にして経路情報を決定するアルゴリズムで,隣接するルーターと経路情報を交換し,新しい経路や短い経路が見つかった場合に経路情報を更新する

※ メトリックとは,経路を決定するための情報のことで,あて先ネットワークまでの距離や時間のことをいう

※ ホップとは,中継するルーターのことをいい,ホップ数とは中継するルーターの数のことをいう

RIP(Routing Information Protocol)とは

 RIPとは,ディスタンスベクタ型のルーティングプロトコルで,メトリックとして,中継するルーターの数を表すホップ数が用いられます。

※ ディスタンスベクタ型とは,距離を基準にして経路情報を決定するアルゴリズムで,隣接するルーターと経路情報を交換し,新しい経路や短い経路が見つかった場合に経路情報を更新する

※ メトリックとは,経路を決定するための情報のことで,あて先ネットワークまでの距離や時間のことをいう

※ ホップとは,中継するルーターのことをいい,ホップ数とは中継するルーターの数のことをいう

RIPの説明画像

 このように,各ルーターのルーティングテーブルには,あて先ネットワークと,ネクストホップ(データ(パケット)を中継するルーター),メトリック(中継するルーターの数)が設定されます。また,新しいネットワークが追加された場合は,次のように動作します。

RIPで新しいネットワークが追加された場合の動作に関する説明画像

広告

IPv6とは(IPv4の課題と解決)

 IPv6は,(これまでに説明した)IPv4の問題点を解決するために導入されました。

IPv4の問題点(枯渇と課題)

IPアドレスの枯渇CIDRやプライベートIPアドレスなど,IPアドレスを効果的に利用する手段が用いられたが,IPv4のグローバルIPアドレスは,2011年春に事実上枯渇した
経路情報の増大ルーティングテーブルの情報量が増大し,ルーティングに時間がかかる
セキュリティの問題IPv4は,セキュリティを考慮した設計になっていない
設定作業が手間新しくサーバーを設置する場合,DHCPを使用した場合でも,DHCPサーバーに設定をしなければならないため,手間である

IPv6アドレスの表記(例とビット構造)

 IPv6では,アドレス長が32ビットから128ビットに拡張され,事実上,無制限に割り振ることができるようになりました(クラスは廃止されました)。

IPv6のアドレスの表記に関する説明画像

ネットワークプレフィックスとインタフェースIDとは

 IPv6のIPアドレスは,ネットワークプレフィックス(上位64ビット)とインタフェースID(下位64ビット)から構成されています。ネットワークプレフィックスはネットワーク自体を示すアドレスで,IPv4のネットワークアドレスに相当します。インタフェースIDはネットワーク内の個々のホスト(ルーターやサーバー,PCなど)に割り当てられるアドレスで,IPv4のホストアドレスに相当します。

※ IPv6のIPアドレスにはプライベートIPアドレスというものはない。ルーターのWAN(インターネット)側も,LAN側もグローバルIPアドレスを使用する⇒NATやNAPTは必要ない

※ セキュリティについては,LANにもグローバルIPアドレスを使用することから,WAN(インターネット)側からの脅威に晒されるとイメージするかもしれないが,WAN(インターネット)側からのパケットをフィルタリングすることにより,IPv4(プライベートIPアドレスを使用した場合)と同等のセキュリティを確保することができる

ネットワークプレフィックスとインタフェースIDの説明画像

通信の効率化(ヘッダ設計)

 IPv6ヘッダを簡素化(IPv4ヘッダ内の必要性の低いフィールドを削除し,拡張ヘッダに移行)したため,データ(パケット)を効率よく処理できるようになり,ルーターの負荷が減りました。

セキュリティ機能(IPsec必須)

 IPv6では,IPsecの実装が必須になりました。サーバー認証やデータ認証,データの暗号化により,第三者による盗聴や改ざん,なりすましが不可能になりました。

※ IPsecについては,「」を参照

アドレスの自動設定機能

 新しくサーバーを設置した場合,ネットワークプレフィックスはプロバイダーから割り振られ,インタフェースIDは自身のMACアドレスを使用したり,ランダムな値を割り当てるなどして,自動で設定されます(DHCPサーバーは必要ありません)。

※ 手動で設定することもできる

リンクローカルアドレスとは

 IPv6の場合,上述したIPアドレスのほかに,リンクローカルアドレスも割り当てられます。リンクローカルアドレスは,(ルーターの内側の)ネットワークに接続されている機器を識別したり,(DHCPサーバーがなくても)IPアドレスを自動で設定するために使用され,IPv6ではインタフェースが有効な場合,常に割り当てられます。

※ IPv6の場合,1つのインタフェースに,少なくとも2つ以上のアドレスが割り当てられる(リンクローカルアドレスだけしか割り当てられていない場合は,インターネットにはアクセスできない)

リンクローカルアドレスの説明画像

IPv4からIPv6への移行とは

 IPv4とIPv6は,同じネットワークで利用することができますが,IPv4はIPv4同士,IPv6はIPv6同士でしか通信できません(IPv4とIPv6では通信できません)。

デュアルスタックとは

 デュアルスタックとは,IPv4とIPv6の両方に対応したシステムのことをいいます。

デュアルスタックの説明画像

トンネリングとは

 トンネリングでは,IPv6のパケットをIPv4パケットでカプセル化し,IPv4ネットワークを経由して送受信します。

トンネリングに関する説明画像

ICMP(Internet Control Message Protocol)とは(エラー通知と診断)

 ICMPとは,パケットの転送エラーが発生した場合に,そのエラーを通知するためのプロトコルです。あて先ホストが存在するかどうかの診断にも用いられます。

※ IPは,コネクションレス型のプロトコルで,受信側がパケットを正常に受け取っているかどうかは確認しない。そのため,ICMPが転送エラーを検出し送信元にエラーを通知する

pingとは(疎通確認コマンド)

 pingは,あて先ホストが存在するかどうかを確認するコマンドです。ICMPエコー要求とICMPエコー応答の通知機能を使用して疎通確認をしたい端末に向けてパケットを送信し,正しく返信するかを確認します。

pingの説明画像

まとめ

 今回は,IP(インターネット層)についてシンプルにまとめてみました。IPv4・IPv6のアドレス体系やルーティング,NAT,ICMPなど,ネットワーク通信の基礎を理解することが大切です。繰り返し確認して理解を深めましょう。

 理解が進んだら,過去問題等にも挑戦してみてください。