基本情報技術者試験など情報処理技術者試験を受験する方にとっては必須の,IPについてシンプルにまとめています。はじめに,TCP/IPのインターネット層の説明をし,次に,IPの説明をしています。IPについては,IPの説明・役割,IPv4のIPアドレス(IPアドレスの表記,ネットワークアドレスとホストアドレス,サブネットマスク,ブロードキャストアドレス,グローバルIPアドレス,プライベートIPアドレス,クラス,サブネットワーク,CIDR,ARP,NAT,NAPT(IPマスカレード),ルーティング(スタティックルーティング,ダイナミックルーティング),ルーティングプロトコル(RIP)),IPv6(IPv4の問題点,アドレス長の拡張と表記,ネットワークプレフィックスとインタフェースID,通信の効率化,セキュリティ機能,アドレスの自動設定機能,リンクローカルアドレス),IPv4からIPv6への移行(デュアルスタック,トンネリング)を説明しています。また,ICMP(ping)の説明もしています。特に,大切なところだと思いますので,繰り返し読んで理解できるよう努めましょう。
インターネット層
TCP/IPのインターネット層は,OSI基本参照モデルのネットワーク層に相当します。役割は,IPアドレスにより(ルーターなどで分割された)ネットワークやホストを識別して,最適な通信経路を選択しながら,データ(パケット)を送り届けることです。
※ ホスト…コンピューターネットワークに接続されたIPアドレスを持つコンピューターやネットワーク機器のこと
IP(Internet Protocol)
IPは,コネクションレス型のプロトコルで,インターネットに接続された端末間でパケットの送受信を行います。次のような役割があります。
※ コネクションレス型では,コネクションを確立せず,送信側が一方的にデータを送信する。受信側が正常に受け取っているかは確認せず次々とデータを送るため,大量のデータを高速に送信することができる
※ IPパケットが消失した場合は,TCPが補完の役目を果たす。TCPについては,「」を参照
- アドレッシング(IPアドレスの管理)
- ルーティング(通信経路の選択)
IPアドレス(IPv4)
IPアドレスは,通信相手を一意に識別するための番号です。ネットワークに接続されている機器(サーバーや端末,ルーターなど)に割り振られます。
IPアドレスの表記
IPアドレスは「192.168.1.1」などと表記しますが,実際は32ビット(2進数32桁)のビット列です。この32ビットを8ビットずつに区切り,それぞれを10進数に変換しピリオドでつないでいます。
ネットワークアドレスとホストアドレス
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アドレスとして使用できる範囲は,次のように決められています。
クラス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 |
※ プライベートIPアドレスは,ネットワーク内でのみ使用できる。インターネットでは使用できない
※ プライベートIPアドレスは,IPv4のIPアドレスを有効活用するために考え出された(IPv4のIPアドレス(約43億個)が足りないという枯渇問題が背景にある)
※ DHCPについては「」を参照
※ クラスについては後述
IPアドレスの具体的な割り振りや通信の流れについては、「インターネットへの接続と通信の流れ-インターネットへの接続 -情報処理シンプルまとめ」を参照してください。
クラス
クラスとは,ネットワークの規模別にグローバルIPアドレスを分類するもので,先頭の4ビットの値によりクラスとサブネットマスクが決まります。
※ 初期のIPは,クラスにより分割されていた
IPアドレスの範囲 | ネットワークの数 | 使用可能なホストの数 | |
---|---|---|---|
クラスA | 0.0.0.0 ~ 127.255.255.255 | 27=128 | 224-2=16,777,214 |
クラスB | 128.0.0.0 ~ 191.255.255.255 | 214=16,384 | 216-2=65,534 |
クラスC | 192.0.0.0 ~ 223.255.255.255 | 221=2,097,152 | 28-2=254 |
サブネットワーク
サブネットワークは,IPアドレスを有効活用するために生まれた概念です。ホストアドレスの一部をネットワークアドレスに割り当てることで,サブネットワークに分割することができます(サブネットマスクの長さを拡張することで設定できます)。
※ IPv4のIPアドレス(約43億個)が足りないという枯渇問題が背景にある
※ クラスAやクラスBの場合,使用できるネットワークアドレス数は少なく,ホストアドレス数は多い(多すぎる)。そのため,未使用のIPアドレスが多数発生する
CIDR(Classless Inter-Domain Routing)
CIDRは,連続する複数のクラスCのネットワークを1つのネットワーク(スーバーネットワーク)に集約するというものです。
また,CIDRを適用すると,ルーティングテーブルの情報量を少なくすることができ,経路選択にかかる時間や,経路情報を共有するためにかかる時間を短縮することができます。
※ ルーティングの詳細は後述
ARP(Address Resolution Protocol)
ARPとは,IPアドレスを基に,NIC(ネットワークインタフェースカード)に割り当てられたMACアドレスを調べるためのプロトコルです。
イーサネットで通信する際には, IPアドレスを使用して通信相手を指定しますが,物理的に隣接ノード(中継ノードや通信相手となるノード)にデータを送る際には,MACアドレスを使用します。このとき,隣接ノードのMACアドレスは分かりませんのでARPにより調べ,ARPテーブルに設定する必要があります。
詳細は,「LAN(ネットワークインタフェース層)-ARP(Address Resolution Protocol) -情報処理シンプルまとめ」を参照してください。
NAT(Network Address Translation;ネットワークアドレス変換)
NATは,内部ネットワークの端末からインターネットに接続する際に,プライベートIPアドレスをグローバルIPアドレスに1対1で変換する技術をいいます。ほとんどのルーターに,このNAT機能が備わっています。
この場合,内部ネットワークからインターネットへ接続する際に,送信元IPアドレスが変換されます(SNAT)。
※ SNAT(Source NAT)…送信元IPアドレスを変換する方式。あて先IPアドレスを変換する方式はDNAT(Destination NAT)という
NAPT(Network Address Port Translation)
NAPTは,内部ネットワークの端末からインターネットに接続する際に,プライベートIPアドレスとポート番号を,1つのグローバルIPアドレスと端末ごとに異なるポート番号を使用して変換することにより,複数の端末を同時にインターネットに接続する技術をいいます。
※ NAPTはIPマスカレードともいう
NATやNAPT(SNAT,DNAT)の具体的な流れについては、「インターネットへの接続と通信の流れ-インターネットへの接続 -情報処理シンプルまとめ」を参照してください。
ルーティング
ルーティングとは,ルーターによる経路選択のことをいいます。
ルーティングテーブルとは,経路情報を集めたもので,ルーターがデータ(パケット)の転送先を決めるために参照します。
スタティックルーティング
スタティックルーティングとは,管理者が手動で経路情報を設定するものです。経路情報は自動で更新されることはないため,ルーター同士で経路情報を交換するトラフィックは発生しませんが,大規模なネットワークでは管理が手間でコストもかかります。
※ スタティックルーティングは,小規模なネットワークで使われることが多い
ダイナミックルーティング
ダイナミックルーティングとは,自動で経路情報を設定するものです。隣接するルーター同士が定期的に経路情報を交換し,ルーティングテーブルの経路情報を更新します。そのため,ネットワーク構成の変化に柔軟に対応できますし,ネットワークに障害が発生した場合でも,自動的に代替経路に切り替えることができます。しかし,経路情報を交換するトラフィックが発生しますので,ネットワークに負荷がかかります。
※ ダイナミックルーティングは,大規模なネットワークや,不通が許されない場合に使われることが多い
ルーティングプロトコル
ルーティングプロトコルには,次のようなものがあります。
RIP | ディスタンスベクタ型。メトリックとして,中継するルーターの数を表すホップ数が用いられる |
※ ディスタンスベクタ型とは,距離を基準にして経路情報を決定するアルゴリズムで,隣接するルーターと経路情報を交換し,新しい経路や短い経路が見つかった場合に経路情報を更新する
※ メトリックとは,経路を決定するための情報のことで,あて先ネットワークまでの距離や時間のことをいう
※ ホップとは,中継するルーターのことをいい,ホップ数とは中継するルーターの数のことをいう
RIP(Routing Information Protocol)
RIPとは,ディスタンスベクタ型のルーティングプロトコルで,メトリックとして,中継するルーターの数を表すホップ数が用いられます。
※ ディスタンスベクタ型とは,距離を基準にして経路情報を決定するアルゴリズムで,隣接するルーターと経路情報を交換し,新しい経路や短い経路が見つかった場合に経路情報を更新する
※ メトリックとは,経路を決定するための情報のことで,あて先ネットワークまでの距離や時間のことをいう
※ ホップとは,中継するルーターのことをいい,ホップ数とは中継するルーターの数のことをいう
このように,各ルーターのルーティングテーブルには,あて先ネットワークと,ネクストホップ(データ(パケット)を中継するルーター),メトリック(中継するルーターの数)が設定されます。また,新しいネットワークが追加された場合は,次のように動作します。
IPv6
IPv6は,(これまでに説明した)IPv4の問題点を解決するために導入されました。
IPv4の問題点
IPアドレスの枯渇 | CIDRやプライベートIPアドレスなど,IPアドレスを効果的に利用する手段が用いられたが,IPv4のグローバルIPアドレスは,2011年春に事実上枯渇した |
経路情報の増大 | ルーティングテーブルの情報量が増大し,ルーティングに時間がかかる |
セキュリティの問題 | IPv4は,セキュリティを考慮した設計になっていない |
設定作業が手間 | 新しくサーバーを設置する場合,DHCPを使用した場合でも,DHCPサーバーに設定をしなければならないため,手間である |
アドレス長の拡張と表記
IPv6では,アドレス長が32ビットから128ビットに拡張され,事実上,無制限に割り振ることができるようになりました(クラスは廃止されました)。
ネットワークプレフィックスとインタフェースID
IPv6のIPアドレスは,ネットワークプレフィックス(上位64ビット)とインタフェースID(下位64ビット)から構成されています。ネットワークプレフィックスはネットワーク自体を示すアドレスで,IPv4のネットワークアドレスに相当します。インタフェースIDはネットワーク内の個々のホスト(ルーターやサーバー,PCなど)に割り当てられるアドレスで,IPv4のホストアドレスに相当します。
※ IPv6のIPアドレスにはプライベートIPアドレスというものはない。ルーターのWAN(インターネット)側も,LAN側もグローバルIPアドレスを使用する⇒NATやNAPTは必要ない
※ セキュリティについては,LANにもグローバルIPアドレスを使用することから,WAN(インターネット)側からの脅威に晒されるとイメージするかもしれないが,WAN(インターネット)側からのパケットをフィルタリングすることにより,IPv4(プライベートIPアドレスを使用した場合)と同等のセキュリティを確保することができる
通信の効率化
IPv6ヘッダを簡素化(IPv4ヘッダ内の必要性の低いフィールドを削除し,拡張ヘッダに移行)したため,データ(パケット)を効率よく処理できるようになり,ルーターの負荷が減りました。
セキュリティ機能
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エコー応答の通知機能を使用して疎通確認をしたい端末に向けてパケットを送信し,正しく返信するかを確認します。
まとめ
今回は,IPについて,シンプルにまとめてみました。特に大切な内容だと思いますので,繰り返し,じっくり読み,確実に理解できるように努めましょう。