at_yasu's blog

ロード的なことを

IPv6のメモ書き

種類

ユニキャストアドレス
インターフェース毎に割り当てるアドレス
マルチキャストアドレス
複数のノードに割り当てられるアドレス。ffxx:: で始まる。返信にはユニキャストアドレスで返す。送信元がこれだと、ルータは中継をしては行けない。
エニキャストアドレス
複数のノードに割り当てるアドレス。ルーティングで一番近い(最適な)ノードと通信する。例:コールセンターなど、同じアドレスを複数台で共有する場合など。
スコープ
リンクローカルスコープ
あるリンク(ネットワーク)でのみ唯一なアドレス。このアドレス宛のパケットは、ルータを超えて配送される事は無い。
グローバルスコープ
全IPv6で唯一なアドレス。

表記

  • 16進数表記で、16bit毎に:で区切る。
  • 0000 は、続いている場合はまとめて略する事が一回のみ出来る。もしくは、0と表記してもいい。
  • 000a というのは、a と略できる。ただし、a000 は略する事は出来ない。
  • fe80:0000:0000:0000:0290:ccff:fe22:8b4c とある場合
    • fe80:0:0:0:290:ccff:fe22:8b4c
    • fe80::290:ccff:fe22:8b4cと略する事が出来る。
  • fe80:0000:0100:0000:0290:ccff:fe22:8b4c とある場合。
    • fe80::0100::290:ccff:fe22:8b4c ←::の略が使えるのは一回のみであり、二カ所を省略してはいけない。
インターフェースの指定

インターフェース毎にIPv6のアドレスを割り当てる事が出来るが、一つのインターフェースに複数のIPv6アドレスを割り当てる事も出来る。だから、インターフェースを指定する表記もある。IPv6%[interface device name]という表記になる。

例:fe80:0000:0000:0000:0290:ccff:fe22:8b4c%fxp0

ポート番号の指定

IPv4の場合、0.0.0.0:80 とコロンで区切れたが、IPv6の場合は、[IPv6]:となる。

例:[fe80:0000:0000:0000:0290:ccff:fe22:8b4c]:80
例:[fe80:0000:0000:0000:0290:ccff:fe22:8b4c%fxp0]:80 *1


IPv4互換アドレス

IPv4-IPv6互換の為のアドレス。この項に書いているは10進表記のIPv4アドレス。

IPv4互換アドレス
「0:0:0:0:0:0:」もしくは「::」と表記。IPv6の宛先としてIPv4互換アドレスが使用された場合、IPv6の通信は自動的にIPv4ヘッダーを使ってカプセル化され、IPv4通信を介して宛先に送信する。
IPv4射影アドレス
「0:0:0:0:0:FFFF:」もしくは「::FFFF:」と表記。IPv4専用ノードをIPv6ノードとして表現する為に使われます。IPv6パケットの送信元や宛先アドレスとして使用される事はありません。
6to4アドレス
インターネット上でIPv4,IPv6の両方を実行する二つのノード間において、データをやり取りする時に使われるアドレス。6to4アドレスは、2002::/16 というプレフィクスと、そのノードのグローバルIPv4アドレスの32bitが組み合わされて作られる。例:IPv4が131.107.0.1である場合、6to4アドレスは「2002:836B:1::/48」になる。

予約アドレス

[]
:1 または 0:0:0:0:0:0:0:1[] : ループバックアドレス
[]
: または 0::0[]:未指定アドレス、IPv4の「0.0.0.0」に相当。

ユニキャストアドレス

グローバルユニキャストアドレス

IPv4で言う、グローバルアドレス。

| 001 |<- 13bit/TLA ID ->|<- 8bit/Res ->|<- 24bit/NLA ID ->|<- 16bit/SLA ID ->|<- 64bit/Interface ID->|
TLA ID
トップレベル集約識別子の略。ルーティング階層の最上位レベルを識別する為のID。IANAによって管理されており、各地域のインターネット登録基幹*2に割り当てられる。そして、そこから各ISPに割り当てられる。
Res
TLAもしくはNLAのどちらかを拡張する為に予約されているフィールド
NLA ID
アドレスの次レベル集約識別子を示す。各ISPが、サイトを識別する為のアドレス指定とルーティングをする為に使うフィールド。
SLA ID
サイトレベル集約識別子の略。個々の組織が、各自のサイトにあるサブネットを識別する為に使う。サブネットの作成や、多重のアドレス指定階層と効率的なネットワーク構成にしてもいい。このアドレスが割り当てられた場合は、IPv4で言うクラスAネットワークを割り当てられた場合に相当。ISPからはどうなっているか見えない。
インターフェースID
サブネット上のノードのインターフェースを示す。


なお、それらのフィールドによって、3種類のトポロジ構成が構成されるみたい。

Public Topology
001〜NLA IDまでの48bit。IPSの集合
Site Topology
SLA IDの事。
Interface Identifier
Interface ID
ローカルユニキャストアドレス

ローカルで使うユニキャストアドレスは、2種類ある。

リンクローカルアドレス
オンリンクの近隣ノード間、近隣探索で使用。FPは「1111 1110 10|FE80::/64」。IPv4でいう、「169.254.0.0/16」に相当。
サイトローカルアドレス
同一サイト内で通信しているノード間で使用。FPは「1111 1110 11|FEC0::/48」。IPv4でいう、「10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16」に相当。48bitは固定の後、16bitのサブネット識別子が続く。そのサブネット識別子を利用して、組織内にサブネットを作成する。

グローバルユニキャストアドレスとサイトローカルアドレスは、アドレスの先頭48bit以外は同一。グローバルユニキャストアドレスの、SLAに相当する部分が、サイトローカルアドレスのサブネット識別子に当たる。このため、特定のサブネット番号を割り当てる事で、サイトローカルアドレスとグローバルユニキャストアドレスの両方で使われているサブネットを識別できる*3


マルチキャスト

IPv4と違う点は、アドレス自体がサービスを意味している事(かしら)

先頭は必ず0xffで始まる。フラグ、スコープで4bitずつ使用、次の112bitの範囲でグループを意味している。

|  8 |   4   |    4     |  112       |
| FF | Flag | Scope | GroupID |
Flag
0x00 ウェウノンマルチキャストアドレス
IANAによって割り当てられた、永続的なアドレスを意味する
0x01 一時的マルチキャストアドレス
永続的ではないアドレスを意味する
Scope
0000
予約済み
0001
インターフェースローカル
0010
リンクローカル
0101
サイトローカル
1000
組織ローカル
1110
グローバル
1111
予約済み


RFC2373とこのサイトからの例。GroupIDが101をNTPサーバとした例。

  • FF01::101
    • 同一インターフェースに所属するNTPサーバ
  • FF02::101
    • 同一リンクに所属するNTPサーバ
  • FF05::101
    • 同一サイトに所属するNTPサーバ
  • FF08::101
    • 同一組織に所属するNTPサーバ
  • FF0E::101
    • インターネット上のNTPサーバ

*1:合ってるかどうか不明

*2:日本だとJPNICだろなぁ

*3:よく意味が分からない。