2022-08-02に更新

IP Address

What is an IP Address?

・IPアドレスは「どのネットワークのどのコンピューターです」という住所のようなもの
・つまり「どのネットワーク」で「どのコンピューター」なのかという情報の二つで構成されている
・ネットワーク部 = ストリート名、ホスト部 = ハウスナンバーのイメージ
image

Binary

まずは以下のチャートと友達になる。
image.png
* an octet = a group of 8 binary digits
* binaryの1は「on」、0は「off」(コンピューターの電源ボタン)
* チャートはいつも一番大きい数字から使う
* 心にチャートと上3箇条を刻み込む

Ex. 1
image.png
Deciamalで言えば2と1の部分が「1」、つまり『ON』になっている。
よってdecimal 3

Ex. 2
IPアドレス:192. 168. 1. 5を二進数に変換する。
192 = 128 + 64 ▶︎ 11000000
168 = 128 + 32 + 8 ▶︎ 10101000
1 ▶︎ 00000001
5 = 4 + 1 ▶︎ 00000101

つまり、IPアドレスとは 4つのオクテットの集まり→ 32ビットの binary digits

Network ID & Subnet Mask

image.png
Q. この意味するところとは?
A. How many binary digits are turned on in the subnet mask ?

[解説]
「/24」はサブネットマスクにおけるビットの数を示している。要は……
* 192 → 11111111
* 168 → 11111111
* 1 → 11111111
* 0 → 00000000
つまり、8*3 = 24、24ビットが「オン」になっているということを表している。
これを十進数に変換すると

255. 255. 255. 0

「なんだか見覚えがあるな……」と思いましたね?正解です。これがサブネットマスクです。

Q. じゃあ「マスク」って何?どうやってネットワークIDを見分けるの?
image
識別方法が分かったところで実際にIPアドレスからNetwork IDを割り出してみる。

Ex. 1 IP Address : 192. 168. 40. 55 のネットワークIDを求める。

  1. マスクが255. 255. 248. 0なので「192. 168.」はネットワークIDの一部になることがわかる。
  2. CIDR /21なので「40」のどこかで境界が途切れる、つまり40 = 32 + 8 ▶︎ 00101000
  3. 3rd octet mask bits は11111000、つまりネットワークID:192. 168. 40. 0 /21

Ex. 2 IP Address : 192.168. 45. 55 / Subnet Mask: 255. 255. 248.0 /21のネットワークIDを求める。
Ex.1と同様のプロセスで考えると「192.168」はネットワークIDの一部になり、考えるのは3つ目のoctetになる。
image
図より 32 + 8 = 40、よってネットワークID:192. 168. 40. 0 /21

maskがどのbitをネットワークIDで使うのか教えてくれる。

Q. Mask : 255. 255. 255. 192のCIDR notationは何になるのだろうか?
255(8) + 255(8) + 255(8) + 192(128 + 64)
つまり、8*3 + 2 = 26
CIDR /26

Q. IP Address: 192. 168. 45. 55、Subnet Mask: 255. 255. 255. 192 /26のNetwork IDは?
A. Subnet Maskから「192. 168.45」はネットワークIDに含まれることがわかり、「55」の途中で境界が途切れることがわかる。
image
≒ Network ID : 192. 168. 45. 0 /26

  • ちなみに上記の例でいうと、「broadcast address は 192. 168. 45. 63 /26」

Broadcast Addressとは?

ブロードキャストアドレスとはそのネットワーク内に所属する全てのホストに対して通信する際に使用されるアドレス。ホスト部のビットが全て1になる。
image
* 全部足すと63になる。32 + 16 + 8 + 4 + 2 + 1 = 63(いつもチャートの左隣の数字より1少なくなる
* また、ここから usable IP address がいくつあるのかもわかる。
* broadcast address のために63から1引く(63 - 1 = 62)、つまり62のホストIPアドレスが使える

IPv4

image
* IPv4では1st Octet を見ると容易にクラスの識別ができる
* 例えばクラスAでは利用可能なホストIPアドレスの数が16,777,214もあるので「クソデカいネットワークなんだな〜」という感じ (言わば一つの町に家が16,777,214棟ある的な)
* しかし急速なインターネットの普及でIPv4だけではアドレスの数が足りないという事態が発生した
* そこで登場したのがIPv6
* IPv4の割り当てはもう残っていないが、クラスABCから一部を切り出して、プライベートIPアドレス、それ以外のアドレスをパブリックIPアドレスと呼ぶことにした

Available Hosts の計算方法

image

「e.g. クラスAの利用可能なホストIPアドレス数を求める」

image
サブネットマスクがわかれば解ける!

Public IP Address & Private IP Address

image
パブリックIPアドレス
* インターネットに接続する際に使用するため、重複しないユニークな番号でなければならない
* プロバイダーやサーバー事業者から貸し出される

プライベートIPアドレス
* 何度でも繰り返し自由に使える
* 自分自身のネットワーク内でのみ固有の番号であれば良い

image
* 普通、インターネットサービスプロバイダーと契約すると一つだけ (65,000や254などの固まり(!)ではなく) アドレスを与えられる
image

「0.0.0.0」とは?

「0.0.0.0」は文脈によって用途が異なり、それぞれのシーンによってそれぞれの使い方をされている。以下で使い方の一部を列挙する。

  1. デフォルトルート(ルートエントリーの場合)

デフォルトルートとは、ルータなどがパケットの転送先を決定する際に、経路表に記載のないアドレスを処理するための特殊なルート。「すべてのルート」を表す特殊なアドレスが指定され、転送先として隣接するルータなどが指定される。

「デフォルトルート(ラストリゾート)とは - 意味をわかりやすく - IT用語辞典」より抜粋

・経路表に記載がない場合に転送先を決めるために用いられ、経路表にIPv4では0.0.0.0/0、IPv6では::/0として表されるIPアドレスを記載し、転送先に隣接ルータのIPアドレスなどを指定する
・このアドレスは「全てのIPアドレスに一致する」とみなされる特殊な表記で、経路表に該当しないアドレスは全て転送先に指定されたルートに転送される
・AWSにおけるデフォルトルートはこの記事で触れている

  1. ローカルマシンにおける全てのIPv4アドレス
  2. システムにおけるすべてのインタフェースのすべてのIPアドレス

「127.0.0.1」とは?

  • local host(またはループバック)のこと
  • つまり自分自身を指しており、例えば、AWSではEC2の中で起動しているもの、Macではデバイス上で起動しているもの、RailsではRailsサーバーのことになる

参考サイト

NextGenT "IPv4 Addressing Lesson 1-3". youtube
CertBros "IP Addresses Explained | Cisco CCNA 200-301". Youtube

ツイッターでシェア
みんなに共有、忘れないようにメモ

光の勢力

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント