IPv6アドレス
ノードは仮のアドレスの要請ノードマルチキャストグループに参加し(まだ参加していない場合)、仮アドレスを宛先、未指定アドレス(::/128)を送信元としてNeighbor Solicitationメッセージを送信する。ノードは、Neighbor Advertisementが受信できるようにするために全ホストマルチキャストアドレス ff02::1 にも参加する。
ノードが自身の仮アドレスを宛先とするNeighbor Solicitationを受信した場合、そのアドレスはユニークではない。ノードが、仮アドレスを送信元とするNeighbor Advertisementを受信した場合も同様である。アドレスがユニークであると確認できた時だけ、そのアドレスが割り当てられ、インタフェースによって使用される。
この仕組みを重複アドレス検出(DAD: Duplicate address detection)という。
インタフェースに割り当てられたIPv6アドレスは固定された有効期限(lifetime)を持つ。より短い期間に設定されない限り、有効期限は無制限である。アドレスには、preferred lifetimeとvalid lifetimeの2つの有効期限がある。有効期限は、ルーターで設定されて自動設定によって値が提供されるか、インタフェースに手動で設定する。
アドレスがインタフェースに割り当てられたとき、そのアドレスは"preferred"の状態にあり、preferred-lifetimeの間それが継続する。preferred-lifetimeが経過すると"deprecated"の状態になり、そのアドレスを使って新しい接続はできなくなる。valid-lifetimeが経過すると"invalid"の状態になり、そのアドレスはインタフェースから除かれ、インターネットから新しいアドレスの割り当てを受ける。
注意: ほとんどの場合、新しいRouter Advertisement(RA)を受信することで有効期限のタイマーが元に戻るので、有効期限は期限切れになることはない。しかし、RAが受信できない場合、preferred-lifetimeが経過してアドレスは"deprecated"状態になる。
ステートレスアドレス自動設定でインタフェース識別子を生成するのに、グローバルにユニークな固定のMACアドレスを使用している。そのため、時間がたってIPv6ネットワークプリフィックスが変わったとしても、MACアドレスによってネットワーク機器を、そしてユーザを追跡することができる。IPv6アドレスの一部とユーザが永久に結びつく危険性を減らすため、ノードは「一時アドレス」(temporary address)を作ることができる。一時アドレスは、時間によりランダムに変化するビット列に基づいたインタフェース識別子を使用し、有効期限を比較的短く(数時間から数日)することで短い時間で新しいアドレスに置き替えられる。
外部ホストがDNS問い合わせのできるパブリックアドレスを使っている場合、接続を始めるための送信元アドレスとして、一時的なアドレスを使用することができる。
Mac OS X Lion以降のmacOS、Windows Vista・Windows Server 2008以降のマイクロソフトのOSでは、IPv6のネットワークインタフェースの設定で、デフォルトで一時アドレスを使用する設定になっている。
実際には、ISPから配布されるプレフィックスが契約ごとに固定されている運用が多く、プレフィックスと他の情報を組み合わせて使用してユーザを追跡することができるため、プライバシー保護の観点からは、限定的な効果しかない。
IPv6利用可能なネットワークインタフェースは、通常2つ以上のIPv6アドレスを持っている。例えばリンクローカルとグローバルアドレス、恒久アドレスと一時アドレスなどである。
IPv6はアドレススコープと選択優先性(selection preference)の概念を導入している。選択優先性は、他のホストと接続するときに送信元と宛先のアドレスを選択するために複数の選択を与える。
優先選択アルゴリズムは、特定の宛先(デュアルスタック実装におけるIPv4射影IPv6アドレスを含む)の中で通信において最も適切なアドレスを選択するアルゴリズムであり、各々のルーティングプリフィックスを優先順位レベルと結びつけるカスタマイズ可能な選択テーブルに基づいている。デフォルトのテーブルは以下の通りである。
デフォルト設定は、IPv4よりもIPv6を優先し、できるだけ小さなスコープの宛先を優先する。そのため、他の条件が同じならば、グローバルにルーティングされた経路よりもリンクローカルの通信の方が優先される。プリフィックスポリシーテーブルはルーティングテーブルに似ている。すなわち、優先順位の値がルーティングテーブルにおける接続コストの役割として働き、より高い優先度はより大きい値として表される。
送信元アドレスは宛先アドレスと同じラベルの値により評価される。アドレスはビット列の最上位からの最長一致によってプリフィックスと比較される。候補の送信元アドレスはオペレーティングシステムから取得し、候補の宛先アドレスはDNS問合せによって取得する。
ホストの全てのリンクローカルアドレスは共通のプリフィックスを持つので、リンクローカルの宛先にパケットを送信するとき、出て行くインタフェースを選ぶのに通常のルーティング手順を用いることができない。そこで、ゾーンインデックス(zone index)と呼ばれる特別な識別子を用いて付加的なルーティングの情報を提供する。
アドレスが文字で書かれているとき、ゾーンインデックスはアドレスの後にパーセント記号(%)で区切って付加する。ゾーンインデックスの実際の構文は、OSに依存する。
Microsoft Windowsは、数値のゾーンインデックスを使用する(例 fe80::3%1)。インデックスは、インタフェース番号で決定される。
多くのUnix系OS(BSD, Linux, macOSなど)は、インタフェース名をゾーンインデックスに使用する(例 fe80::3%eth0)。
BSD系のOS(macOSを含む)では、数値のゾーンインデックスを2番目の16ビットフィールドに入れることでも表現できる(例 fe80:1::3)。
ゾーンインデックスの表記は、Uniform Resource Identifier(URI)の中で使用する時に文法的に競合するため、パーセント記号"%"をパーセントエンコーディングによって回避しなければならない。例 http://[fe80::3%25eth0]
Domain Name System(DNS)では、AAAAリソースレコード(クアッドAレコード)によってホスト名をIPv6アドレスに対応づけしている。DNS逆引きのために、IETFはドメイン名ip6.arpaを維持しており、その名前空間は、後述するようにIPv6アドレスを4ビット(ニブル)単位で1桁ずつの十六進数に分けた物になっている。この仕組みは RFC 3596 で定義されている。
IPv4と同様、DNSではそれぞれのホストは2つのDNSレコード、アドレスレコードと逆引きポインターレコードによって表現される。例えば、derrickという名前のホストコンピュータがexample.comドメインにあり、ユニークローカルアドレス fdda:5cc1:23:4::1f を持っているとする。そのAAAAアドレスレコードは
derrick.example.com.  IN  AAAA  fdda:5cc1:23:4::1f
となり、IPv6逆引きポインターレコードは
f.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4.0.0.0.3.2.0.0.1.c.c.5.a.d.d.f.ip6.arpa.  IN  PTR   derrick.example.com.
となる。
このポインターレコードは、d.f.ip6.arpaゾーンの権限の委任のチェーンに従って、いくつかのゾーンで定義される。
DNSプロトコルはトランスポート層プロトコルから独立している。要求されるデータのアドレスファミリに関係なく、DNSの問合せと応答はIPv6とIPv4のどちらによってでも送信される。
2009年現在、多くの家庭内ネットワークのNAT装置やルータのDNSリゾルバは、未だにAAAAレコードを不適切に取り扱う。これらのいくつかは、適切な否定のDNS応答をきちんと返さずに、単にそのようなレコードのDNS要求を破棄する。要求が破棄されるので、要求を送信しているホストはタイムアウトを待たなければならない。クライアント・ソフトウェアがIPv6接続が失敗するのを待ってからIPv4接続を行うため、デュアルスタックIPv6/IPv4ホストに接続しようとするときに、しばしば減速を引き起こす。
クライアント・ソフトウェアがHappy Eyeballsアルゴリズム(Fast Fallbackアルゴリズムとも言う)を使用することで、この問題は軽減される。このアルゴリズムは、IPv6とIPv4の接続を同時に開始し、先に接続が完了した方を使用するという物である。
サイトローカルプリフィックス fec0::/10 は、組織内のサイトネットワーク内でのみ有効であると特定されたアドレスである。これは、1995年12月に定められた最初のアドレス体系の一部であったが、2004年9月に廃止された。これは、「サイト」という用語の定義が曖昧だったことにより、ルーティングのルールに混乱を生じていたためである。新しいネットワークはサイトローカルアドレスに対応してはならない。2005年10月、新しい仕様により、サイトローカルアドレスはユニークローカルアドレスに置き替えられた。
アドレスブロック 0200::/7 は、1996年8月にOSI NSAP-mapped プリフィックスとして定義されたが、2004年12月に廃止された。
96ビットの0のプリフィックス ::/96は「IPv4互換アドレス」(IPv4-compatible address)として知られ、1995年に初めて言及され、1998年に初めて記述された。IPv4互換アドレスは、IPv6移行技術の中でIPv4アドレスを表現するのに使用された。IPv4互換アドレスは、最初の(最上位の)96ビットを0とし、残りの32ビットでIPv4アドレスを表現する。2006年2月、Internet Engineering Task Force(IETF)はIPv4互換アドレスの使用を非推奨とし廃止された。IPv6アドレスを格納することのできる固定長のメンバーを持つテーブルやデータベースで、IPv4互換アドレスはIPv4アドレスを意味することになっている。
アドレスブロック 3ffe::/16 は、1998年12月に6boneネットワークの試験目的に割り当てられた。それ以前には、アドレスブロック 5F00::/8 がこの目的のために使用されていた。両方のアドレスブロックは2006年6月にアドレスプールに返還された。
IPv6アドレスのDomain Name System(DNS)の逆引き用のレコードは、intトップレベルドメインの下のip6ゾーンに登録されていた。2000年、インターネットアーキテクチャ委員会(IAB)はarpaトップレベルドメインを廃止する意向を示したが、2001年にarpaトップレベルドメインがその本来の機能を維持しなければならないと決めた。ip6.intドメインはip6.arpaに移された。ip6.intゾーンは正式に2006年6月6日に除去された。
2011年3月、IETFは、エンドサイトへのアドレスブロックの配分の推奨を変更した。/48, /64, /128を割り当てる(これは2001年のIABとIESGの見解に従ったものである)代わりに、インターネット・サービス・プロバイダは、より小さなブロック(例えば/56)をエンドユーザに割り当てることを考えなければならない。地域レジストリARIN, RIPE, APNICの方針は、必要に応じて/56の割り当てを促す。