イーサネットLAN（３）【ネットワーク層の機能と概要/IPアドレス】

CCNAの試験に向けて学習中。
復習に見返せるようにメモしていきます。
ほぼ自分の勉強メモです。
過度な期待はしないでください。


1.ネットワーク層の機能と概要
-
OSI参照モデルのネットワーク層では、異なるネットワークでエンドツーエンドの通信を
可能にする機能を規定している階層。
異なるネットワークというのは、ネットワークアドレスが異なるネットワークを意味します。


#### 1-1.ネットワーク層の主な役割

・アドレッシング - 通信する相手を識別する為のアドレスを指定する
・ルーティング -  目的の場所までの経路（ルート）を選択する


があり、<font color="Red">IP</font>がこれらの機能を提供しています。
<br>

#### 1-2.IPにおけるデータの流れ

データリンク層・物理層では、MACアドレスを指定して通信を行っていましたが、
ネットワーク層では、<font color="Red">IPアドレス</font>を指定して通信を行います。
また、IPアドレスを使用し、ルータを介して接続された異なる回線上の端末にも通信が行えます。
<br>

IPでのデータ通信を理解する為には郵便物の配達を例にして考える理解しやすい。
<img width="1000" alt="ファイル名" src="https://i.gyazo.com/ac52dd907c7af0ec4ef2803fe8710c6e.jpg">
IPでは、郵便物が送信するデータになり、IPで扱うデータを<font color="Red">IPパケット</font>といい
そこに含めれるIPヘッダには住所である、<font color="Red">IPアドレス</font>が格納されています。
送信元から送られてきたIPパケットは、最寄りの郵便局（=<font color="Red">ルータ</font>）に送られ、
ルータは宛先の住所（=IPアドレス）を基に次のルータにIPパケットを転送します。
最後に、そのルータから宛先のIPアドレスを持つ端末に送信されます。
<br>

#### 1-3.IPアドレッシングとIPヘッダ

IPアドレッシングとは、ネットワーク上の機器にIPアドレスを振り分けることをいいます。
IPアドレスによって、宛先を識別する為、PCやルータなどのネットワーク機器には一意の
IPアドレスを割り当てる必要があります。

IPアドレスは、IPパケットに含まれるIPヘッダに格納されており、
IPヘッダは下記のようなフォーマットになっています。
<img width="1000" alt="ファイル名" src="https://i.gyazo.com/e372c7dea1b891504acd1a6b30826e29.png">
IPヘッダの合計サイズは、20〜60バイトで、IPヘッダの前半20バイトは基本フィールドとなっており
送信元IPアドレスや宛先IPアドレスなどの基本情報が含まれています。
※上記の画像は、[IPヘッダのフォーマットとサイズの基本](https://shinmeisha.co.jp/newsroom/2020/06/08/ip)からの記事参照

<br>

#### 1-4.ルータとルーティング

ルータとは、異なるネットワークを接続するネットワーク層の機器です。
IPアドレスを基に宛先までの最適なルートを選んでパケットを転送することを<b>ルーティング</b>と
いいます。転送先を決定する際には、最適なルート情報が登録されている
<font color="Red">ルーティングテーブル</font>を参照します。

<br>

2.IPアドレス
-
#### 2-1.IPアドレスの基本
IPには、バージョン4(v4)とバージョン6(v6)があり、
主に現在使われているのはバージョン4で、IPv4です。
IPv4は、<b>32ビット（4バイト）</b>となっています。

主に現在使われているのはIPv4ですが、インターネットの普及と共に
インターネットに接続するPCやネットワーク機器が増え、IPv4アドレスが枯渇される事が
懸念されるようになりました。

枯渇問題の対策として、
新しく作成されたプロトコルが、バージョン6のIPである<b>IPv6</b>のです。
また、IPv6の策定だけでなく、IPv4アドレスの消費を抑えるための方法も策定され、
RFC1918で策定された<font color="Red">プライベートIPアドレス</font>やNATが、
これに当たります。
※RFCとは、インターネットに関する技術の標準を定めるIETFが正式に発行に文章です
※IETFとは、インターネット技術の標準化を推進する任意団体です。
<br>

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

- IPアドレスは大きく2種類あります。

◇グローバルIPアドレスとは、インターネットに接続された機器に一意に割り当てられる
IPアドレスであり、<b>重複が許されません。</b>

◇プライベートIPアドレスは、会社や家庭などの組織内（ローカル）で一意に割り当てられる
IPアドレスで、<b>同一LAN内で重複しなければ自由に割り当てが出来ます。</b>
但し、このIPアドレスが割り当てられた機器はインターネットでは通信を行えないため、
インターネット通信を行うためには、アドレス変換技術などを利用してグローバルIPアドレスに
変換する必要があります。
<br>

#### 2-3.IPアドレスの表記方法

IPv4アドレスは 32ビット=4バイトの正整数値で表され、
コンピュータ上では以下のように2進数で表される。

```
11000000101010000000101100000001
```

IPv4アドレスを表記する場合は、<b>8ビットごとに4組に分けて、その境目にドット(.)を
入れて10進数で表記する。</b>
なお、8ビットごとの単位を<b>オクテット</b>と呼びます。
左から順番に第1オクテット、第2オクテット、第3オクテット、第4オクテットとなります。

```
11000000.10101000.00001011.00000001
```

これを、1オクテット事に10進数に変換します。

◇第1オクテット：11000000
1×128(2の7乗) + 1×64(2の6乗) + 0×32(2の5乗) + 0×16(2の4乗) 
+ 0×8(2の3乗) + 0×4(2の2乗) + 0×2(2の1乗) + 0×1(2の0乗)= 192

◇第2オクテット：10101000
1×128(2の7乗) + 0×64(2の6乗) + 1×32(2の5乗) + 0×16(2の4乗) 
+ 1×8(2の3乗) + 0×4(2の2乗) + 0×2(2の1乗) + 0×1(2の0乗)= 168

◇第3オクテット：00001011
0×128(2の7乗) + 0×64(2の6乗) + 0×32(2の5乗) + 0×16(2の4乗) 
+ 1×8(2の3乗) + 0×4(2の2乗) + 1×2(2の1乗) + 1×1(2の0乗)= 11

◇第4オクテット：00001011
0×128(2の7乗) + 0×64(2の6乗) + 0×32(2の5乗) + 0×16(2の4乗) 
+ 0×8(2の3乗) + 0×4(2の2乗) + 0×2(2の1乗) + 1×1(2の0乗)= 1

したがって、このIPv4アドレスは

```
192.168.11.1
```
となります。
<br>

#### 2-4.IPアドレスのサブネットマスク

IPアドレスは、ネットワークを識別する<font color="Red">ネットワーク部</font>とそのネットワーク上の
ホスト（PCとルータなどのネットワーク機器）を識別する<font color="Red">ホスト部</font>で構成されている。
<img width="500" alt="ファイル名" src="https://i.gyazo.com/07e139a64cb6ce2400fed84fa1a9ab92.png">
注意しなければらないのは、<b>ネットワーク部の長さは常に一定ではなく、
割り当てられたIPアドレスアドレスに応じて異なる</b>。
その為、「どこからどこまでがネットワーク部でどこからどこまでがホスト部であるか」を示す、
<font color="Red">サブネットマスク</font>を使用する。
サブネットマスクはIPアドレスとセットで使われるもので、IPアドレスの32ビットで表します。
2進数で表記した時に、ネットワーク部に概要する部分を1、ホスト部に該当する部分を0にします。

なので、上記の192.168.11.1というIPアドレスのネットワーク部が22ビットだった場合、
サブネットマスクは、先頭から1を22個並べて、残りの後ろが0になる。
したがって、このサブネットマスクは

```
11111111.11111111.11111100.00000000
// 10進数にすると
255.255.252.0
```
となります。

◇第1オクテット：11111111
1×128(2の7乗) + 1×64(2の6乗) + 1×32(2の5乗) + 1×16(2の4乗)
+ 1×8(2の3乗) + 1×4(2の2乗) + 1×2(2の1乗) + 1×1(2の0乗)= 255

※残りのオクテットもこれに照らし合わせて計算する
<br>

#### 2-5.AND演算（ネットワークアドレスの求め方）

ネットワークアドレスは、IPアドレスとサブネットマスクを2進数に変換し、AND演算をすると導き出される。
IPアドレスとサブネットマスクを比較して、同じ位置のビットが両方とも1の時1、それ以外は0として
IPアドレスを作成します。

```
IPアドレス：11000000.10101000.00001011.00000001
サブネットマスク：11111111.11111111.11111100.00000000
```
AND演算すると

```
11000000.10101000.00001000.00000000
// 10進数にすると
192.168.8.0
```
<br>

#### 2-5.サブネットマスク別の表記

サブネットマスクは、下記のようにも表記できる。

```
192.168.11.1/22
```
これはIPアドレスの内上位22ビットが1になるサブネットマスクを利用するという意味です。
/22はネットワーク部の長さを表し、<font color="Red">プレフィックス長</font>と呼びます。
この表記方法を<font color="Red">CIDR表記</font>または<font color="Red">プレフィックス長表記</font>といいます。
このIPアドレス場合、22ビットがネットワーク部、10ビットがホスト部になります。
ホスト部のビット数で表せる数のパターン分だけ、そのネットワーク内でアドレスを使えるということに
なります。
今回は、10ビットがホスト部なので、このネットワークでは、2の10乗つまり、1024個の
IPアドレスが使用出来ます。

但し、ホスト部がビットが全て0のアドレスはネットワークアドレス、
ホスト部がビットが全て1のアドレスは<b>ブロードキャストアドレス</b>となる為、
実際に割り当てられるアドレスの個数は、-2個の1022個になります。

<br>

#### 2-6.IPv4アドレスのクラス

昔は、ネットワーク部とホスト部の境界線をアドレスの範囲で決めていました。
このような考え方を、<b>クラス</b>といい、クラスに沿ったアドレスの割り当てを
<font color="Red">クラスフル</font>といいます。
また、サブネットマスクに沿ったアドレスの割り当てを<font color="Red">クラスレス</font>といいます。

クラスフルアドレスでは、IPアドレスはA〜Eの5種類のクラスに分類されている。
IPアドレスの先頭1~4ビットまでのビット列の組み合わせによって、
どのクラスに属するかを判別することができる。

<img width="1000" alt="ファイル名" src="https://i.gyazo.com/225973905b25c3ec1f4d10f04b910551.png">
<font color="DarkTurquoise">※上記の画像は、[『IPアドレスとは』](http://ipnetwork.web.fc2.com/ip-address.html)からの記事参照</font>
<br>

#### 2-7.特殊なアドレス

- IPアドレスには、予約済みで、ホストには割り当てられないものがあります。

|範囲　　　　　　|用途　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　|
|:---|:---|
|0|デフォルトルートなどに利用される|
|127|ローカルループバックアドレスなどに利用される|
|224~239|IPマルチキャストアドレスとして利用される（クラスDのアドレス）|
|240~255|実験などに利用するために予約されている（クラスEのアドレス）|
<br>

- 用途が決まっていない特殊なアドレス

|範囲|アドレスの範囲|説明|
|:---|:---|:---|
|ローカルループバックアドレス|127.0.0.1~127.255.255.254|ネットワーク機器自身を示すアドレス|
|リンクローカルアドレス|169.254.0.0~169.255.255.255|DHCPを利用する環境で、DHCPが機能せずにIPアドレスが割り当てられない時に、仮に割り当てられるアドレス|
|ネットワークアドレス|-|ホスト部のビットの部分が全て0のアドレスで、ネットワーク自体をさす。そのネットワークの先頭のアドレス|
|ブロードキャストアドレス|-|ホスト部のビットの部分が全て1のアドレスで、同一ネットワーク上に接続されている全てのホストにパケットを送信する為のアドレス。そのネットワークの一番後ろのアドレス。|

IPアドレスは、予約済みや特殊な用途で、ホストには割り当てられないものがあります。
ホスト部のビットの部分が全て0のネットワークアドレスと、
ホスト部のビットの部分が全て1のマルチキャストアドレスは、1つのネットワークに１つずつ存在します。



<br>
過去投稿記事
-
[ネットワークの基礎（１）【接続形態と通信方法】](https://qiita.com/k-yasuhiro/items/38d643ec262a0309db06)
[ネットワークの基礎（２）【プロトコル(OSI参照モデル)】](https://qiita.com/k-yasuhiro/items/0e5accf951223e2332e4)
[ネットワークの基礎（３）【プロトコル(TCP/IPモデル)】](https://qiita.com/k-yasuhiro/items/401630a552221d19ac13)
[イーサネットLAN（１）【LANケーブル】](https://qiita.com/k-yasuhiro/items/9c339643070d4db1e6ac)
[イーサネットLAN（２）【LAN内の機器】](https://qiita.com/k-yasuhiro/items/199d108007c6e1c2dbfc)