👏

IPアドレス・ICMPの深掘り学習_01_IPアドレスの基礎と構造

に公開

IPアドレスの基礎と構造

📌 この文書で学べること

  • IPアドレスの基本概念とネットワーク層での位置づけ
  • IPv4/IPv6の構造と特徴
  • グローバルIPとプライベートIPの違いと使い分け
  • IPアドレスの内部構造(ネットワーク部/ホスト部、クラス分類)
  • サブネット化とCIDR表記の実践的な理解
  • ルーターの役割とIPアドレスの実践的な確認方法

1. IPアドレスの基礎

IPアドレスとは

IPアドレスは、ネットワーク上の機器を識別するための インターネット上の住所 のようなものです。

役割

  • データ通信の送信元・送信先を識別
  • ルーターがデータを正しい宛先に届けるための情報
  • ネットワーク構成を論理的に管理

重要な特性

  • IPアドレスはNIC(ネットワークインターフェイスカード)に割り当てられる
  • 1台のコンピューターが複数のIPアドレスを持つことは可能
  • 同一ネットワーク内でIPアドレスは重複不可

ネットワーク層での位置づけ

IPアドレスは、OSI参照モデルの 第3層(ネットワーク層) で動作します。
ネットワーク層では異なるネットワーク間の通信を実現します。

ネットワーク層の機能

  • パケットのルーティング(経路選択)
  • 論理アドレス(IPアドレス)の管理
  • ネットワーク間の相互接続

現代のネットワーク層で使用される主要プロトコル

  • IP (Internet Protocol): データのやり取りに使用
  • ICMP (Internet Control Message Protocol): トラブルシューティング(ping、traceroute等)に使用

2. IPv4とIPv6

IPv4

形式

192.168.1.1

特徴

項目 詳細
構成 4つのオクテット(0〜255の数字)をドット(.)で区切る
ビット数 32ビット(4バイト)
表現形式 10進数表記(内部は2進数)
192.168.21.22, 10.0.0.1

2進数との対応

192.168.1.1 (10進数)
↓
11000000.10101000.00000001.00000001 (2進数)

各オクテットは8ビット(0〜255)であり、4つで32ビットを構成します。

IPv6

形式

2001:0db8:85a3:0000:0000:8a2e:0370:7334

特徴

項目 詳細
構成 8つのブロック(16進数)をコロン(:)で区切る
ビット数 128ビット(16バイト)
表現形式 16進数表記
省略記法 連続する0000は::で省略可能

省略例

2001:0db8:0000:0000:0000:0000:0000:0001
↓
2001:db8::1

進数についての補足

進数 使用文字 基数 用途
2進数 0, 1 2 コンピューター内部表現、IPv4内部
10進数 0〜9 10 日常生活、IPv4表記
16進数 0〜9, A〜F 16 IPv6表記、MACアドレス

3. IPアドレスの種類:グローバルとプライベート

概要

IPアドレスは使用される場所によって2種類に分類されます。
WANかLANで分かれるイメージです。

特徴 グローバルIP(WAN) プライベートIP(LAN)
用途 インターネット通信 組織内ネットワーク
一意性 インターネット上で唯一 ネットワーク内で唯一(他ネットワークと重複可)
接続性 インターネット直接接続 インターネット直接接続不可
割り当て ISPからレンタル(動的) ネットワーク管理者が設定
管理団体 IANA, APNIC, JPNICなど 各組織が独自管理

プライベートIPアドレスの範囲

プライベートIPアドレスとして使用できる範囲はRFC 1918で厳密に規定されています。
この範囲外のプライベートIPを使用すると通信が正常に動作しません。

クラス IPアドレス範囲 ネットワーク数 ホスト数/ネットワーク 用途
クラスA 10.0.0.010.255.255.255 1個 約1677万 大規模ネットワーク
クラスB 172.16.0.0172.31.255.255 16個 約65,000 中規模ネットワーク
クラスC 192.168.0.0192.168.255.255 256個 254 小規模ネットワーク(家庭・小企業)

ネットワーク構成のイメージ


4. IPアドレスの内部構造

ネットワーク部とホスト部

IPアドレスは2つの部分に分かれています。

192.168.   1.   10
  ↑        ↑    ↑
ネットワーク部  ホスト部
部分 役割 例え
ネットワーク部 どのネットワークに属するか 郵便番号・都道府県
ホスト部 ネットワーク内のどの機器か 番地・建物名

クラス分類(クラスフルアドレス)

IPv4をクラスA・B・Cに分類します。

クラス 先頭ビット ネットワーク部 ホスト部 ネットワーク数
A 0 8ビット 24ビット 126個
B 10 16ビット 16ビット 約16,000個
C 110 24ビット 8ビット 約200万個

アドレス範囲

  • クラスA: 1.0.0.0126.255.255.255
  • クラスB: 128.0.0.0191.255.255.255
  • クラスC: 192.0.0.0223.255.255.255

5. サブネット化とCIDR表記

サブネット化の必要性

クラスフルアドレスでは、ネットワークサイズを柔軟に調整できませんでしたが、
サブネット化により、ネットワークをより細かく分割できるようになりました。

サブネットマスク

サブネットマスクは、ネットワーク部とホスト部の境界 を定義します。

仕組み

  • 2進数で「1」が連続する部分がネットワーク部
  • 「0」の部分がホスト部

IPアドレス:        192.168.1.10
サブネットマスク:   255.255.255.0

2進数表記:
IPアドレス:        11000000.10101000.00000001.00001010
サブネットマスク:   11111111.11111111.11111111.00000000
                  ネットワーク部(24ビット)  ホスト部(8ビット)

CIDR表記(プレフィックス)

サブネットマスクを簡潔に表現する方法です。

形式

192.168.1.0/24

/24は「先頭24ビットがネットワーク部」を意味します。

CIDR表記とサブネットマスクの対応

CIDR サブネットマスク ネットワーク部 ホスト部
/8 255.0.0.0 8ビット 24ビット
/16 255.255.0.0 16ビット 16ビット
/24 255.255.255.0 24ビット 8ビット

利用可能ホスト数の計算

2^(ホスト部ビット数) - 2

※ -2する理由:

  • ネットワークアドレス(ホスト部が全て0)
  • ブロードキャストアドレス(ホスト部が全て1)

実践例:サブネット分割

シナリオ
192.168.1.0/24のネットワークを4つのサブネットに分割する

計算

  • 4つのサブネット → 2² = 4 → 2ビット必要
  • 元の/24に2ビット追加 → /26

結果

サブネット ネットワークアドレス 範囲 ブロードキャスト 利用可能ホスト数
1 192.168.1.0/26 192.168.1.1 〜 192.168.1.62 192.168.1.63 62
2 192.168.1.64/26 192.168.1.65 〜 192.168.1.126 192.168.1.127 62
3 192.168.1.128/26 192.168.1.129 〜 192.168.1.190 192.168.1.191 62
4 192.168.1.192/26 192.168.1.193 〜 192.168.1.254 192.168.1.255 62

6. ルーターの役割

ルーターとは

ネットワーク層で動作し、パケットを適切な宛先に転送する機器です。

主な機能

  • パケットのルーティング(経路選択)
  • 異なるネットワーク間の接続
  • NAT/NAPTによるアドレス変換
  • ファイアウォール機能

ルーティングテーブル

ルーターは ルーティングテーブル(ルートテーブル) を参照してパケットの転送先を決定します。

ルーティングテーブルの例

宛先ネットワーク サブネットマスク ゲートウェイ インターフェース メトリック
0.0.0.0 0.0.0.0 192.168.1.1 eth0 1
192.168.1.0 255.255.255.0 0.0.0.0 eth0 0
10.0.0.0 255.0.0.0 192.168.1.254 eth0 10

読み方

  • 0.0.0.0/0:デフォルトゲートウェイ(該当しない全ての宛先)
  • 192.168.1.0/24:直接接続されたネットワーク
  • 10.0.0.0/8:別のルーター経由でアクセス

動作の流れ

  1. パケットの宛先IPアドレスを確認
  2. ルーティングテーブルで最も一致する経路を検索(ロンゲストマッチ)
  3. 該当するゲートウェイ/インターフェースに転送

7. IPアドレス確認方法

コマンド例

自分のIPアドレスを確認

# Linux/Mac
ip addr show
ifconfig

# Windows
ipconfig

# グローバルIPを確認
curl ifconfig.me
curl ipinfo.io

ルーティングテーブルを確認

# Linux/Mac
ip route show
netstat -rn

# Windows
route print

特定のホストへの経路を確認

traceroute google.com   # Linux/Mac
tracert google.com      # Windows

サブネット計算ツール

# ipcalcのインストール(Linux)
sudo apt install ipcalc

# 使用例
ipcalc 192.168.1.0/24

8. ループバックアドレス

自分自身のコンピュータを指す特別なIPアドレスです。

プロトコル アドレス ホスト名
IPv4 127.0.0.1 localhost
IPv6 ::1 localhost

特徴

  • パケットは物理的なネットワークから外に出ない(OS内部で完結)
  • ネットワーク接続がなくても通信可能

主な用途

  • 自己診断(ping 127.0.0.1でネットワーク機能をテスト)
  • ローカル開発(http://localhost:8080でWebアプリをテスト)
  • セキュリティ(サービスを外部から隠蔽)

9. まとめ

重要ポイント

  1. IPアドレスの役割

    • ネットワーク上の機器を識別する「住所」
    • ネットワーク層(第3層)で動作
    • IPとICMPがネットワーク層の主要プロトコル
  2. IPv4とIPv6

    • IPv4: 32ビット、約43億個(枯渇問題あり)
    • IPv6: 128ビット、事実上無限(次世代標準)
  3. グローバルIPとプライベートIP

    • グローバルIP: インターネット上で一意
    • プライベートIP: 組織内ネットワークで使用(RFC 1918で範囲規定)
    • 適切な使い分けが重要
  4. IPアドレスの構造

    • ネットワーク部(どのネットワークか)
    • ホスト部(ネットワーク内のどの機器か)
    • クラス分類(A/B/C)は旧方式
  5. サブネット化とCIDR

    • サブネットマスクでネットワークを柔軟に分割
    • CIDR表記(/24など)が現代の標準
    • ネットワーク設計の自由度向上
  6. ルーターの役割

    • ルーティングテーブルでパケット転送
    • サブネット設定の実体
    • ネットワーク構成の要

参考資料

  • 『マスタリングTCP/IP 入門編』

    • 著者: 井上 直也, 村山 公保, 竹下 隆史, 荒井 透, 苅田 幸雄
    • 出版社: オーム社
    • 発行年: 2019年
  • 『ネットワーク技術の教科書』

    • 著者: 長谷 和幸
    • 出版社: アイテック
    • 発行年:2022年
  • 『体験しながら学ぶネットワーク技術入門』

    • 著者:みやた ひろし
    • 出版社:SBクリエイティブ
    • 発行年:2024/1/13
  • RFC 791(Internet Protocol)

  • RFC 1918(Address Allocation for Private Internets)

  • RFC 4632(Classless Inter-domain Routing - CIDR)

Discussion