0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IPv4メモ

Posted at

IPv4についてメモ書き。

そもそもIPアドレスとはなんぞや

IPアドレスはInternet Protocol addressの略。
ネットワーク上の機器を識別するために割り振られる番号。

IPv4以外にもIPv6という方式もありますが、本記事はIPv4のメモ書き。

IPv4は歴史的経緯(IPアドレス不足)から、従来のクラスフル方式からクラスレス方式へ移行しています。
個人的にはこの前提を知らずに色々な説明を読んでしまうと混乱に元になる気がします。

歴史的な流れについてはJPNICの下記の記事が分かりやすい。

JPNIC - インターネット10分講座:IPv4アドレス
JPNIC - インターネット歴史年表
JPNIC - 日本におけるインターネット資源管理の歴史~~

IPアドレス概要

IPアドレスは32ビット。8ビットごとにドット区切り10進数で表記が一般的。

11000000101010000000000000000001 というIPアドレスがあると8ビットごとに区切って10進数に変換。

  • 11000000を10進数変換すると192
  • 10101000を10進数変換すると168
  • 00000000を10進数変換すると0
  • 00000001を10進数変換すると1

192.168.0.1

10進数表記 2進数表記
192.168.0.1 11000000 10101000 00000000 00000001

ドットで区切らない表記

8ビットごとにドット区切り10進数で表記が一般的と記載しましたが、下記のようにドット区切りしない表記も可能ではあります。

ping 3405803776

上記のようにpingを実行すると、203.0.113.0と評価されます。

これは 10進数 3405803776 を 2進数に変換すると 11001011000000000111000100000000 となり。
これを8ビットごとに区切るってみると

11001011 -> 203
00000000 -> 0
01110001 -> 113
00000000 -> 0

となるからです。

クラスフル方式

1981年9月に RFC791 としてIPの仕様が策定されているが。
クラスフル方式は初期のインターネットで利用されていた方式。

IPv4アドレスはネットワークの識別(ネットワーク部)とホストの識別部分(ホスト部)に区切られ、昔はこの区切り部分をIPv4アドレスの上位ビットによって決定する方式が採用されていた。

またこの区切りをクラスと呼んでいた。

クラス 上位ビット アドレス範囲 ネットワーク部のビット ホスト部のビット 各ネットワーク部に割り当てられる最大ホスト数
A 0 0.0.0.0 ~ 127.255.255.255 8ビット 24ビット 16,777,214
B 10 128.0.0.0 ~ 191.255.255.255 16ビット 16ビット 65,534
C 110 192.0.0.0 ~ 223.255.255.255 24ビット 8ビット 254
D 1110 224.0.0.0 ~ 239.255.255.255 - - -
E 11110 240.0.0.0 ~ 247.255.255.255 - - -

クラスCをみると4オクテッド目の0~255までがホスト部となるため最大ホスト数は256個になりそうなものだが、実際は254個。
これは

  • ホスト部のビットが全部0のアドレス
  • ホスト部のビットが全部1のアドレス

上記の2つのアドレスは実際にはホストに割り当てられない特殊なアドレスとなっているため256-2で254個となっている。

  • ホスト部が全部0のアドレスはネットワークアドレスと呼ばれ、ネットワーク自体を表す。
  • ホスト部が全部1のアドレスはブロードキャストアドレスと呼ばれ、特殊な

ネットワーク部が255のアドレスは

ただし、この区切りだとネットワーク規模が大雑把すぎて無駄が多いので、現在のIPv4ではネットワーク部とホスト部の区切り 位置を任意のビット数で区切れるクラスレス方式へ移行した。

クラスレス方式

クラスレスでは、ネットワーク部のビット長(プリフィクス長)を明示する必要がある。(サブネットマスク)
アドレスのあとに / で区切って プリフィクス長を表記する。

この表記方法をCIDR(Classless Inter-Domain Routing)と呼ぶ。

なおCIDRについては、1993年9月にRFC1518として発行されている。

exsample

ipaddress / 28とか書いてあればipアドレスの先頭から28bitがネットワーク部で残りの4bitがホスト部という意味。

CIDR表記 ホスト部
192.168.0.0/28 192.168.0.0~192.168.0.15 (16ホスト)

上記の例だと、19.168.0.0 = 11000000 10101000 00000000 00000000となり先頭から28bitの11000000 10101000 00000000 0000がネットワーク部となり残りの0000がホスト部。

クラスフル方式からクラスレス方式へ(CIDR導入)

下記、記事にCIDR導入について記載があり、歴史的な流れについてイメージできるかも。

CIDR時代の到来

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

IPアドレスにはグローバルIPアドレスとプライベートIPアドレスが存在する。

プライベートIPアドレスはインターネットに直接接続されていないネットワークで自由に使っていいアドレス。
グローバルIPアドレスはインターネットに直接接続するためにNIC(Network Information Center)から割り当てられるアドレス。

プライベートIPアドレスはRFC1918にて範囲は下記のように決定されている。

RFC 1918

アドレス範囲
10.0.0.0 ~ 10.255.255.255 (10/8 prefix)
172.16.0.0 ~ 172.31.255.255 (172.16/12 prefix)
192.168.0.0 ~ 192.168.255.255 (192.168/16 prefix)
10.0.0.0 ~ 10.255.255.255 (10/8 prefix)のビット表記
00001010.00000000.00000000.00000000 From
00001010.11111111.11111111.11111111 To
11111111.00000000.00000000.00000000 サブネットマスク
172.16.0.0 ~ 172.31.255.255 (172.16/12 prefix)のビット表記
01111010.00010000.00000000.00000000 From
01111010.00011111.11111111.11111111 To
11111111.11110000.00000000.00000000 サブネットマスク
192.168.0.0 ~ 192.168.255.255 (192.168/16 prefix)のビット表記
11000000.10101000.00000000.00000000 From
11000000.10101000.11111111.11111111 To
11111111.11111111.00000000.00000000 サブネットマスク

上記プライベートIPアドレス以外のアドレスは概ねグローバルIPアドレスと呼ばれる。

実際はRFCで予約されている特別なIPアドレスが規定されているので、プライベートIP以外 イコール グローバルIPとするのは乱暴で ≒ って感じです。

特殊用途のIPとしては、RFC6890が規定されている。

RFC6890 - Special-Purpose IP Address Registries

総評

IPアドレスの歴史的経緯やらその時代その時代でどういった背景があったのか等々。
そういうお話を一度まとめて聞いてみたいですね。

あと JPNIC: 日本ネットワークインフォメーションセンターのサイトは興味深い記事が多いので、眺めてみると面白いかと思います。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?