「IPv6アドレス」の版間の差分
削除された内容 追加された内容
Torakichi500 (会話 | 投稿記録) →IPv6アドレススコープ: 誤字削除 タグ: モバイル編集 モバイルウェブ編集 改良版モバイル編集 |
Akiomorisita (会話 | 投稿記録) 編集の要約なし |
||
(4人の利用者による、間の6版が非表示) | |||
1行目:
{{Otheruses|[[IPv6パケット]]のアドレス部に指定する値|[[通信プロトコル]]としてのIPv6|IPv6}}
{{複数の問題
| 出典の明記 = 2021年2月
13行目:
==IPv6アドレスの種類==
IPv6アドレスは、以下の3種類に分類される<ref name="rfc4291">
*[[ユニキャスト]]アドレス - 単一のインタフェースのための識別子。インターネットプロトコルは、ユニキャストアドレスに送られたパケットを、そのアドレスによって識別されるインタフェースに配送する。
*[[エニーキャスト]]アドレス - インタフェース集合(通常は異なるノードに属する)のための識別子。エニーキャストアドレスに送られたパケットは、そのアドレスで識別されるインタフェースの内で、ルーティングプロトコルの距離の定義に従って「最も近く」(nearest)にあるただ1つのインタフェースに配送される。エニーキャストアドレスはユニキャストアドレスと同じフォーマットのため、表記上は区別がつかない。ただ、同じアドレスが複数のインタフェースに設定されるかどうかの違いしかない。
99行目:
|-
|9
|R (Rendezvous)<ref name="rfc3956">
|ランデブーポイントがない
|ランデブーポイントがある
|-
|10
|P (Prefix)<ref name="rfc3306">
|プリフィックス情報がない
|アドレスはネットワークプリフィックスに基づく
160行目:
|style="text-align: center;"| ''group ID''
|}
リンク範囲(link-scoped)マルチキャストアドレスは、互換性のあるフォーマットを使用する<ref name="rfc4489">
==表記法==
182行目:
IPv6アドレスを単純化しようとしたとき、標準の規定ではIPアドレスの表現に柔軟性がある。しかし、そのために同一のIPアドレスについて複数の表現が許されることになり、特定のIPアドレスをテキストファイルやトラフィックの中から探したり、2つのアドレスが同一であるかを調べたりするのが困難になる。
IETFは、この問題を軽減するために、IPv6アドレスをテキストで表現する際の規範的なフォーマットの規定を
*それぞれの16ビットフィールドの先頭の0は省略する。例えば、2001:0db8::0001 は 2001:db8::1 とする。ただし、全てが 0 である16ビットフィールドは 0 とする。
*0のみのフィールドは"::"で短くする。例えば 2001:db8:0:0:0:0:2:1 は 2001:db8::2:1 とする。ただし、2001:db8:0000:1:1:1:1:1 は 2001:db8:0:1:1:1:1:1 とする。
200行目:
===ネットワーク資源識別子におけるIPv6アドレスの表現===
IPv6アドレスの[[コロン (記号)|コロン]](:)は、[[Uniform Resource Identifier|URI]]や[[Uniform Resource Locator|URL]]のような資源識別子の確立した文法と競合する。コロンは伝統的にホストパスと[[ポート番号]]の区切りに使用されてきた<ref name="rfc3986">
:<nowiki>https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]/</nowiki>
URLがポート番号を含む場合は以下のようにする。
216行目:
==IPv6アドレススコープ==
未指定アドレス(::)以外の全てのIPv6アドレスは「スコープ」(scope)を持っている<ref name="rfc4007">
ユニキャストアドレスでは、リンクローカルアドレスと[[localhost|ループバックアドレス]]は''link-local''のスコープを持っている。''link-local''スコープは、そのアドレスが直接接続(link)されているネットワークでのみ使用されることを意味する。
253行目:
===一般的な割り当て===
IPv6アドレスの割り当てプロセスの管理は、[[インターネットアーキテクチャ委員会]]と[[Internet Engineering Steering Group]]から[[Internet Assigned Numbers Authority]] (IANA)に委任されている<ref name="rfc1881">
効果的な[[経路集約]](route aggregation)を提供し、それによってインターネット・ルーティング・テーブルのサイズを減らすために、全体のアドレス空間の8分の1(2000::/3)だけが[[インターネット]]で使用するために割り当てられている。IPv6アドレス空間の残りは、将来の利用と特別な目的のために予約されている。アドレス空間は/23から/12という大きなブロック単位でRIRに割り当てられている<ref>https://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml IPv6 Global Unicast Address Assignments], IANA</ref>。
RIRは[[ローカルインターネットレジストリ]](LIR)に小さなブロックを割り当てる。そのサイズは一般的に/19から/32の範囲である<ref>[http://www.db.ripe.net/whois?form_type=simple&full_query_string=&searchtext=DE-TELEKOM-20050113&do_search=Search DE-TELEKOM-20050113]. Db.ripe.net. Retrieved on 2011-09-28.</ref><ref>{{cite web |url=https://www.arin.net/policy/nrpm.html#four22 |title=ARIN Number Resource Policy Manual: Initial allocation to ISPs|accessdate=2016-02-25}}</ref><ref>{{cite web |url=http://www.ripe.net/ripe/docs/ripe-481#minimum_allocation |title=RIPE NCC IPv6 Address Allocation and Assignment Policy: Minimum allocation|accessdate=2016-02-25}}</ref>。アドレスは一般的に/48から/56の単位でエンドユーザに分配される<ref name="rfc6177">
グローバルユニキャストの割り当ての記録は、それぞれのRIRのサイトなどで閲覧できる<ref>[https://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xml for example]. Iana.org. Retrieved on 2011-09-28.</ref>。
276行目:
それぞれのサブネットプリフィックスの最も低いアドレス(インタフェース識別子を全て0に設定したもの)は、「サブネット・ルータ・エニーキャストアドレス」として予約されている<ref name="rfc4291" />。アプリケーションはこのアドレスを利用可能な1つのルータとの通信に利用できる。このアドレス宛のパケットはただ1つだけのルータに届く。
/64のサブネットプリフィックスの最上位の128個のアドレスは、エニーキャストアドレスとして予約されている<ref name="rfc2526">
==特別なアドレス==
{{see also|en:Reserved IP addresses#IPv6}}
IPv6において特別な意味を持つアドレスがある<ref name="rfc5156">
===ユニキャストアドレス===
296行目:
====ユニークローカルアドレス====
{{Main|ユニークローカルアドレス}}
* fc00::/7 — [[ユニークローカルアドレス]] (ULA) はローカルな通信のために使われる。それらは、設定されたサイトの中でだけルーティングできる<ref name="rfc1918">
====IPv4アドレス埋め込みIPv6アドレス====
302行目:
* ::ffff:0:0/96 — このプリフィックスは「IPv4射影IPv6アドレス」(IPv4-mapped IPv6 address)に割り当てられている。この種類のアドレスを使用することで、IPv4の[[トランスポート層]]プロトコルをIPv6ネットワーク[[アプリケーションプログラミングインタフェース]](API)を透過して使用することができる。サーバアプリケーションは、1つの[[ソケット (BSD)|ソケット]]を待ち受けるだけで、IPv6とIPv4の両方のクライアントからの要求を受け付けることができる。IPv4クライアントは、IPv4射影IPv6アドレスによって、サーバからはIPv6クライアントのように見える。伝送においても同様に取り扱われる。IPv4またはIPv6のデータグラムを伝送するのに、IPv6アドレスとIPv4射影IPv6アドレスにバインドされた確立したソケットを使用することができる。([[IPv6#IPv4との相互運用]]を参照)
* ::ffff:0:0:0/96 — 「IPv4変換IPv6アドレス」(IPv4-translated address)に割り当てられており、[[ステートレスIP/ICMP変換]](SIIT)プロトコルに使用する。
* 64:ff9b::/96 — "Well-Known Prefix"。このプリフィックスのアドレスは、自動IPv4/IPv6トランスレーション(NAT64)に使用する<ref name="rfc6052">
{{Main|IPv6移行技術#NAT64}}
* 2002::/16 — このプリフィックスは、[[6to4]]のために使用される。(6to4はHistoricalとなった
====特別用途のアドレス====
{{Main|Teredo トンネリング}}
:IANAは'Sub-TLA ID'と呼ばれるアドレスブロックを特別な用途のために予約している<ref name="rfc4773">
* 2001::/32 — [[teredo]]に用いられる。
* 2001:2::/48 — Benchmarking Methodology Working Group (BMWG)に割り当てられており<ref name="rfc5180">
* 2001:20::/28 — ORCHIDv2 (Overlay Routable Cryptographic Hash Identifiers)<ref name="rfc7343">
====文書記述用アドレスプレフィックス====
* 2001:db8::/32 — このプリフィックスは、文書記述用に使用される<ref name="rfc3849">
====破棄====
* 0100::/64 — このプリフィックスは、破棄するトラフィックに使用される<ref name="rfc6666">
====非推奨とされ廃止されたアドレス====
406行目:
==ステートレスアドレス自動設定==
システムの起動時、ノードは、それぞれのIPv6が利用可能なインタフェースについて[[リンクローカルアドレス]]を自動的に生成する。グローバルにルーティングできるアドレスが、手動で設定されるか、後述する「設定プロトコル」から得られる場合でも同様である。
それは、[[近隣探索プロトコル]]の機能を使用したステートレスアドレス自動設定(SLAAC)<ref name="rfc4862">
IPv4に「設定プロトコル」はDHCPやPPPを含む。[[DHCPv6]]もあるが、IPv6のホストはグローバルにルーティング可能なユニキャストアドレスを作るのに[[近隣探索プロトコル]]を用いる。ホストはルータ要請(RS: router solicitation)を送信し、IPv6[[ルーター]]は割り当てられたプリフィックスとともに応答を返す<ref name="rfc4861">
アドレスの下位64ビットは、64ビットの[[#Modified EUI-64|modified EUI-64]]フォーマットによるインタフェース識別子である。この識別子は、通常そのインタフェースの全ての自動的に構成されたアドレスによって共有される。その利点は、1つのマルチキャスト・グループだけが近隣探索のために参加する必要があることである。このためには、ネットワークプリフィックス ff02::1:ff00:0/104 とアドレスの下位24ビットからなるマルチキャストアドレスが用いられる。
415行目:
64ビットのインタフェース識別子は、48ビットの[[MACアドレス]]から生成するのが最も一般的である。MACアドレス 00:0C:29:0C:47:D5 は、真ん中に FF:FE を入れることで64ビットの[[EUI-64]] 00:0C:29:<u>FF:FE</u>:0C:47:D5 に変換される。このEUI-64をIPv6アドレスの中で使うとき、次のように変形される<ref name="rfc4291"/>。 ''Universal/Local''ビット(EUI-64の最上位ビットを第1ビットとしたときの第7ビット)を反転する。ネットワークプリフィックス 2001:db8:1:2::/64 と上記のMACアドレスを用いてIPv6アドレスを生成すると、 2001:db8:1:2:0<u>2</u>0c:29ff:fe0c:47d5 となる。ここで、下線部は''Universal/Local''ビットが1に反転された箇所である。1は''Universal''、0は''Local''を意味する。
グローバルユニキャストアドレスのインタフェースIDには、MACアドレス等から生成されるModified EUI-64フォーマットが使用されることが多いが、プライバシー上の懸念がある<ref group="注釈" name="EUI64"/>ため、一意性およびプライバシーの双方を満たす仕様(一時アドレス)への変更が推奨されている
===重複アドレス検出===
435行目:
===一時アドレス===
ステートレスアドレス自動設定でインタフェース識別子を生成するのに、グローバルにユニークな固定のMACアドレスを使用している。そのため、時間がたってIPv6ネットワークプリフィックスが変わったとしても、MACアドレスによってネットワーク機器を、そしてユーザを追跡することができる<ref>[http://portal.acm.org/citation.cfm?id=1852723&dl=GUIDE&coll=GUIDE&CFID=103687796&CFTOKEN=17254293 The privacy implications of stateless IPv6 addressing]. Portal.acm.org (2010-04-21). Retrieved on 2011-09-28.</ref>。IPv6アドレスの一部とユーザが永久に結びつく危険性を減らすため、ノードは「一時アドレス」(temporary address)を作ることができる。一時アドレスは、時間によりランダムに変化するビット列に基づいたインタフェース識別子<ref name="rfc4941">
外部ホストがDNS問い合わせのできるパブリックアドレスを使っている場合、接続を始めるための送信元アドレスとして、一時的なアドレスを使用することができる。
448行目:
IPv6はアドレススコープと選択優先性(selection preference)の概念を導入している。選択優先性は、他のホストと接続するときに送信元と宛先のアドレスを選択するために複数の選択を与える。
優先選択アルゴリズム<ref name="rfc6724">
:{| class="wikitable"
|-
474行目:
| align="right" | 30
| align="right" | 2
| | 6to4 (Historical
|-
| <tt>2001::/32</tt>
514行目:
* BSD系のOS(macOSを含む)では、数値のゾーンインデックスを2番目の16ビットフィールドに入れることでも表現できる(例 fe80:1::3)。
ゾーンインデックスの表記は、[[Uniform Resource Identifier]](URI)の中で使用する時に文法的に競合するため、パーセント記号"%"を[[パーセントエンコーディング]]によって回避しなければならない<ref>[
==DNSにおけるIPv6アドレス==
[[Domain Name System]](DNS)では、''AAAA''リソースレコード(クアッドAレコード)によって[[ホスト名]]をIPv6アドレスに対応づけしている。[[逆引き#逆引き (DNS)|DNS逆引き]]のために、IETFはドメイン名[[.arpa|ip6.arpa]]を維持しており、その名前空間は、後述するようにIPv6アドレスを4ビット([[ニブル]])単位で1桁ずつの[[十六進数]]に分けた物になっている。この仕組みは
IPv4と同様、DNSではそれぞれのホストは2つのDNSレコード、アドレスレコードと逆引きポインターレコードによって表現される。例えば、''derrick''という名前のホストコンピュータが''example.com''ドメインにあり、[[ユニークローカルアドレス]] fdda:5cc1:23:4::1f を持っているとする。そのAAAAアドレスレコードは
545行目:
===移行への挑戦===
2009年現在、多くの家庭内ネットワークのNAT装置やルータのDNSリゾルバは、未だにAAAAレコードを不適切に取り扱う<ref>
クライアント・ソフトウェアが{{仮リンク|Happy Eyeballs|en|Happy Eyeballs}}アルゴリズム(Fast Fallbackアルゴリズムとも言う)を使用することで、この問題は軽減される。このアルゴリズムは、IPv6とIPv4の接続を同時に開始し、先に接続が完了した方を使用するという物である。
552行目:
===非推奨とされ廃止されたアドレス===
<!-- 廃止された順に並んでいる -->
* サイトローカルプリフィックス fec0::/10 は、組織内のサイトネットワーク内でのみ有効であると特定されたアドレスである。これは、1995年12月に定められた最初のアドレス体系の一部であった<ref name="rfc1884">
* アドレスブロック 0200::/7 は、1996年8月にOSI NSAP-mapped プリフィックスとして定義された<ref name="rfc4147">
* 96ビットの0のプリフィックス ::/96は「IPv4互換アドレス」(''IPv4-compatible address'')として知られ、1995年に初めて言及され<ref name="rfc1884" />、1998年に初めて記述された<ref name="rfc2471" />。IPv4互換アドレスは、IPv6移行技術の中で[[IPv4]]アドレスを表現するのに使用された。IPv4互換アドレスは、最初の(最上位の)96ビットを0とし、残りの32ビットでIPv4アドレスを表現する。2006年2月、[[Internet Engineering Task Force]](IETF)はIPv4互換アドレスの使用を非推奨とし廃止された<ref name="rfc4291" />。IPv6アドレスを格納することのできる固定長のメンバーを持つテーブルやデータベースで、IPv4互換アドレスはIPv4アドレスを意味することになっている。
* アドレスブロック 3ffe::/16 は、1998年12月に{{仮リンク|6bone|en|6bone}}ネットワークの試験目的に割り当てられた<ref name="rfc2471">
===その他===
* IPv6アドレスの[[Domain Name System]](DNS)の[[逆引き#逆引き (DNS)|逆引き]]用のレコードは、[[.int|int]]トップレベルドメインの下のip6ゾーンに登録されていた。2000年、[[インターネットアーキテクチャ委員会]](IAB)は[[.arpa|arpa]]トップレベルドメインを廃止する意向を示したが、2001年にarpaトップレベルドメインがその本来の機能を維持しなければならないと決めた。ip6.intドメインはip6.arpaに移された<ref name="rfc3152">
* 2011年3月、[[IETF]]は、エンドサイトへのアドレスブロックの配分の推奨を変更した<ref name="rfc6177" />。/48, /64, /128を割り当てる(これは2001年の[[インターネットアーキテクチャ委員会|IAB]]と[[IESG]]の見解に従ったものである)<ref name="rfc3177">
== 脚注 ==
|