IPv6アドレスを割り当てる方法を説明する前に、IPv6アドレスの構造を簡単に説明しておこう。IPv6アドレスは、ネットワークを識別するための「プレフィックス」と、ネットワーク上の端末を識別するための「インターフェースID」で構成される。プレフィックスがIPv4アドレスにおけるネットワーク部、インターフェースIDはホスト部に相当する。
IPv6アドレスを割り当てる方法は3つある(図3-1)。まずIPv6プロトコルが定めている「SLAAC▼」がある。この方法では、ルーターがIPv6アドレスの前半部分であるプレフィックスを端末に配布する。この配布には、「ルーター広告(RA▼)」というICMPv6▼のメッセージが使われる。後半部分のインターフェースIDは端末が個別に生成し、RAで受け取ったプレフィックスと組み合わせてIPv6アドレスを作る。
ただし、これだけではネットワーク設定が完結しない。DNSサーバーの情報が必要になる。そのためには後述するDHCPv6あるいは、RAの「RDNSS▼」というオプションを使って配布するか、手動で設定することになる。
DHCPv6でアドレスを配布
2つ目の方法は、DHCPのIPv6版であるDHCPv6で128ビットのIPv6アドレス全体を配布する方法だ。つまり、IPv6アドレスのプレフィックスとインターフェースIDの両方をDHCPv6で配布する。この方法を「ステートフルDHCPv6」と呼ぶ。IPv6アドレスを配布する状態(ステート)をDHCPv6サーバーが把握するので「ステートフル」というわけだ。DHCPv6はIPv4のDHCPと同様に、DNSサーバーの情報も配布する。
3つ目が、SLAACとDHCPv6を組み合わせる方法だ。SLAACではIPv6アドレスは自動設定できるが、DNSサーバーの情報を配布しない。IPv6アドレスのプレフィックスはRA、DNSサーバーの情報はDHCPv6で配布するのが「SLAAC+ステートレスDHCPv6」である。DHCPv6サーバーがIPv6アドレスの状態を把握しないので「ステートレス」になるわけだ。
整理すると、IPv6アドレスの設定とDNSサーバーの情報の配布のそれぞれで、DHCPv6を使う方法と使わない方法がある。ちなみにデフォルトゲートウエイは、RAを発行するルーターが基本的に担当する。
DHCPv6の使い方を決めるのもルーターの役割だ。ルーターが送るRA内にあるMフラグとOフラグ▼という情報で制御する。MフラグとOフラグの値が「0」の場合はDHCPv6を使わない、つまりSLAACを使う。Mフラグが「1」の場合には、ステートフルDHCPv6を使用する。Mフラグが「0」、Oフラグが「1」の場合には「SLAAC+ステートレスDHCPv6」を使う。