IPアドレスとサブネットマスク

このページでは、IPの性格とヘッダ、IPアドレスのクラスと特殊なアドレス、サブネットマスクとCIDRの考え方、サブネットの計算方法がわかります。

  • 一言で言うと:
    • ネットワークを越えて届けるためのIPと、その住所であるIPアドレスの話
    • IPアドレスを「ネットワーク部」と「ホスト部」に分ける方法(クラス → サブネットマスク → CIDR)、足りなくなったアドレスへの対策(IPv6、NAT・NAPT)、エラーを知らせるICMPが出てくる

IPの性格とヘッダ(IP)→ 住所の形(IPアドレス・クラス・特殊なアドレス)→ 住所の区切り方(サブネットマスク・CIDR)→ 住所不足の対策(IPv6・NAT・NAPT)→ エラーの連絡係(ICMP・ping)

覚え方の軸

  • IPは「コネクションレスで、届けるだけ」
    • 品質(届いたかの確認や再送)は、TCPなど他のプロトコルに任せる
    • IP自身は疎通を確かめる機能がないので、ICMPが補う
  • IPアドレスは「ネットワーク部 + ホスト部」
    • どこで区切るかを、昔はクラス(先頭ビットで決まる)、今はサブネットマスク/プレフィックス(/○○)で決める
    • CIDRは、クラスにしばられずに区切る仕組み
  • サブネットの計算は「ホスト部の全部0と全部1は使えない」
    • ホスト部が n ビットなら、使えるアドレスは 2ⁿ − 2 個
    • 全部0はネットワークアドレス、全部1はブロードキャストアドレス
    • ネットワークアドレスは「IPアドレス AND サブネットマスク」

IP:ネットワークを越えて届ける(★)

  • IP(Internet Protocol):
    • インターネットの仕組みの中でも重要な役割を持つ、ネットワーク層のプロトコル
    • IP自身の機能はシンプルなので、通信品質のためには他のプロトコルと組み合わせて使う
  • IPの特徴:
    • パケット通信技術である
    • コネクションレス型通信である
    • IPアドレスを使った経路制御を行う
  • ノード間のコネクション確立の方式:
    • コネクション型は、相手の確認と通信経路の設定をしてから通信を始める
    • コネクションレス型は、相手の確認と通信経路の設定をせずに、すぐに通信を始める
    • 例えば、コネクション型は電話(相手が出てから話す)、コネクションレス型は手紙(相手がいるか確かめずに出す)
  • トランスポート層での対応:
    • TCPがコネクション型、UDPがコネクションレス型
  • IPv4とIPv6:
    • アドレス資源を32ビットで管理するIPv4と、128ビットで管理するIPv6がある
  • ルーティング:
    • ネットワーク層のプロトコルは、ネットワークを越えた通信を提供する
    • IPでは、ネットワークどうしをつなぐルータが、IPアドレスを手がかりに通信を振り分ける
    • ルータは、宛先IPアドレスがネットワークの外なら、宛先により近いルータへ転送を繰り返して、パケットを目的地に届ける。これをルーティングという

IPヘッダ(IPv4)

  • IPv4ヘッダの項目:
    • バージョン、ヘッダ長、優先順位、パケット長、識別番号、フラグ、フラグメントオフセット、TTL(生存時間)、プロトコル番号、ヘッダチェックサム、送信元IPアドレス(32ビット)、送信先IPアドレス(32ビット)、オプション(可変長)、パディング

IPv4ヘッダの主な項目(★)

項目 中身
TTL(生存時間) Time To Liveの略。パケットの生存時間(通過できるルータの最大数)。パケットが永久にループするのを避けるため、ルータを通るたびに1ずつ減らし、0になったら破棄する。同時に、送信元にICMPタイプ11(時間超過:TTL equals 0)のメッセージを送り、時間切れで破棄したことを伝える
プロトコル番号 TCPなどの上位プロトコルを識別する番号。枠は0〜255
ヘッダチェックサム IPヘッダ部分を対象に計算した誤り検出のための値。IPヘッダに誤りがないことを確かめる

主なプロトコル番号

プロトコル プロトコル番号
ICMP 1
TCP 6
UDP 17
IPv6 41
  • TTLの例え:
    • 回数券。ルータを1つ通るたびに1枚ちぎり、なくなったらそこで終わり。迷子のパケットがずっとさまよい続けないようにする
  • プロトコル番号とポート番号の違い(ひっかけ注意):
    • プロトコル番号は、IPヘッダの中で「中身はTCPか、UDPか」を示す(TCPは6)
    • ポート番号は、TCP・UDPヘッダの中で「どのアプリか」を示す(HTTPは80)

IPアドレス:ネットワークの中の住所(★)

  • IPアドレス:
    • ネットワーク層のプロトコルIPで使う、ノードを特定するためのアドレス
    • インターネットにつながるノードは、インターネット上で一意のIPアドレスを持つ必要がある
  • IPアドレスの管理:
    • 各国のNIC(ネットワークインフォメーションセンター)が、割当てなどを管理している
    • インターネットに直接つなぐときは、ISP(インターネットサービスプロバイダ)に申請して取得する
  • ダークネット:
    • IPv4のアドレスはほとんどが割当て済みだが、使われていないアドレスも相当数ある
    • このような、使えるが使われていないIPアドレス空間のこと

① IPアドレスの表記と構成

  • IPアドレスの表記:
    • IPv4では、32桁の2進数を使う
    • ふつうは、8ビットずつ区切って10進数で書く
  • 表記の例:
    • 2進数表記は、11001011 00000000 01110001 00000101
    • 10進数表記は、203.0.113.5
  • IPアドレスの構成:
    • ネットワークアドレス部とホストアドレス部でできている
  • ネットワークアドレス部:
    • 例えば、企業の組織単位にネットワークがある場合、それぞれのネットワークを一意に識別する部分
    • 同じネットワークに属するノードは、ネットワークアドレスが同じ
  • ホストアドレス部:
    • 同じネットワークに属するノードを一意に識別する部分
  • IPアドレスでわかること:
    • そのノードが「どのネットワークに属するか」と「どのホストか」
    • 例えば、「○○町(ネットワーク部)の△番地(ホスト部)」

② IPアドレスクラス

  • アドレスクラス:
    • 従来のIPネットワークで、IPアドレスを先頭4ビットまでの値で4つの種類に分ける考え方
  • アドレスクラスの欠点:
    • ホストアドレス部のビット数が多いほど、各ネットワークで使えるIPアドレスは多くなる
    • でも、使われずに無駄になるIPアドレスが出やすい

IPアドレスのクラス(★)

クラス 先頭ビット ネットワーク部 ホスト部 同じネットワーク内のIPアドレス数
クラスA 0 8ビット 24ビット 16,777,214(2²⁴ − 2)
クラスB 10 16ビット 16ビット 65,534(2¹⁶ − 2)
クラスC 110 24ビット 8ビット 254(2⁸ − 2)
クラスD 1110 (分けない) (分けない) マルチキャスト用アドレス
  • クラスCで使えるアドレス数:
    • ホストアドレス部が8ビットのクラスCで使えるIPアドレスは、ネットワークアドレスとブロードキャストアドレスを除いた 2⁸ − 2 = 254個
  • クラスD:
    • IPマルチキャスト用に予約された特別のアドレス
    • ネットワークアドレス部とホストアドレス部に分けない
    • IPマルチキャストの識別には「1110」の後ろの28ビットを使い、範囲は224.0.0.0〜239.255.255.255
  • クラスの例え:
    • クラスAは、1つの町に1,600万軒が入る巨大な町。クラスCは、254軒しか入らない小さな町。中くらいの会社が巨大な町をもらうと、空き地だらけになる

③ 特殊なIPアドレス

  • ネットワークアドレス:
    • ホストアドレス部がすべて「0」のアドレス
    • ネットワーク自体を指す
  • ブロードキャストアドレス:
    • ホストアドレス部がすべて「1」のアドレス
    • ネットワーク内のすべてのノード宛てを示す
  • ループバックアドレス:
    • 127.0.0.1
    • 自分自身を表すIPアドレス
  • グローバルIPアドレス:
    • インターネットにつながったノードに、一意に割り当てられたIPアドレス
  • プライベートIPアドレス:
    • 組織内だけで通用するIPアドレス
    • 例えば、グローバルIPアドレスは「外から届く住所」、プライベートIPアドレスは「社内の内線番号」

プライベートIPアドレスの範囲(RFC 1918)(★試験で問われる)

クラス 範囲
クラス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
  • 試験での出方(試験):
    • クラスCのプライベートIPアドレスとして使える範囲が問われることがある
  • 覚え方:
    • 「10」「172.16〜172.31」「192.168」。クラスBは、16〜31の範囲(172.32は外れる。ひっかけ注意)

通信の種類

種類 中身
ユニキャスト 単一の送信先を指定して行う通信
ブロードキャスト ネットワークに属しているノード全体に対して行う通信
マルチキャスト 指定した複数の送信先に、同じデータを送る通信。ルータがデータを複製するので、ユニキャストを何回も行うより負荷を小さくできる
  • IGMP(Internet Group Management Protocol):
    • マルチキャストグループ管理用のプロトコル
    • グループへの参加や離脱をホストが通知したり、グループに参加しているホストの有無をルータがチェックしたりするときに使う
  • 通信の種類の例え:
    • ユニキャストは個人宛ての手紙、ブロードキャストは町内放送、マルチキャストは「申し込んだ人だけに届くメルマガ」

サブネットマスク:ネットワークを小さく分ける(★試験によく出る)

① サブネットマスク

  • サブネットマスク:
    • アドレスクラスの欠点を補うため、クラスにしばられずにネットワークアドレス部とホストアドレス部を分けるために考えられた
    • IPアドレスと同じく32ビットで表す
    • 左端から続く「1」の部分がネットワークアドレス部、「0」の部分がホストアドレス部
  • サブネットアドレス:
    • サブネットマスクを使うと、ホストアドレス部の左端から数ビットを、ネットワークアドレス部に割り当てられる
    • これで、同じネットワークの中に、いくつかの小さなネットワークを作れる
    • このとき、割り当てたホストアドレス部の一部のこと
  • サブネット:
    • 分割したネットワーク
    • 例えば、1つの町(ネットワーク)を、丁目(サブネット)に分ける

サブネットマスクの例

  • IPアドレス:
    • クラスCの 192.168.5.75(11000000 10101000 00000101 01001011)
  • サブネットマスク:
    • 255.255.255.240(11111111 11111111 11111111 11110000)
  • ネットワークアドレス:
    • 2つのビットごとの論理積(AND)で、192.168.5.64(11000000 10101000 00000101 01000000)
  • サブネットの数:
    • ホストアドレス部(8ビット)の上位4ビットをサブネットアドレスにしているので、16(2⁴)個のサブネットに分けられる
  • 各サブネットのIPアドレス数:
    • ホストアドレス部の下位4ビットが、すべて「0」のサブネット自体を指すアドレスと、すべて「1」のブロードキャストアドレスを除いた、14(2⁴ − 2)個
  • ネットワークアドレスとホストアドレスの求め方:
    • IPアドレスをa、サブネットマスクをmとする。「&」はビットごとの論理積、「〜」はビット反転
    • ネットワークアドレス= a & m
    • ホストアドレス= a & 〜m

② プレフィックス表記

  • プレフィックス表記:
    • ネットワークアドレス部とホストアドレス部の区切りを、ネットワークアドレス部の桁数で示す方法
    • IPアドレスの後ろに、ネットワークアドレス部の長さ(ビット数)を「/」で区切って書く
    • 例えば、ネットワークアドレス部が29桁なら「198.51.100.0/29」
  • プレフィックス:
    • 「接頭辞」という意味
    • IPアドレスの場合は、ネットワークアドレス部分の桁数(長さ)
  • サブネットマスクとの対応:
    • 255.255.255.0 は /24、255.255.255.240 は /28(1が28個並ぶ)

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

  • 問題:
    • IPv4アドレス 172.20.45.10/20 のホストがあるネットワークの、ブロードキャストアドレスは何か
  • 考え方:
    • 「/20」は、先頭から20ビット目までがネットワークアドレス部
    • ブロードキャストアドレスは、ホストアドレス部(残り12ビット)をすべて1にしたアドレス
  • 計算:
    • 第3オクテットの45は、2進数で 00101101。先頭4ビット(0010)までがネットワーク部
    • ホスト部をすべて1にすると、00101111 = 47、第4オクテットは11111111 = 255
    • 答えは 172.20.47.255
  • 検算:
    • ネットワークアドレスは 172.20.32.0(00100000 = 32)。/20のホスト部は12ビットなので 2¹² = 4,096個
    • 32 + 4,096 ÷ 256 = 32 + 16 = 48 なので、次のネットワークは172.20.48.0。その1つ手前の 172.20.47.255 がブロードキャストアドレスで合う

例題(サブネットの計算)

  • 問題:
    • 10.1.5.130/26 のホストについて、①ネットワークアドレス、②ブロードキャストアドレス、③このネットワークでホストに割り当てられるアドレスの数を求めよ
  • 答え:
    • /26なので、第4オクテットの上位2ビットがネットワーク部、下位6ビットがホスト部
    • 130 = 10000010。ホスト部を0にすると 10000000 = 128 なので、①は 10.1.5.128
    • ホスト部を1にすると 10111111 = 191 なので、②は 10.1.5.191
    • ③は 2⁶ − 2 = 64 − 2 = 62個(10.1.5.129〜10.1.5.190)
  • 検算:
    • 128 + 64 − 1 = 191 で、ブロードキャストアドレスと一致
  • 速く解くコツ:
    • ホスト部が6ビットなら、ブロックの大きさは2⁶ = 64。第4オクテットは「0、64、128、192」で区切られるので、130は「128〜191」のブロックに入る

③ CIDR

  • CIDR(Classless Inter-Domain Routing):
    • クラスによる分け方では、割り当てられたのに使われないIPアドレスが多く出てしまった
    • そこで、IPアドレスを効率よく使うために考えられた、サブネットマスクを使った仕組み
    • ネットワークアドレス部を、ネットワークの大きさに合わせて任意の長さに変えられるようになった
    • 例えば、500台の会社に、クラスB(6万5千台分)ではなく、/23(510台分)を割り当てられる
  • スーパーネット化:
    • CIDRで、連続するネットワークを束ねて、1つの集約したネットワーク(スーパーネットワーク)を作ること
  • スーパーネット化の例:
    • 2つのネットワーク 10.10.4.0/23 と 10.10.6.0/23 は、左から22ビット目までが同じ
    • そこで、サブネットマスクを「11111111 11111111 11111100 00000000」にすれば、1つのネットワーク 10.10.4.0/22 に集約できる
  • スーパーネット化の検算:
    • 第3オクテットは、4 = 00000100、6 = 00000110。上位6ビット(000001)が同じなので、16 + 6 = 22ビットまで同じ
    • /22は1,024個分(10.10.4.0〜10.10.7.255)で、/23(512個分)2つの合計と一致する
  • スーパーネット化の効果:
    • ルータが持つ経路情報の削減と、ルーティング負荷の軽減ができる
    • 経路集約ともいう
    • 例えば、「1丁目宛て」「2丁目宛て」と別々に覚える代わりに、「○○町宛て」とまとめて覚える

混同しやすいペア

  • コネクション型 / コネクションレス型
    • コネクション型は、相手の確認と通信経路の設定をしてから通信する(TCP)
    • コネクションレス型は、確認や設定をせずにすぐ通信する(IP、UDP)
  • TTL / ホップ・リミット
    • TTLは、IPv4の生存時間。ルータを通るたびに1減り、0で破棄
    • ホップ・リミットは、IPv6での同じ役割の項目
  • プロトコル番号 / 次ヘッダ
    • プロトコル番号は、IPv4で上位プロトコルを示す(ICMP 1、TCP 6、UDP 17、IPv6 41)
    • 次ヘッダは、IPv6で次の拡張ヘッダ、または上位プロトコルを示す
  • プロトコル番号 / ポート番号
    • プロトコル番号は、IPヘッダで「TCPかUDPか」などを示す
    • ポート番号は、TCP・UDPヘッダで「どのアプリか」を示す
  • ネットワークアドレス部 / ホストアドレス部
    • ネットワークアドレス部は、どのネットワークかを示す
    • ホストアドレス部は、そのネットワークのどのノードかを示す
  • クラスA / クラスB / クラスC
    • クラスAは、先頭0。ネットワーク部8ビット、16,777,214台
    • クラスBは、先頭10。ネットワーク部16ビット、65,534台
    • クラスCは、先頭110。ネットワーク部24ビット、254台
  • クラスD / マルチキャストアドレス(IPv6)
    • クラスDは、IPv4のマルチキャスト用(先頭1110、224.0.0.0〜239.255.255.255)
    • IPv6のマルチキャストアドレスは、上位8ビットが11111111(FF00::/8)
  • ネットワークアドレス / ブロードキャストアドレス
    • ネットワークアドレスは、ホスト部がすべて0。ネットワーク自体を指す
    • ブロードキャストアドレスは、ホスト部がすべて1。全ノード宛て
  • グローバルIPアドレス / プライベートIPアドレス
    • グローバルIPアドレスは、インターネットで一意
    • プライベートIPアドレスは、組織内だけで通用する(10.*、172.16〜31.*、192.168.*)
  • ループバックアドレス / ブロードキャストアドレス
    • ループバックアドレスは、127.0.0.1。自分自身
    • ブロードキャストアドレスは、ネットワーク内の全員
  • ユニキャスト / ブロードキャスト / マルチキャスト
    • ユニキャストは、1つの宛先
    • ブロードキャストは、ネットワークの全員
    • マルチキャストは、指定した複数の宛先(ルータが複製。グループ管理はIGMP)
  • マルチキャスト / エニーキャスト
    • マルチキャストは、グループの全員に届く
    • エニーキャストは、グループのうち最も近い1つにだけ届く(IPv6で追加)
  • サブネットマスク / プレフィックス表記
    • サブネットマスクは、32ビットで、1の部分がネットワーク部(255.255.255.240)
    • プレフィックス表記は、ネットワーク部の桁数を「/」の後ろに書く(/28)
  • サブネット化 / スーパーネット化
    • サブネット化は、ホスト部の一部をネットワーク部にして、ネットワークを小さく分ける
    • スーパーネット化は、連続するネットワークを束ねて、大きな1つにまとめる(経路情報の削減)
  • アドレスクラス / CIDR
    • アドレスクラスは、先頭ビットでネットワーク部の長さが決まる(無駄が出やすい)
    • CIDRは、サブネットマスクで、ネットワーク部を任意の長さにできる

← 07 ネットワークの目次に戻る

タイトルとURLをコピーしました