ネットワーク｜IPv4/IPv6

[参考資料](https://www.infraexpert.com/study/ip8.html)
IPアドレスはインターネットやLANなどのIPネットワークに接続されたコンピュータなどに割り振られる識別番号のこと。IPアドレスは、IPネットワーク上の住所のようなもの。
IPアドレスには、IPv4(Internet Protocol v4)とIPv6(Internet Protocol v6)の2種類がある。IPv4が世界的に利用者が急増したことにより割り当てるIPアドレスがなくなってきており、それを解消するためにIPv6が開発された。

#IPv4とは
IPv4のIPアドレスは、コンピュータ内部では2進数で処理されることから、32ビットの整数で表せる。

IPv4 = 32 bits
11000000.10101000.00000001.00000001

##IPv4の表記
![](https://www.infraexpert.com/studygif/ip8.gif)

##IPアドレス確認コマンド(IPv6も同様)
コンピュータが使用しているIPアドレスを調べるコマンドは以下。

```shell
# Windowsの場合
$ ipconfig

# Linuxの場合
$ ifconfig
```

##IPアドレスの構成
32ビットのIPアドレスは、ネットワーク部とホスト部の2つによって構成される。ネットワーク部は、各ホストが所属するネットワークを示す。ホスト部は、ネットワークに所属する各ホストを示す。例えば、192.168.2.1/24のIPアドレスでは、/24は24ビットがネットワーク部という意味となるので、192/168.2までがネットワーク部であることを示す。残りの1がホスト部ということを表している。

![スクリーンショット 2019-10-11 10.59.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/374557/5186642f-6bd8-d750-f667-10e54b5d9d03.png)

##IPアドレスのクラス
IPアドレスは、クラスA、クラスB、クラスC、クラスEの5つのアドレスクラスに分類される。

|クラス|アドレス範囲|定義|用途|
|---|---|---|---|
|クラスA|0.0.0.0〜127.255.255.255|ネットワーク部(8bit)ホスト部(24bit)|大規模ネットワーク|
|クラスB|128.0.0.0〜191.255.255.255|ネットワーク部(16bit)ホスト部(16bit)|中規模ネットワーク|
|クラスC|192.0.0.0〜223.255.255.255|ネットワーク部(24bit)ホスト部(8bit)|小規模ネットワーク|
|クラスD|224.0.0.0〜239.255.255.255|下位28bitがマルチキャストグループID|マルチキャスト用ネットワーク|
|クラスE|240.0.0.0〜255.255.255.255|現在割り当てが定義されていない|実験用のアドレス|

クラスA,B,Cにはネットワークアドレスとブロードキャストアドレスという予約されているアドレスが存在し、これらはホストに割り当てることはできない。


##グローバルアドレスとプライベートアドレス
###グローバルアドレス
グローバルIPアドレスとは、インターネットに接続された機器に一意に割り当てられるIPアドレスであり、世界的にはICANN、日本ではJPNICという機関で管理されている。

###プライベートアドレス
プライベートIPアドレスとは、組織内で一意に割り当てられるIPアドレス。このIPアドレスが割り当てられた機器はインターネットでは通信を行えないため、インターネット通信を行うためには、アドレス変換技術などでグローバルIPをもつ機器に中継してもらう必要がある。

|クラス|アドレス範囲|
|---|---|
|クラスA|10.0.0.0〜10.255.255.255|
|クラスB|172.16.0.0〜172.31.255.255|
|クラスC|192.168.0.0〜192.168.255.255|

※プライベートIPアドレス以外がグローバルIPアドレス



##VLSM/CIDR/サブネットゼロとは
###VLSMとは
VLSM(Variable Length Subnet Mask)とは、1つのIPネットワークをサブネットに分割する際に、複数の長さのサブネットマスクを利用する技術。可変長サブネットマスクとも呼ばれる。
VLSMはIPアドレスのクラスの概念にとらわれないクラスレスアドレッシングの手法。VLSMを利用することで、効率的なIPアドレッシングを実現できるのだが、VLSMを対応していないクラスフルルーティングプロトコル(RIPv1)が稼働しているネットワークではVLSMは使用できない。

![](https://www.infraexpert.com/studygif/ip25.gif)

###CIDR(サイダー)
CIDR(Classless InterDomain Routing)とは、IPネットワークの経路情報を集約する際にクラスの概念をなくした技術のこと。CIDRにより複数のクラスCアドレスを1つのネットワークに集約することができ、集約したネットワークはSuperNet(元のクラスのナチュラルマスクよりも短いマスクの経路)という。

例えば、CIDRによって「200.0.0.0/24」〜「200.0.7.0/24」の8つのネットワークを、1つのネットワークに集約して「200.0.0.0/21」として扱うことができる。例えば、インターネット上である組織がクラスCのネットワークではIPアドレスが足らないことからクラスBのネットワークを取得を希望した場合に、クラスBのネットワークを付与するのではなく、必要としているIPアドレスの数と同じくらいの数となるよう、連続する複数のクラスCのネットワークを、1つのネットワークとして割り当てればIPアドレス空間を有効利用できる。

![](https://www.infraexpert.com/studygif/ip26.gif)
　※　ルータは8つのルートを処理するのではなく、CIDRにより1つのルートを処理すればいいのでルータの負荷軽減となります。

VLSMの場合は複数の異なるサブネットを作成していく時に「ホスト部のビット」を消費していくのに対しCIDRの場合は複数のネットワークを1つのネットワークにする時に、「ネットワーク部」のビットを消費する。CIDRでは、1つの大きなネットワークを作成するためにホスト部のビットを増やす。

![](https://www.infraexpert.com/studygif/ip27.gif)

###ゼロサブネットとは
サブネット部が全て0bitのネットワークのこと。例えば、「172.16.10.0/24」の場合ではサブネット部が全て0bitになりませんが、「172.16.0.0/24」の場合はサブネットが全て0bitになる。このようなゼロサブネットと言う。従来のサブネット計画に置いては、このゼロサブネットと、サブネット部が全て「1bit」のネットワークの使用は推奨されていない。

![](https://www.infraexpert.com/studygif/ip28.gif)

#IPv6とは
IPv6は、アドレス長が128bitsなので最大340澗個のIPアドレスを割り当てることができる。

###IPv6の特徴

|IPv6の特徴|説明|
|---|---|
|広大なアドレス空間|IPv6は128bitのアドレスであるため、多くのIPアドレスに対応可能|
|自動設定機能|IPv６アドレスの自動設定機能により、PCは自動的にIPv6アドレスを使用可能|
|効率的な経路集約|IPv6アドレスの階層構造が厳密であるため、より効率的な経路集約を実現|
|シンプルなヘッダ|簡素なヘッダのため、パケット転送の際のルーティング処理による負荷が軽減|
|モビリティ(Mobile IP)|移動通信中でも同一のIPアドレスを使用して通信を途切れなく通信可能|
|セキュリティ(IPsec)|IPv6はIPsecの実装が必須のため、特別な機器を必要せずIPsecを実装可能|

###IPvヘッダのフォーマット
![](https://www.infraexpert.com/studygif/ipv6z3.gif)

IPv6ではヘッダチェックサムが削除されているが、TCPやアプリケーション側でエラーチェックを行なっているためIPレベルのエラーチェックは不要だとして削除された。一方、「フローラベル」という新たなフィールドが追加された。フローラベルは、通信経路の品質確保、経路の優先選択のために使用。

|各フィールド|ビット数|説明|
|---|---|---|
|バージョン|4|IPv6を意味する「0110」|
|トラフィッククラス|8|IPv4のToSに該当するフィールド。パケット送信時のQoSを指定|
|フラーラベル|20|通信経路の品質確保、経路の優先選択のために使用。いわばQoS|
|ペイロード長|16|IPv6ヘッダを除く、「拡張ヘッダ」と「ペイロード」のデータ部の長さ|
|ネクストヘッダ|8|IPv4の「プロトコル」に該当するフィールド。拡張ヘッダや上位プロトコルのタイプを表す。拡張ヘッダが複数ある場合、最初の拡張ヘッダのタイプを表す。|
|ホップリミット|8|IPv４のTTLに該当するフィールド。通過できるルータの数を制限する。|
|送信元アドレス|128|送信元のIPv６アドレス|
|宛先アドレス|128|宛先のIPv6アドレス|
|拡張ヘッダ|可変|拡張ヘッダで機能を拡張することが可能|

##表記方法と省略方法
IPv4アドレスは、128ビットを16ビットごとにコロン(:)で区切り、8つのフィールドに分け16進数で表記

```
2進数｜
0010000000000001:0000000011010011:0000000000000000:0000000000000000:0000001010101011:0000000000010001:1111111000100101:1000101101011101

16進数｜
2001:00D3:0000:0000:02AB:0011:FE25:8B5D
```

###IPv6アドレスの省略方法
1. フィールド毎に先頭の0の並びは省略可能
2. フィールドのビットが全て0の場合、1つの0に省略可能
3. ビットが全て0びフィールドが連続している場合、その間の0を省略して2重コロン(::)に省略可能

![](https://www.infraexpert.com/studygif/ipv6z6.gif)

##IPv6アドレスの3タイプ

|IPv6アドレスのタイプ|通信対象|説明|
|---|---|---|
|ユニキャストアドレス|1対1|IPv4のユニキャストと同じように、1対1の通信で利用されるアドレス。このアドレスを使用し、1つのインターフェイスを特定することができる|
|マルチキャストアドレス|1対グループ|IPv4のマルチキャストと同じく、1対グループの通信で利用されるアドレス。マルチキャストは複数のインターフェイスに割り当てることのできるアドレス。IPv6ではブロードキャストアドレスが存在しないためマルチキャストアドレスの一部を同様の用途に割り振ることで、ブロードキャストと同等機能を実現。|
|エニーキャストアドレス|1対グループ内の1つ|IPv4にはないアドレス。グループに属する1つのインターフェイスにパケットが到達すると、それ以上は配送されない。つまりグループで最も近いデバイスだけ通信するようになる。エニーキャストは複数のインターフェイスに割り当てることのできるアドレス。|

## IPv6の3つのスコープ

|スコープの種類|スコープ|説明|
|---|---|---|
|リンクローカル|同一セグメント|同一セグメント状の端末と通信する場合に使用するアドレス。リンクローカル宛のパケットはルーティングされないため、ルータを超えられない。|
|ユニークローカル|組織内ネットワーク|IPv4のプライベートアドレスに相当する。異なるセグメント上の端末と通信できるが組織内ネットワークでのみ有効なアドレス。|
|グローバル|グローバルネットワーク|IPv4のグローバルアドレスに相当する。全てのIPv6ネットワークで一意となる。ローカル、組織内、インターネット等スコープの制限はなくどこでも利用可能。|

![](https://www.infraexpert.com/studygif/ipv6z10.gif)