大雪山 ヒサゴ沼


Date/Time: 2015:09:23 07:30:37
Camera: PENTAX
Model: PENTAX K-5 II s
Exporsure Time: 1/320
FNumber: 6.3
Aperture Value: 5.3
Focal Length: 21.0

Close

y2blog » IPv6(IPoE)ネットワークの構築(アドレス管理の基礎知識)

2

23

2019

IPv6(IPoE)ネットワークの構築(アドレス管理の基礎知識)

IPv6アドレスの管理の基礎知識


一般的な家庭のインターネットの使い方であれば、インターネット側と家庭内LANがルータを介してつながるだけのとてもシンプルなネットワーク構成なので、ルータの設定さえ間違わなければ簡単につながる事だろう.しかしながら小規模な会社などでLAN側が複数のネットワークに分割されているような構成を採っている場合、IPv6環境をLAN側で使えるようにするには、きちんとしたIPv6の知識が無いと太刀打ちできないだろう.


自分でも自宅のネットワーク環境をIPv6対応にして行く過程で、ルータの設定方法が分からずにコマンドマニュアル等を調べても不明な部分が多く、結構手間取ってしまったので、自分自身の覚え書きという意味でももう一度基本からIPv6について調べ直すことにした.


という訳で、今回はフレッツ光サービスでIPoE方式によるIPv6環境を使いこなすための知識や設定方法について数回に分けて調べて行くことにする.また、フレッツ光サービスで使われる事の多い光電話サービスをIPv6環境に影響を与えずに上手く併存させる方法や自分専用の”IPv4 over IPv6トンネル”の作成方法についても触れる予定だ.


現時点での今後の展開予定として、
 ・IPv6(IPoE)ネットワークの構築(実践編)
   具体的なネットワーク構築例や代表的なルータでの設定事例等についての説明
 ・IPv6(IPoE)ネットワークの構築(応用編)
   プライベートIPv6トンネルの作成方法、光電話サービスとの併存環境の構築事例など
を予定している.


尚、フレッツ光サービスでは光電話(IP電話)サービスを契約するかしないかでIPv6のアドレス払い出し方法が大きく異なる.LAN側を複数のLANで構成している場合は、光電話を実際に使う予定がなくても光電話(IP電話)サービスをNTTと契約しておく必要がある.


IPv6のアドレス体系


IPv6で使われるIPアドレスは、これまでのIPv4の32bitから一気に増えて128bitもの長さを持つようになり、IPアドレスの管理の仕組みや使い方がこれまでのIPv4とは全く異なるものとなっている.


IPv6のアドレスのにはユニキャストアドレス、マルチキャストアドレス、エニーキャストアドレスの3種類がある.ユニキャストアドレスは同一のネットワーク範囲(スコープ)内にそのアドレスを持つ機器(インタフェース)が只一つだけ存在する最も一般的なアドレスで、マルチキャストアドレスは同じアドレスが同時に複数の機器(インタフェース)で共有される.エニーキャストアドレスはマルチキャストアドレスと同様に複数の機器(インタフェース)で共有されるが、ネットワークルーティング的に一番近い機器(インタフェース)に届けられるアドレスが存在するが、とりあえずユニキャストアドレスとマルチキャストアドレスについての知識があればよいだろう.



IPv6のアドレスの一般的な表記方法


IPv6の128bitのアドレス空間を表記する場合、全ての桁をまともに表示していたのではあまりにも長くなりすぎて現実的ではないので、0が続くような冗長な部分を省略して短く表記する方法が採られている.IPv6アドレスの推奨される表記方法についてはRFC5952に記載されている.


IPv6アドレスの一般的な表記方法を簡単に説明すると、

 ・IPv6アドレスの表記は16進表記で行い、128bitを16bitずつの8つにフィールド区切り、区切り記号としてコロン(:)を使用する
 ・コロン(:)で区切られた各フィールドにおいて先頭から連続する “0” は表記しないが、最低でも1文字を表示する必要がある.但し、全て “0” のフィールドが1つ以上連続する場合は、連続する2つのコロン(::) で置き換えることが可能

 ・プレフィクス部分の長さを表す際にスラッシュ記号(“/”) を使い、”IPv6アドレス/プレフィクス長” で表す

 ”2001:0db8:0000:0000:0000:0000:0201:0002″  ⇒ ”2001:db8::201:2/64″ 
 ”ff00:0000:0000:0000:0000:0000:0000:0000″  ⇒ ”ff00::/8″ (マルチキャストアドレス)


ユニキャストアドレス


先ずは最も一般的なユニキャストアドレスについて調べて行くことにする.ユニキャストアドレスやマルチキャストアドレスにはその影響範囲を示すスコープという属性があり、機器の1つのインタフェースの範囲内に限って使われるインタフェースローカル、インタフェースが属している特定のリンク間でのみ有効なリンクローカルと有効範囲に制限がないグローバルという三種類に分類される.


ユニキャストアドレスにはこれらの3つの属性に応じて、
 ・グローバルユニキャストアドレス
 ・ユニークローカルユニキャストアドレス
 ・リンクローカルユニキャストアドレス
に分類される.


グローバルユニキャストアドレスのアドレスの構造は次のようになっている.


IPv6 Address Format
IPv6グローバルユニキャストアドレスの構成

左側半分の64bitが、グローバルルーティングプレフィクスとサブネットID、残りの右半分の64bitがインタフェースIDとなっている.グローバルユニキャストアドレスのプレフィクスは、現時点では先頭の3bitが “001” で始まるという制限が設けられている.プロバイダやNTTから割り当てられるグローバルユニキャストアドレスのIPv6アドレスの先頭が”2xxx”で始まっているのはこのためである.


IPv6アドレスの管理はIANAをトップとして、APNIC⇒JPNIC⇒プロバイダ⇒エンドユーザのような階層的に行われており、グローバルルーティングプレフィクス部分を見るとそれらの階層構造が簡単に分かるような仕組みになっている.


IPv6 Address Assinment
IPv6アドレスの割り当てに関する階層構造

サブネットID部分はユーザが割り当てを受けたユーザネットワーク部分をサブネットに分割する際に利用できる空間で、割り当てを受けたプレフィクス長が48bitの場合は、サブネットIDとして16bit分をユーザが自由に使えることになる.


フレッツ光ネクストサービスでは光電話契約が有る場合は、現状では56bit(*1)のプレフィクス長のアドレス空間を割り当てられるので、8bit分をユーザが使用可能だ.最大で256のサブネットに分割できるので、家庭や小規模な事業所で使う分には特に支障はないだろう.


注釈(1): NTTの仕様書『IP通信網サービスのインタフェース ― フレッツシリーズ ― 第三分冊 ― 』 「2.4.2.1.2 IPv6(IPoE)通信におけるIPv6アドレス情報付与方法」では、払い出されるプレフィクス長は48bitまたは56bitとなっている.I.S.P.契約を伴わない光電話単独の契約の場合、ひょっとするとNTTから48bitのプレフィクスが払い出されるのかもしれない.(未確認です)


マルチキャストアドレス


IPv6 Multicast Address
IPv6マルチキャストアドレスの構造

IPv4と同様にIPv6のマルチキャストアドレスは同じアドレスを持つ複数のインタフェースに跨がった機器に対して同時にデータを送る事が可能だ.IPv6マルチキャストアドレスにはスコープの情報が含まれており、インタフェースローカル、リンクローカル、組織ローカル、グローバルなどのスコープを使い分けることが可能だ.


マルチキャストスコープとして、
   ”0001″ : インタフェースローカル
   ”0002″ : リンクローカル
   ”0008″ : 組織ローカル
   ”000e” : グローバル
が一般的に使用されている.


IPv6では下記に示すマルチキャストアドレスが、端末などのIPv6アドレスの割り当てやルータ、DNSサーバ等の情報を自動的に管理するための重要な場面で使われている.


・全ノードマルチキャストアドレス
  ”ff01:0:0:0:0:0:0:1″ インタフェースローカル
  ”ff02:0:0:0:0:0:0:1″ リンクローカル

  近隣探索(Neighbor Discovery)の際のルータ広告(Router Advertisement)、
  近隣広告(Neighbor Advertisement)の際に使用される.
  全てのIPv6ノードはこの全ノードマルチキャストアドレスに参加する必要がある.

・全ルータマルチキャストアドレス
  ”ff01:0:0:0:0:0:0:2″ インタフェースローカル
  ”ff02:0:0:0:0:0:0:2″ リンクローカル

  スコープ内に参加する全てのルータが参加するマルチキャストアドレスで、
  IPv6ルータはこのアドレスに参加する必要がある.

・要請ノードマルチキャストアドレス
  ”ff02:0:0:0:0:1:ff00:0000″ 〜 “ff02:0:0:0:0:1:ffff:ffff” リンクローカル

  インターフェースのユニキャスト(エニーキャスト)アドレスから計算によって導き出される
  アドレスで、近隣要請でのアドレス解決やアドレス重複の検出に用いられる.


その他のIPv6アドレス


IPv6の世界ではこのグローバルユニキャストアドレス以外にリンクローカルユニキャストアドレスがある.リンクローカルユニキャストアドレスは “fe80::/10″というプレフィクスを持ち、ルータなどのアドレスとしてリンクローカルユニキャストアドレスが使われているので、ユーザの目に触れやすいアドレスだろう.同じように、ユニークローカルユニキャストアドレスは “fc00::/7” というプレフィクスを持つ.IPv4と同じように、ループバックアドレス( ::1/128 )など特殊な用途のアドレスが存在する.


IPv4の世界ではプライベートIPアドレスという空間が用意されているが、同じようにIPv6でもユニークローカルユニキャストアドレス(RFC4193)が定義されている.このユニークローカルユニキャストアドレスはインターネットと接続されていない空間で自由に使うことが可能なアドレスで、プレフィクス部分の下位40bitを乱数によるランダムな値とすることで、他と重複する可能性が極めて低いほぼユニークなプライベート的なIPv6アドレスを利用することが可能だ.IPv4の世界では家庭用のルータ機器などのLAN側の初期アドレスが “192.168.0.1/24” となっていてプライベートアドレス空間が被ってしまって困ったというような事はなくなるだろう.


リンクローカルユニキャストアドレスは、特定のリンク間でのみ一意性が保たれるユニキャストアドレスで、近隣のノード間で閉じた通信を行う場合に用いられる.ネットワークインタフェースには必ず1つ以上のリンクローカルユニキャストアドレスが設定されていて、PCなどのノードはルータ宛ての通信はリンクローカルユニキャストアドレスに送信される.ルータなどのように複数のインタフェースを持つ場合は、特定のインタフェースから送出させるための識別子として、リンクローカルユニキャストアドレスにスコープIDを付加することができる.


128bit長のIPv6アドレスの下位64bitのインタフェースIDはリンク上のインタフェースを識別するためのIDで、インタフェース機器のMACアドレスや乱数などから一意なアドレスを生成する.MACアドレスからインタフェースIDを作成すると常に同じIDとなり、ユーザが使用しているPCなどの端末機器を相手に特定されてしまいプライバシー上の問題が発生する恐れがある.このため、PCなどの端末側ではインタフェースIDの生成に乱数を採り入れて一定期間毎にインタフェースID部分が変わる一時アドレスが採り入れられていることが多い.


ノードに必要なIPv6アドレスの整理


IPv6のIPアドレスが沢山あり非常に分かり難いものになってしまっているので簡単に整理しておくと、

 ・自動あるいは手動により設定されたユニキャスト(エニーキャスト)アドレス
   【任意の個数】
 ・リンクローカル(ユニキャスト)アドレス 
   【各インタフェース毎に1個】
 ・ループバックアドレス 
   【各ノードに一つ】
 ・全ノードマルチキャストアドレス
          ・要請ノードマルチキャストアドレス
   【各ユニキャストアドレス、エニーキャストアドレス毎に1個ずつ】
 ・マルチキャストアドレス
   【任意の個数】

ノードがルータの場合には、
 ・全ルータマルチキャストアドレス 
   【ノードがルータの場合】 
 ・サブネットルータエニーキャストアドレス
   【ノードがルータの場合】 

が一つのインタフェース上に割り当てられていることになる.




IPv6のアドレス自動生成などを司る仕組み


IPv6の世界を知る上でIPv6アドレス体系以外にも、IPv6で非常に重要な役割を担っている近隣探索(Neigbour Discovery)などの仕組みを知っておく必要がある.ユーザがPCなどのデバイスをつなぐ際に、ユーザ側でIPアドレスやルータアドレス等の面倒な設定を行わなくても済むのは、IPv6ではIPアドレスなどのネットワークパラメータを自動的に調整する仕組みが備わっている.これらの仕組みを支える裏方として次に説明するICMPv6メッセージが重要な役割を担っている.


ICMPv6メッセージ


IPv6では、ICMPv6メッセージがアドレスの自動生成や近隣探索、パスMTU探索などで使われる.IPv4でのICMPのプロトコル番号は”1″ であるが、IPv6のICMPv6ではプロトコル番号は”58″が使われる.


ICMPv6メッセージには、エラーメッセージと情報メッセージの二種類がある.メッセージにはタイプとコードによって分類されている.


代表的なものを幾つかピックアップしてみると、
【エラーメッセージ】
 タイプ: 1 (0x01) 終点到達不能 (Destination Unreachable)
  コード: 0 〜 7  

 タイプ: 2 (0x02) パケットサイズ過大 (Packet Exceed)
 タイプ: 3 (0x03) 時間超過 (Time Exceed)

【情報メッセージ】
 タイプ: 128 (0x80)  エコーリクエスト (Echo Request)
 タイプ: 129 (0x81)  エコーリプライ (Echo Replay)
 タイプ: 133 (0x85)  ルータ要請(Router Solicitation)   ホスト ⇒ ルータ
 タイプ: 134 (0x86)  ルータ広告(Router Advertisement)  ルータ ⇒ ホスト
 タイプ: 135 (0x87)  近隣要請(Neighbor Solicitation)  ノード ⇒ ノード
 タイプ: 136 (0x88)  近隣広告(Neighbor Advertisement)  ノード ⇒ ノード
 タイプ: 137 (0x89)  リダイレクト(Redirect Message)   ルータ ⇒ ホスト

IPv4ではルータやPCなどのノードのIPアドレスは手動で設定するか、DHCPにより自動で設定する方法が採られているが、IPv6ではDHCPを使わずに近隣のルータからの情報などからホストのアドレスを自動的に生成したり、デフォルト経路や通信路のMTUなどのパラメータを自動的に設定する機能が備わっている.これらの機能を実現するために上記のICMPv6メッセージが使われ、これらの一連の処理を近隣探索(Neighbor Discovery)と呼ばれている.


近隣探索で必要となる基本的な機能として、
 ・アドレス自動生成
 ・重複アドレス検出
 ・通信パラメータの検出
 ・経路決定
 ・近隣キャッシュ情報の生成・維持管理

などがある.IPv6の世界を理解するには、これらの仕組みを理解する必要があるが内容が複雑で難しいので、ここでは近隣探索のためのICMPv6メッセージの概要を簡単に説明することに留める.



Neigbour Discovery
IPv6の設定自動化を支えている近隣探索

近隣探索に用いられるICMPv6メッセージ


【ルータ広告(RA)】

ルータが定期的にリンクローカル全ノードマルチキャストアドレス宛てに一定間隔で送出するICMPv6情報メッセージで、各ホストに対してアドレス自動生成、経路設定、パラメータ検出に必要な情報が送出される.


 ・IPv6ヘッダ情報
   送信元アドレス: 送信元インタフェースのリンクローカルアドレス
   宛先アドレス:  全ノードマルチキャストアドレス (“ff02::1”)(定期的な送信)
            RSを要請したホストのユニキャストアドレス(RS要請の返答の場合)

 ・ICMPv6メッセージ情報
   タイプ: 134 (0x86)
   mフラグ: Managed Address Configuration Flag
        ”1″ ⇒ DHCPv6が利用可能(oフラグは無視)
        ”0″ ⇒ Oフラグも “0” の場合はDHCPv6が利用不可
   oフラグ: Others Configuration Flag
        ”1″ ⇒ アドレス以外の情報(DNS/NTPなど)が利用可能
        ”0″ ⇒ mフラグが “0” の場合はDHCPv6が利用不可
   ルータ有効期間:デフォルトルートとして利用可能な(有効な)時間(秒単位)
   再送タイマー: 近隣到達不能検出のための近隣要請(NS)の送信間隔(ミリ秒単位)
   オプション:
    送信元リンク層アドレス
    プレフィクス情報
    MTUオプション
    DNS設定情報

【ルータ要請(RS)】

ホスト側が全ルータマルチキャストアドレス宛てに送出するICMPv6情報メッセージで、ホスト起動時などに直ぐにアドレス等を生成する必要がある場合に送出する.ルータからの返答はリンクローカルユニキャストアドレス宛に届けられる.


 ・IPv6ヘッダ情報
   送信元アドレス: 送信元インタフェースのアドレスが決まっている場合はそのアドレス
            アドレス自動生成のための情報取得では未指定アドレス(::)
   宛先アドレス:  全ルータマルチキャストアドレス (“ff02::2″)

 ・ICMPv6メッセージ情報
   タイプ: 133 (0x85)
   オプション:
    送信元リンク層アドレス

【近隣要請(NS)】

ノードが近隣のノードに対してリンク層アドレスの情報や、アドレスの重複や到達可能性などの情報を得るために送出(要請ノードマルチキャストアドレス宛)するICMPv6情報メッセージ.


 ・IPv6ヘッダ情報
   送信元アドレス: 送信元インタフェースのアドレス
            重複検出の場合は未指定アドレス(::)
   宛先アドレス:  要請ノードマルチキャストアドレス
            到達不能検出の場合は対象ノードのアドレス

 ・ICMPv6メッセージ情報
   タイプ: 135 (0x87)
   ターゲットアドレス: 重複検出、アドレス解決、到達不能検出の場合は対象アドレス
              (マルチキャストアドレスは不可)
   オプション:
    送信元リンク層アドレス

【近隣広告(NA)】

ノードが近隣要請に対して返答するICMPv6情報メッセージ.自分のリンク層アドレスなどの情報が変化する際にも近隣ノードに対して送出(全ノードマルチキャストアドレス宛)される.


 ・IPv6ヘッダ情報
   送信元アドレス: 送信元インタフェースのアドレス
   宛先アドレス:  自発的に送信、近隣要請メッセージの送信元アドレスが未指定アドレス(::)
             ⇒ 全ノードマルチキャストアドレス (“ff02::1”)
            送信元アドレスが定義されている近隣要請メッセージの場合
             ⇒ 送信元アドレス

 ・ICMPv6メッセージ情報
   タイプ: 136 (0x88)
   Rフラグ: ルータフラグ (”1″ ⇒ このノードがルータである)
   Sフラグ: 要請フラグ (到達不能検出用)
         ”1″ ⇒ 近隣要請に対してユニキャストアドレス宛に返答済み
         ”0″ ⇒ 宛先が全ノードマルチキャストアドレス (“ff02::1″)の場合は常に”0”
   Oフラグ: オーバライトフラグ
         ”1″ ⇒ 近隣広告を受け取るノードに対して、このメッセージ情報で上書きを推奨
         ”0″ ⇒ 近隣キャッシュ情報に存在しない場合は追加、存在する場合は更新しない
   ターゲットアドレス: 近隣広告の対象となるアドレス
              (マルチキャストアドレスは不可)
              近隣要請への応答の場合は近隣要請のターゲットアドレス
              リンク層アドレスの変更による自発的な送信の場合は、変更対象のIPv6アドレス
   オプション:
    ターゲットリンク層アドレス


【リダイレクト】

あるルータ宛てに届けられたパケットが別なルータで転送すべきと判断した場合に、そのパケットの送出元のリンクローカルユニキャストアドレスに対して送られるICMPv6メッセージ.


 ・IPv6ヘッダ情報
   送信元アドレス: 送信元インタフェースのリンクローカルアドレス
   宛先アドレス:  リダイレクトメッセージが必要となったパケットの送信元アドレス
   最大ホップ数:  255

 ・ICMPv6メッセージ情報
   タイプ: 137 (0x89)
   ターゲットアドレス: 適切な次ホップアドレス
   宛先アドレス: リダイレクト対象となるパケットの宛先アドレス
   オプション:
    ターゲットリンク層アドレス
    リダイレクトヘッダ

ステートレスアドレス自動生成とステートフルアドレス自動生成


IPv6の世界では、PCなどのホストデバイスをネットワークにつなぐと、自動的にアドレスが設定されるので細かな設定を行わなくても済むようになっている.ステートレスアドレス自動生成(SLAAC: State Less Address Auto Configuration)はIPv6環境でプラグアンドプレイを実現するための重要な機能となっている.


スレートレスアドレス自動生成は先に紹介した近隣探索の仕組みを使ってアドレスの自動生成と経路設定を行っている.IPv4の世界でもDHCPサーバでクライアントとなるホストにアドレスを割り当て、その状況を管理するステートフルな仕組みがあるが、IPv6のスレートレスアドレス自動生成ではホスト側のマシンがルータから与えられた情報を元に自らアドレスを割り当てている.


IPv6ではややこしいことに、このステートレスアドレス自動生成以外にもステートフルでアドレス管理を行うDHCPv6という方法も利用可能だ.この両方の仕組みは排他的な関係にある訳ではなく、お互いに補完しながら併用することも可能だ.


業務用に限らず、IPoE方式対応をうたっている家庭用ホームルータでは、これらの2つのアドレス割り当て方式に対応可能となっており、ルータ自身の機能としてDHCPクライアント機能、DHCPサーバ機能やFLET’S NGN網などの上位ルータからの情報を中継するNDプロキシ機能が備わっている.これらのルータの機能に関する説明や設定方法等については、続編の『IPv6(IPoE)ネットワークの構築(実践編)』で説明する予定だ.


IPv6 Address Obtainning
FLET’S NGN IPoE方式でのIPアドレス割り当て方式

ステートレスアドレス自動生成


IPv6ステートレスアドレス自動生成機能を使えば、とりあえずノード同士をネットワークに接続さえすれば何もしなくても相互に通信可能になる.ルータが存在する場合は、通常ルータから自動アドレス生成のための情報がRAメッセージにより各ノードに伝えられるが、ルータを介さずにノード同士をつないでも、リンクローカルアドレスを使った相互通信が可能だ.



Direct IPv6 Link
ルータを介さない状態でもホスト同士の間でも相互通信が行える

システム起動時や新たにネットワークにつなぐ際には、先ずリンクローカルアドレスの割り当てが行われ、その後にグローバルユニキャストアドレスが割り当てられる.この際に、通常下記のような手順でアドレスの自動生成が行われる.


 リンクローカルアドレスの割り当て
  ・アドレス自動生成
    MACアドレスなどからインタフェースIDを生成し、プレフィクス(ff02::/64)と組み合わせた仮のIPv6アドレスを生成
  ・重複検出(Duplicate Address Detection)
    近隣探索メッセージを使用して生成した仮のIPv6アドレスが他ノードのアドレスと重複していないかどうか確認する
    リンクローカル全ノードマルチキャストアドレスと要請ノードマルチキャストアドレスが必要となる
    受信した近隣広告メッセージからアドレス重複の有無を検出し、重複がなければそのアドレスをインタフェースに本登録する

 グローバルユニキャストアドレスの割り当て
  ・ルータ要請メッセージの送出、ルータ広告メッセージの受信
    ルータから送出されるグローバルプレフィクス情報を得るためにルータ要請メッセージをルータに送出
   (ルータ広告メッセージの間隔は通常数十〜数百秒程度なので、最初はルータ要請メッセージを送出する)
  ・アドレス自動生成
    インタフェースIDと取得したプレフィクス(xxxx:xxxx::/yy)と組み合わせた仮のIPv6アドレスを生成
  ・重複検出(リンクローカルアドレスと同じ処理)
  ・アドレスの割り当て

このようにスレートレスアドレス自動生成で生成されたアドレスは、リンクローカルアドレスを除いて二段階の有効期限が設けられており、アドレス使用推奨期間と呼ばれる期限を過ぎたアドレスは通常は使用しないことになる.更に時間が経過し最終的な有効期限を迎えると、このアドレスは使用できなくなる.この有効期限はRAメッセージに含まれている有効期限情報により管理されており、通常RAメッセージを受信する度にこの有効期限のカウントがリセットされて有効期限が自動延長される.強制的にアドレスを失効させる場合は、RAメッセージの有効期限を0に設定すれば直ぐに失効することになる.


DHCPv6によるステートフルアドレス自動生成


IPv6にもIPv4と同じようなDHCPv6というクライアントホストにIPアドレスやDNSサーバなどの情報を自動的に設定させるためのプロトコルが備わっている.IPアドレスやルータへの経路などはルータ広告メッセージにより取得できるが、DNSサーバに関する情報はルータ広告メッセージからは取得できないので別な手段を使う必要があるため、DHCPv6の機能を使ってDNSサーバなどの情報を取得する.


この後で説明するプレフィクス委譲(Prefix Delegation)というエンドユーザ側でIPv6アドレス空間の割り当てを管理する機能もDHCPv6によって行われる.また、企業LANなどでは個々のホスト機器を集中管理したりホスト機器やユーザの認証と連携させた運用も必要になるため、DHCPv6を導入している場合もあるだろう.


複雑で大規模なLAN構成を組む場合は専用のDHCPv6サーバが必要になるかもしれないが、中小の事業所程度のLAN構成では、通常小型の業務用ルータに備わっているDHCPv6サーバ・クライアント機能で十分事足りるだろう.数万円〜十数万円程度で入手可能な小型業務用ルータにも幾つか種類があるが、入手する前にコマンドリファレンスマニュアルや設定事例マニュアル等で、どのような機能が備わっているのか確認する必要があるだろう.


IPoE対応をうたっていればDHCPv6-PD機能は備わっている筈だが、プロバイダやNGN網から配布(委譲)されたユーザPrefixを更に分割して下位のルータに再委譲可能なルータは限定されるようだ.NECのIXシリーズやアライドテレシスのAT-ARシリーズ、Ciscoなどのルータにこの機能が備わっていることを確認している.


家庭用のルータに求められる機能に関しては、IPv6普及・高度化推進協議会が『IPv6家庭用ルータガイドライン(2.0版 2010年7月29日発行)』で、ある程度標準化しているが、家庭用のルータでは機能不足であることは明らかだろう.


DHCPv6の仕組み


DHCPv6では、UDPを使ってクライアント側のホストとDHCPv6サーバとの間でメッセージの交換が行われる.DHCPv6で交換されるメッセージの形式について簡単に説明する.


 ・マルチキャストアドレス
  DHCPv6サーバ(リレーエージェント)はマルチキャストアドレス “ff02::1:2” を用いてクライアントからの
  メッセージを受信する.
  リレーエージェントはマルチキャストアドレス “ff05::1:3” を使用してサーバと通信する

 ・使用するUDPポート
  クライアント ⇒ サーバ(リレーエージェント) :  UDP(547)
  サーバ(リレーエージェント) ⇒ クライアント :  UDP(546)

 ・メッセージの形式

  メッセージ種類(17種類)
   SOLICT(1)
   ADVERTISE(2)
   REQUEST(3)
     …
  オプションデータ
   OPTION_CLIENTID(1)   クライアントID
   OPTION_SERVERID(2)    サーバID
     …
   OPTION_DNS_SERVERS(23)  DNSサーバリスト
   OPTION_DOMAIN_LIST(24)  ドメイン検索リスト
   OPTION_IA_PD(25)     Prefix Delegation用IA
   OPTION_IAPREFIX(26)   IA_PDプレフィクスオプション
     …
   OPTION_NTP_SERVER(56)  NTPサーバ
     …
   OPTION_AFTR_NAME(64)   DSLiteのAFTR名
     …

上記のDHCPv6メッセージデータのオプションデータとして、プレフィクス委譲(Prefix Delegation)に関する項目があることに着目しておいて欲しい.LANをセグメント分割して運用するには、このプレフィクス委譲の仕組みが必要になり、プロバイダやFLET’s NGN網などからユーザがプレフィクス委譲を受けるにはDHCPv6の機能(DHCPv6-PD)が必要になる.


DHCPv4とDHCPv6の機能の違いについて


DHCPv4とDHCPv6の機能の違い
DHCPv4DHCPv6
IPアドレスIPv4アドレス IPv6アドレス
サブネットマスク サブネットマスク なし(IPv6には存在しない)
デフォルトゲートウェイ デフォルトゲートウェイ なし(デフォルトゲートウェイはRAで取得)
DNSDNSサーバのIPv4アドレスDNSサーバのIPv6アドレス
その他の付加情報NTPサーバ、SIPサーバの情報などNTPサーバ、SIPサーバの情報など
クライアントホストの識別方法 MACアドレスで識別 DUIDで識別(FLET’S NGNではDUID-LL)