IPv6アドレスの解説

IPv6のアドレスって全く馴染めないので少しでも親しみを持てるよう記事にしてみた
まだまだIPv4環境でのお仕事が多く、最近になってぼちぼちIPv6が身近に感じ始めてきました。昔のCiscoの資格取得時に学習したIPv6の記憶内容がすっかりとんでいまして今頃になって再学習です。
自身の備忘録で書き始めましたが、皆さんのIPv6の学習のご一助になれば幸いです

#目次
[1.はじめに](#1-はじめに)
[2.IPv6おさらい](#2-IPv6おさらい)
[3.IPv6表記ルール](#3-IPv6表記ルール)
[4.ユニキャストアドレスの分類](#4-ユニキャストアドレスの分類)
[5.マルチキャストアドレス](#5-マルチキャストアドレス)
[6.おわりに](#6-おわりに)



#1. はじめに
最近インターネット契約回りの仕事をしているとやはりIPv6知識って必要だなーと感じることが多くなってきた。ipconfigたたいたときにワッとIPv6アドレスが表示されるとゲンナリする。少しでもこのアレルギーを何とかしたいと思う今日この頃

#2. IPv6 とは
IPv6は128bit(16byte)　事実上無制限にIPアドレスのデバイス割り当てが可能！
IPv6アドレスの自動設定機能があり、クライアントPCは自動的にIPv6アドレスが使用できる
ブロードキャストが廃止された。同様のブロードキャストの仕様はマルチキャストの中のサービスとして扱われる

IPv6は前半64bitのサブネットプレフィックスと後半64bitのインターフェースIDにわかれる


#3. IPv6表記ルール
16進数の4桁が8個（ブロック）区切りで表記される
16進数の１桁は4bit 4桁は16bit.これが8個分なので16bit*8で128bit
2進数から16進数は2進の4桁で表記される
16進から2進に変換は4桁で表記される


・各ブロックの先頭から連続するゼロは省略可能
・0000は0に省略可能
・連続した0000の固まり（0）のブロックは1回に限り省略可能

* IPv6の「 プレフィックス 」と「 インターフェースID 」
IPv4アドレスは、ネットワーク部とホスト部によって構成される。（IPv4と一緒）IPv6アドレスは、プレフィックスと
インターフェースIDにより構成される。IPv6のプレフィックスは、IPv4のネットワーク部に該当。
IPv6のインターフェースIDは、IPv4のホスト部に該当する

※/24 のようにプレフィックス表記も可能

#4 ユニキャストアドレスの分類
・ルータやホストに設定するのはユニキャストアドレスとなる。以下の四つに分類される

**・グローバルユニキャストアドレス**
**・サイトローカルユニキャストアドレス**
**・ユニークローカルユニキャストアドレス**
**・リンクローカルユニキャストアドレス**

#### グローバルユニキャストアドレス
最初の3bitが001 で始まる→0010のこと→2のこと
よって、グローバルユニキャストアドレスのレンジは2000::/3 と表記できる

さらに次にのように用途が決められている
2001::/16 IPv6インターネット
IPv6のインターネットの接続サービスを契約するとISPから48bit分のグロバルルーティングプレフィックスを割り当てられる

次の16ビットはサブネットIDで組織が自由に設定できる。サブネットIDは組織内でサブネット分割する場合に、各サブネットごとにユニークになるように割り当てる固有のID。残り64bitはインタフェースID

#### ユニークローカルユニキャストアドレス
・企業内のLANなどプライベートな範囲で利用するためのアドレスがユニークローカルユニキャストアドレス

範囲はFc00:/7
IPv4のプライベートアドレスに相当
最初の8bitが範囲、40ビットのグローバル識別子によってサイトを識別する
グローバル識別子はランダムに生成する値を利用する
サブネットIDは16bit 
ルータを超えてサブネット間の通信は可能だがユニークローカルユニキャストアドレスではインターネットへは接続できない

#### リンクローカルアドレス
同一セグメント上で使用するアドレス。同じリンク（サブネット）上のホストの通信においてのみ利用するアドレス

リンクローカルは必ず各インタフェースで必要なアドレス。
IPv6が有効なインタフェースでは自動的に割り当てられる
インタフェースIDはmodified EUI-64形式でMACアドレスをもとにして自動的に作成される

※　組織内ネットワークで使用される「サイトローカルアドレス」は廃止された(RFC3879)
「サイトローカルアドレス」にかわるものがユニークローカルユニキャストアドレス

##### modified EUI-64について
※modified EUI-64は、ホストのMACアドレスをベースにしてインタフェースIDをする。MACアドレスを基にしてインタフェースIDを生成すれば、一意のインタフェースIDができる（macアドレスは重複しないため）

MACアドレスは、24bitのベンダーIDと24bitのシリアル番号からなる。インタフェースIDの64ビットに足らないので、16ビットを追加する。modified EUI-64は、MACアドレスを真ん中で割って、その間に「FF:FE」を挟む。これで、64ビット(48bitのmac＋16bit「FF:FE」)になる







#5. マルチキャストアドレス

上位8ビットが「11111111」であるアドレス　→　FF00::/8
上位8ビットに続く8ビットは4ビットづつそれぞれフラグとスコープにわかれる
そして上記の16bitを除く最後の112bitはグループIDと呼ばれる
・フラグ　→　マルチキャストアドレスのタイプを表す

・スコープ　→　マルチキャスパケットの到達する範囲を表す
（あるサブネット内のみを到達範囲とするのか、組織内全体を到達範囲とさせる　とか）

・フラグ

| bit表記 | 16進表記 | 説明 |
|:-:      |:-:      |:-:|
|0000   | 0  | 永続的マルチキャストアドレス  |  
|0001   |  1 | 一時的マルチキャストアドレス　|  

・スコープ

| bit表記 | 16進表記 | 説明 |
|:-:      |:-:      |:-:|
|0000   | 0  | 予約  |  
|0001   |  1 | インターフェースローカル　|  
|0000   | 2 | リンクローカル  |  
|0001   |  3 | 予約　|  
|0000   | 4  | 管理ローカル  |  
|0001   |  5 | サイトローカル　|  
|0000   | 6  | 未指定  |  
|0001   |  7 | 未指定|  
|0000   | 8  | 組織ローカル |  
|0001   | 9~D | 未指定　|  
|0000   | E | グローバル  |  
|0001   |  F | 予約　|  

・IPv6マルチキャストアドレスは、すでにIANAが予約しているものがある。
全ノードマルチキャスアドレス　→　FF01::1、FF02::1
全ルータマルチキャスアドレス　→　FF01::2、FF02::2、FF05::2
OSPFv3　→　FF02::5、FF02::6
RIPng　→　FF02::9
IPv6 EIGRP　→　FF02::A
要請ノード(Solicited-Node)マルチキャストアドレス　→　FF02:0:0:0:0:1:FF00:0000～FF02:0:0:0:0:1:FFFF:FFFF

・IPv6のマルチキャストアドレスのMACアドレス
マルチキャストアドレスを送信するときはイーサネットヘッダでカプセル化する。このとき宛先MACを指定しないといけない。IPv6マルチキャストを送る際に宛先MACアドレスは宛先IPv6アドレスから自動的に決まる
先頭の16bitは決まっている。→　3333
下位の32bitはIPv6マルチキャストアドレスの下位の32bitをそのまま使う

例

| 宛先IPv6 | 宛先Mac | 
| :-: | :-:| 
|FF02::123:4567   | 3333.0123.4567  | 

#参考文献
以下の情報を参考にさせて頂いています。
[・ネットワークエンジニアとして IPv6をはじめから技術解説](https://www.infraexpert.com/study/study35.html)
[・ネットワークのおべんきょしませんか？](https://www.n-study.com/)

## さいごに
初めての投稿です。誤り、不足あれば指摘お願いします！
色々のqiitaのマークダウン記法を調べながらちまちま書いていたらおそらく4時間くらいは費やしたかも。。
もっと記事を書いて投稿スピードあげていきたいです。