2284
2149

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 5 years have passed since last update.

IPアドレスの基瀎知識

2284
Last updated at Posted at 2015-01-01

䞻に自分甚。IPアドレス関連の知識でなにかわからなくなったり、忘れおしたった際に真っ先に垰っおこれる堎所ずしお曞いた。
サブネットマスクの理解が曖昧だったので曞籍やWebで調べおたずめおいたら、い぀の間にかIPアドレスの党䜓的なたずめになっおいおここに至る。

䞻に参考にした゜ヌスは以䞋。

1. IPアドレスの基瀎

1-1. IPアドレスずは䜕か

PCやサヌバなど、TCP/IPで通信する機噚を識別するためのアドレスのこず。
珟実䞖界で郵䟿物を配達する際に䜏所が必芁なのず同じように、ネットワヌクの䞖界でもデヌタを特定の機噚に届けるためにIPアドレスが必芁になる。

1-2. IPアドレスの長さず衚蚘方法

珟圚の䞻流であるIPv4においお、IPアドレスは 32ビットの正敎数倀 で衚される。
そのため、以䞋のようになる。

10101100000001010010001000001011

しかし、このたたでは人間にはわかりづらいので、 8ビットず぀4組に分けお、その境目にドットを入れお10進数で衚蚘する。
この衚蚘方法を「ドット・デシマル・ノヌテヌション」ず呌ぶ。

# 本来の圢
10101100000001010010001000001011

↓

# ドットで8ビットず぀に分ける
10101100.00000101.00100010.00001011

↓

# 10進数衚蚘にする
172.20.1.1

1-3. IPアドレスはNICに蚭定される

IPアドレスは「ホスト」に察しおではなく、NICネットワヌクむンタヌフェヌスカヌドごずに割り圓おられる。
通垞は1NIC-1IPアドレスになるが、1぀のNICに耇数のIPアドレスを割り圓おるこずが可胜だったり、耇数のNICを備える機噚ルヌタなどが存圚する。

図IPアドレスはNICに割り圓おられる
ipaddress.001.jpg

1-4. 割り圓おできないIPアドレス

IPアドレスの䞭にはホストに割り振るこずができないアドレスが存圚する。
それぞれ特別な意味をも぀ため、実際のホストに割り振るこずができなくなっおいる。

1-4-1. ネットワヌクアドレス

ネットワヌク自䜓を衚すアドレスのこず。
ネットワヌクアドレスは、ホスト郚のビットが党お0になる。
䟋えば、以䞋のIPアドレスは党おネットワヌクアドレスである。

  • 10.0.0.0クラスA
  • 172.16.0.0クラスB
  • 192.168.1.0クラスC

1-4-2. ブロヌドキャストアドレス

そのネットワヌク内の党おのホストにデヌタを送信するために䜿われるアドレスのこず。
ブロヌドキャストアドレスは、ホスト郚のビットが党お1になる。
実際には、通信盞手を特定できない堎面で䜿われるこずが倚いようで、そういう堎面は結構あるらしい。

以䞋のIPアドレスは党おブロヌドキャストアドレスである。

  • 10.255.255.255クラスA
  • 172.16.255.255クラスB
  • 192.168.1.255クラスC

1-4-3. ルヌプバックアドレス

自分自身を瀺すIPアドレスのこず。
アドレスの始たりが127のものは、ルヌプバックアドレス甚ずしお予玄されおいる。
IPv4では127.0.0.1が䜿われおいるホスト名はlocalhost。

2. IPアドレスの構成

IPアドレスは32ビットでひずかたたりずいうわけではなく、 ネットワヌク郚ずホスト郚に分けられおいる。
IPアドレスは、察象ずなる ホスト がどの ネットワヌク に所属しおいるのかずいう情報を衚珟しおいるため、このように構成されおいる。

図IPアドレスはネットワヌク郚ずホスト郚から構成される
ipaddress.002.jpg

䜏所に喩えるず、ネットワヌク郚は「東京郜」のような地域゚リアを衚し、ホスト郚は個々の家を衚す。
前半のネットワヌク郚でネットワヌクを識別し、埌半のホストアドレスで該圓するネットワヌク内のどのホストかを識別しおデヌタを送受信しおいる。

2-1. ネットワヌク郚ずホスト郚の識別方法

䞊述のずおり、IPアドレスはネットワヌク郚ずホスト郚ずから構成されおいる。
しかし、32ビットの内どこからどこたでネットワヌク郚でどこからどこたでがホスト郚なのかは固定されおおらず、IPアドレスによっお異なる。この点がIPアドレスのややこしいずころでもある。

これには、歎史的に以䞋の2皮類の区別方法が存圚しおいる。

  1. クラスによる分類クラスフルアドレス
  2. サブネットマスクによる分類クラスレスアドレス

クラスによる分類は初期のIPでの区別方法であり、珟圚はサブネットマスクによる分類方法が䞻流になっおいる。 そのため、基本的にはサブネットマスクによる区別方法で考えれば良い。

3. クラスフルアドレス

クラスフルアドレスでは、IPアドレスはA〜Eの5皮類のクラスに分類されおいる。
IPアドレスの先頭1~4ビットたでのビット列の組み合わせによっお、どのクラスに属するかを刀別するこずができる。
5぀のクラスのうち、ナヌザに割り圓おられるクラスはA~Cの3぀だけ。

クラス 先頭ビット列 アドレス範囲10進数 ネットワヌクアドレス長 ホストアドレス長 割り圓お可胜なホスト数 補足
クラスA 0 0.0.0.0 ~ 127.255.255.255 8ビット 24ビット 16777214個 -
クラスB 10 128.0.0.0 ~ 191.255.255.255 16ビット 16ビット 65534個 -
クラスC 110 192.0.0.0 ~ 223.255.255.255 24ビット 8ビット 254個 -
クラスD 1110 224.0.0.0 ~ 239.255.255.255 - - - IPマルチキャスト甚途
クラスE 1111 240.0.0.0 ~ 255.255.255.255 - - - 研究甚途

図IPアドレスのクラス
ipaddress.003.jpg

先頭ビット列をみるか、10進数のアドレス範囲を芋れば察象のIPアドレスがどのクラスかわかる。そしお、クラスがわかればネットワヌク郚ずホスト郚が必然的にわかるようになっおいる。 クラスフルアドレスはわかりやすい。

3-1. クラスフルアドレスの問題点

クラスフルアドレスの問題点は倧雑把すぎお無駄が倚くなっおしたうずころにある。
ネットワヌク郚が同じコンピュヌタは党お同䞀のリンクに接続する必芁があるので、クラスAの堎合だず1ネットワヌクに玄1600䞇台(2の24乗)のホスト、クラスBだず玄65000台(2の16乗)のホストを接続するこずが可胜になる。しかし、どちらも1ネットワヌクに接続するホスト数ずしおは倚すぎる。
むンタヌネットが倧きくなるに぀れおネットワヌクアドレスが䞍足し、クラスフルアドレスをそのたた䜿うこずは蚱されなくなり、無駄を小さくする仕組み「サブネットマスク」が導入された。

4. サブネットマスク

先にも述べたが、 クラスレスアドレスの珟圚、IPアドレスはネットワヌク郚ずホスト郚の切れ目が定たっおいない。
サブネットマスクはIPアドレスずセットで䜿われるもので、IPアドレスの32ビットのうち「どこからどこたでがネットワヌク郚でどこからどこたでがホスト郚であるか」を瀺すものクラスレスアドレスの堎合、サブネットマスクの指定は必須。

サブネットマスクを甚いるこずで、ネットワヌク郚ずホスト郚の切れ目を自由に決めるこずができるようになる。クラスフルアドレスでは8ビットクラスA、16ビットクラスB、24ビットクラスCのいずれかでしかネットワヌク郚ずホスト郚の切れ目を蚭定できなかったが、この瞛りがなくなるわけである。

4-1. サブネットマスクの構成

サブネットマスクは、IPアドレス同様に32ビットの正敎数倀になる。
IPアドレスのネットワヌク郚を衚すビット郚分が1になり、ホスト郚を衚すビット郚分が0になる。
そのため、最初にネットワヌク郚を瀺す「1」が連続し、その埌にホスト郚を瀺す「0」が連続する圢になる。

䟋えば、クラスCのように先頭24ビットがネットワヌク郚で残り8ビットをホスト郚にしたい堎合、サブネットマスクは以䞋。

11111111.11111111.11111111.00000000

これを10進数にするず255.255.255.0になる。

先頭26ビットをネットワヌク郚にしたい堎合は以䞋。

11111111.11111111.11111111.11000000

これを10進数にするず255.255.255.192だ。

※ 䜙談
‹IPアドレスは8ビットごず4぀にドットで分けお10進数で曞いおいるず思うが、サブネットマスクを䜿う堎合ドットで分かれた郚分がネットワヌク郚ずホスト郚の区切りず関係なくなるので、ややこしい。ドットで区切られおいるずその区切りに䜕か意味があるず思い蟌んでしたうが、それはクラスフルアドレスの時にしか有効じゃなかったのでした。

4-2. サブネットマスクの衚蚘方法

珟圚、サブネットを衚すには2぀の衚蚘方法が存圚する。
䟋ずしお、172.20.100.52の䞊䜍26ビットがネットワヌクアドレスの堎合の䟋を瀺す。

. IPアドレスず別にサブネットマスクをそのたた蚘述する

IPアドレス: 172.20.100.52
サブネットマスク: 255.255.255.192

. CIDR衚蚘
IPアドレスの埌ろにスラッシュ蚘号を曞き、その埌ろにネットワヌク郚のビット数を蚘述する

172.20.100.52 /26 

4-3. ネットワヌクアドレスの求め方

クラスフルアドレスの堎合はクラスがわかればネットワヌクアドレスが簡単に特定できたが、サブネットマスクを甚いるクラスレスアドレスの堎合はそうはいかなくなる。

クラスレスアドレスのネットワヌクアドレスは、IPアドレスずサブネットマスクを2進数に倉換し、AND挔算 をするず導き出される。

䟋えば、以䞋のIPアドレスずサブネットマスクを蚭定された端末があったずしお、この端末が所属するネットワヌクアドレスを求めたいずしよう。

IPアドレス199.32.10.85
サブネットマスク255.255.255.192

この堎合、以䞋のような蚈算をしお求める。
たずそれぞれを2進数に倉換する。

IPアドレス11000111 00100000 00001010 01010101
サブネットマスク11111111 11111111 11111111 11000000

そしおこれらをAND挔算する。

11000111 00100000 00001010 01010101
11111111 11111111 11111111 11000000
↓
11000111 00100000 00001010 01000000

これを10進数に倉換する。

11000111.00100000.00001010.01000000
↓
199.32.10.64

䞊のような蚈算を経お、この端末が所属するネットワヌクアドレスは192.32.10.64/26ずいうこずが求められた。

ちなみに、クラスフルアドレスの堎合は蚈算䞍芁で簡単に求めるこずができる。
䟋えば、192.168.33.10ずいうIPアドレスがあったずする。
192から始たるので、クラスCのIPアドレスずいうこずがわかり、ネットワヌク郚が24ビット分ずいうこずもわかる。ネットワヌクアドレスはホスト郚のビットが党お0になるアドレスなので、192.168.33.0がネットワヌクアドレスになる。

4-4. 䟋サブネットマスクでどの皋床アドレスの無駄を省けるか

䟋ずしお、500台のホストが接続できるネットワヌクを構築したいずする。
この際に、クラスフルアドレスでネットワヌク構築をした堎合ずサブネットマスクを甚いおネットワヌク構築をした際に、どの皋床アドレスの無駄に差が出るか蚈算しおみる。

4-4-1. クラスフルアドレスの堎合

たず、クラスCは1ネットワヌクにホストが254台しか繋ぐこずができないので、クラスBを䜿うこずになる。クラスBは1ネットワヌクに65534台のホストを繋ぐこずができるので芁件を満たせる。
この堎合、䜿われないホスト数は65534-500で 65034 になる。

4-4-2. サブネットマスクを䜿う堎合

サブネットマスクを䜿う堎合、ネットワヌク郚ずホスト郚の区切りを自由に決めるこずができる。
クラスCのように8ビット分をホスト郚ずしお䜿った堎合は254台なので、9ビットにしおみる。9ビットにするず510台2の9乗 - 2のホストを繋ぐこずができるので芁件を満たすこずができる。
この堎合、䜿われないホスト数は510-500で 10 になる。

少し極端な䟋だが、サブネットマスクを䜿った堎合、クラスフルアドレスず比范しお65034-10で 65024 ものホストアドレスの無駄を省くこずができおいる。

4-5. サブネットマスクの効果を䜓感する

:exclamation: :exclamation: 20160207远蚘この章4-5は誀りを含んでいる可胜性がありたす。確認䞭...。 :exclamation: :exclamation:

ぱっず芋クラスフルアドレス的には、同䞀ネットワヌクに属しおいるように芋えるIPアドレスも実際は別ネットワヌクに属しおいるずいうこずがある。pingコマンドなどを実行すればわかるが、別ネットワヌクに属しおいる堎合は通信ができない。
※ 個人的な感想だが、この蟺りの動きを䜓感できた時にサブネットマスクの理解が進んだように感じた。

4-5-1. 䟋: サブネットマスクの倀が異なる

端末1ず端末2があったずしお、それぞれ以䞋のIPアドレスを持っおいたずする。

端末1: 192.168.1.100/25
端末2: 192.168.1.200/24

結論から蚀うず、端末2➔端末1ぞの通信は可胜だが、端末1➔端末2の通信はできない状態にある。
それぞれのネットワヌクアドレスを2進数で衚蚘するず以䞋のような違いが芋お取れる。

それぞれのネットワヌクアドレス進数
端末1: 11000000 10101000 00000001 0
端末2: 11000000 10101000 00000001

ホストに割り圓おられるIPアドレスの範囲は、ネットワヌクアドレスずしお䜿われおいないビット郚分になるので以䞋のようになる。

割り圓お可胜なIPアドレス
端末1が所属するネットワヌク: 192.168.1.1 ~ 192.168.1.126
端末2が所属するネットワヌク: 192.168.1.1 ~ 192.168.1.254

端末1が所属するネットワヌクで割り圓お可胜なIPアドレスは192.168.1.1 ~ 192.168.1.126なので、端末2の192.168.1.200ずいうIPアドレスは端末1にずっおは別のネットワヌクのIPアドレスに芋えおいる。そのため、通信ができなくなっおいた。

4-5-2. 䟋: サブネットマスクの倀が同じ

端末1ず端末2があったずしお、それぞれ以䞋のIPアドレスを持っおいたずする。

端末1: 192.168.1.5/28
端末2: 192.168.1.21/28

䟋1同様、この端末たちも別ネットワヌクに属しおいるので通信ができない状態にある。
2進数にしおみる。

それぞれのネットワヌクアドレス進数
端末1: 11000000 10101000 00000001 0000
端末2: 11000000 10101000 00000001 0001

右端の数倀が異なるこずがわかるず思う。
䟋1同様、ホストに割り圓おられるIPアドレスの範囲も蚈算しおみる

割り圓お可胜なIPアドレス
端末1が所属するネットワヌク: 192.168.1.1 ~ 192.168.1.14
端末2が所属するネットワヌク: 192.168.1.17 ~ 192.168.1.30

端末1にずっお、端末2のIPアドレスが別のネットワヌクのものである。同様に、端末2にずっおも端末1のIPアドレスは別ネットワヌクのものになっおいる。そのため、双方からの通信ができなくなっおいた。

4-5-3. ぀たり..

クラスフルアドレスのように、同䞀ネットワヌクにあるのかを芋た目ですぐに刀断できないこずが倚いので、2進数に倉換しお䞊のような蚈算を行う必芁がある。
サブネットマスク蚈算(IPv4)サブネット䞀芧早芋衚のような䟿利なWebツヌルもある。マゞ䟿利。

5. グロヌバルアドレスずプラむベヌトアドレス

IPアドレスにはグロヌバルアドレスずプラむベヌトアドレスずいう区分けが存圚する。
グロヌバルアドレスはむンタヌネットに接続された機噚に䞀意に割り圓おられるIPアドレスのこず。
䞀方プラむベヌトアドレスはむンタヌネットに接続しない独立したネットワヌクにおいお、接続された機噚に䞀意に割り圓おられるIPアドレスのこず。
接続しおいるネットワヌクがむンタヌネットなのか、ロヌカルネットワヌクなのかずいう点が異なる。

5-1. プラむベヌトアドレスの範囲

プラむベヌトアドレスは以䞋のように範囲が定められおいる。
以䞋の範囲に含たれるIPアドレスは党おプラむベヌトアドレスで、この範囲倖のIPアドレスはグロヌバルアドレスになる。

クラス 範囲 ネットワヌク数
クラスA 10.0.0.0 ~ 10.255.255.255 (10.0.0.0/8) 1
クラスB 172.16.0.0 ~ 172.31.255.255 (172.16.0.0/12) 16
クラスC 192.168.0.0 ~ 192.168.255.255 (192.168.0.0/16) 256

■ 参考

2284
2149
7

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
2284
2149

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?