新Linux入門|IPv4とは:インターネット通信を支える基本プロトコルの仕組み

みなさんが毎日使っているインターネット。
その通信を裏で支えている最も基本的な仕組みのひとつが IPv4(Internet Protocol version 4) です。

 Webサイトを開くときも、メールを送るときも、実はすべてこのIPv4のルールに従って通信が行われています💡
 ここでは、IPv4の仕組みやアドレスの構造、サブネットマスク、ルーティングなどをやさしく解説します。

🌐 IPv4とは何か

IPv4は、ネットワーク上でデータを送受信するための基本プロトコル(通信ルール) です。
 すべての通信機器(パソコン、スマートフォン、ルーターなど)は、IPv4によって割り当てられたIPアドレスによって識別されています。

項目内容
名称IPv4(Internet Protocol version 4)
主な役割データ通信時の「送信元」と「宛先」を指定する。
アドレス形式32ビット(4つの8ビット=オクテット)
192.168.1.1
使用範囲インターネット・LANなど、現在も最も広く利用されている。

💬ポイント
IPv4は1983年に標準化され、現在でも世界中のネットワークで使用されています。
 ただし、32ビットという制限のため、約43億個のアドレスしか存在せず、「アドレス枯渇問題」 が発生しています。

🧩 IPv4アドレスの構造

 IPv4アドレスは 32ビット の数値で構成され、8ビットずつ区切って4つの部分(オクテット)に分けられます。
通常は「10進数」で表記され、各オクテットは0〜255の範囲の値を持ちます。

ビット構成説明
32ビット192.168.1.1各8ビットごとにドットで区切る(例:192.168.1.1)
2進数表記11000000.10101000.00000001.00000001コンピュータ内部では2進数で扱われる
10進数表記192.168.1.1人間が理解しやすい表現

💡ポイント
 この32ビットの中で、どこまでが「ネットワーク部」で、どこからが「ホスト部」なのかを区別するのがサブネットマスクです。

🏷️ IPアドレスのクラス分類

 IPv4アドレスは、もともとネットワーク規模に応じて「クラス」と呼ばれる区分に分けられていました。

クラス先頭ビット範囲(10進数)ネットワーク部の長さホスト数(理論値)用途
A01.0.0.0 ~ 126.255.255.2558ビット約1,600万大規模ネットワーク
B10128.0.0.0 ~ 191.255.255.25516ビット約6万5千中規模ネットワーク
C110192.0.0.0 ~ 223.255.255.25524ビット254小規模ネットワーク
D1110224.0.0.0 ~ 239.255.255.255マルチキャスト-特殊用途
E1111240.0.0.0 ~ 255.255.255.255研究用-実験・保留用

💬ポイント
 現在では「クラスレスアドレッシング(CIDR)」が主流となっており、柔軟にネットワークを分割できるようになっています。

📏 サブネットマスクとは

 サブネットマスクは、IPアドレスのどこまでがネットワーク部で、どこからがホスト部かを示すための仕組みです。

項目説明
役割ネットワーク部とホスト部を区別する
表記形式IPアドレスと同じ32ビット形式(例:255.255.255.0)
1ビットネットワーク部を表す
0ビットホスト部を表す

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

→ ネットワーク部:192.168.1(24ビット)
 ホスト部:10(8ビット)

💡ポイント
 つまり、192.168.1.0/24 のようにスラッシュ(/)の後にネットワーク部のビット数を付けて表現することもできます。

🔍 AlmaLinuxでのIPv4確認コマンド

IPv4アドレスの設定や確認には、ipコマンド を使用します。
CentOS7時代のifconfigの代替として、現在はipコマンドが主流です。

コマンド書式

ip addr show

使用例

[suzuki@AlmaLinux ~]$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:f8:25:ac brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
       valid_lft 17182sec preferred_lft 17182sec
    inet6 fd17:625c:f037:2:a00:27ff:fef8:25ac/64 scope global dynamic noprefixroute 
       valid_lft 85944sec preferred_lft 13944sec
    inet6 fe80::a00:27ff:fef8:25ac/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
オプション説明
ip addr showIPアドレス情報を表示
ip route showルーティングテーブルを表示
ping アドレスIP通信の疎通確認を行う
hostname -I現在のIPアドレスのみを表示

💬ポイント
 この出力から、ネットワークインターフェース名(ens33)やIPv4アドレス、サブネットマスク(/24)を確認できます。

🚀 IPv4のルーティングとパケット転送

IPv4では、通信データは「パケット」に分割され、ルーターを通じて目的地まで転送されます。
ルーターは「ルーティングテーブル」と呼ばれる情報を使い、どの経路で送るかを判断します。

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

[suzuki@AlmaLinux ~]$ ip route show
default via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 100 
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 100

💬ポイント
上記の例では、デフォルトゲートウェイ(192.168.1.1)を通じて外部ネットワークへ通信しています。

項目説明
default viaルーター(ゲートウェイ)のアドレス
dev ens33使用しているネットワークインターフェース
src送信元IPアドレス
metric経路の優先度(数値が小さいほど優先)

🌍 IPv4プロトコルスイート

IPv4は単体で動作するわけではなく、他のプロトコルと組み合わせて動作します。
代表的なものを以下にまとめます👇

プロトコル名役割通信の特徴
TCP信頼性のある通信(接続型)Web・メールなど
UDP高速な通信(非接続型)DNS・動画配信など
ICMP通信エラー通知・疎通確認pingコマンドなどで使用
ARPMACアドレスの解決LAN内での通信制御
DHCPIPアドレスの自動割り当て動的ネットワーク設定

💡ポイント
これらのプロトコルが協力することで、IPv4はネットワーク通信を効率的に行っています。

⚠️ IPv4アドレスの枯渇とIPv6への移行

IPv4は32ビットのため、約43億個のアドレスしか存在しません。
インターネットの普及とともに、そのアドレスが不足する「IPv4枯渇問題」が発生しました。

現在は、IPv6(128ビットアドレス) への移行が進んでいますが、
IPv4は依然として多くの環境で使われ続けています。

🌈 まとめ

🔹 IPv4は、ネットワーク通信の基盤となる「インターネットプロトコル」の第4版。
🔹 32ビットのアドレス構造で、ネットワーク部とホスト部を区別して通信を制御。
🔹 サブネットマスクによってネットワークの分割と識別が可能。
🔹 TCP・UDP・ICMPなどのプロトコルと連携して通信を実現。
🔹 IPv6が登場しても、IPv4は依然として世界中のネットワークで広く使われている。

IPv4を理解することは、ネットワークの仕組みを理解する第一歩です。
次回は、IPv6との違いやアドレス拡張の仕組みを見ていきましょう📘