1 はじめに
ネット回線をIPv4 over IPv6にしたことにより、
動的IPv4の下で運用していたWebサーバーやメールサーバーの継続は難しくなりました。
それなら、いっそのこと、サーバーをIPv6対応に変えちゃえ!
と思ったのですが、IPv6の参考書類は分厚く、わけの分からなん言葉ばかり。
ということで、少しずつIPv6について勉強していきたいと思いました。
本記事は、ネットワーク内端末のIPv6アドレスの決め方について整理してみたものです。
ネットワーク内端末のIPv6アドレスを設定する場合、
128ビットのアドレス空間、
特に下位64ビットのインターフェース識別子をどう振り分けたら良いのか、
世間にはどのようなルールが存在しているのか、
どうすれば正解なのか、けっこう難しい問題と感じました。
周りにIPv6ネットワーク構築例があれば、それを参考にすることができるのかもしれません。
でも、まだ周りにはIPv6のネットワークは、そう多くありません。
IPv6アドレスの実際に自由に設定できる部分は、
下位64ビットのインターフェース識別子部分となりますが、
これだけでもIPv4アドレスの32ビット幅の2倍のビット幅があります。
これだけ広いアドレス空間は、なんらかの方針で使い分けなければ、
後々の管理メンテナンスで苦労することになるのでは思われます。
ということで、本記事では、IPv6アドレス振り分けの一例を示したいと思います。
IPv6サーバーをたてられるまでに、後は次のようなことを整理していくことになるのかな?
・ IPv6用のダイナミックDNSサービス
・ ファイアウォールはどうなる? フィルタリングはどうすべき?
・ IPv4サーバーからIPv6対応への変更について
IPv6アドレスのフォーマットについては、下に示すWebページに整理してあります。
良ければ参考にしてみてください。
2 ホスト自身のIPv6アドレス設定
ホスト自身のIPv6アドレス設定方法には、次の3種類があります。
・ 手作業での設定
・ 自動設定:SLAAC(StateLess Address Auto Configuration)
・ 自動設定:DHCPv6(ステートフル/ステートレス)
本章では、これらの方法がどのような設定方法なのかを見ていきます。
2.1 IPv6アドレスのフォーマット
IPv6アドレスのフォーマットについては、
次のWebページに整理しましたので、そちらをご覧ください。
【IPv6サーバーをたてる】まずはじめにIPv6アドレスについて
【IPv6サーバーをたてる】IPv6アドレスについて.pdf
2.2 RA(ルーター広告: Router Advertisement)
IPv6アドレスの自動設定では、RA(ルーター広告: Roter Advertisement)が重要な要素です。
ですので、本節では簡単に触れておきます。
RAとは、IPv6ネットワークで、ルーターが自らの所属するネットワークの機器に対して、
アドレス情報やネットワーク設定などを告知する仕組みのことです。
端末のアドレス自動設定などで利用されます。
RAは、IPv6対応のルーターとIPv6対応の端末とが、
ICMPv6 Type 133、134のメッセージ交換を行うものです。
RAのパケットには、 そのネットワークのプレフィックス(ネットワークアドレス)や
デフォルトゲートウェイなどの情報が記載されており、
ルーターと同じネットワークセグメントに属するすべてのホストに
マルチキャスト(一斉送信)されます。
RAを受け取ったホストはその情報を基に自らのIPv6アドレスを決定したり、
ネットワーク接続設定を行ったりすることができるようになります。
RAは一定期間ごとに自動的に送信する設定にする場合もありますが、
ネットワーク設定を行いたいホストから送信されるRS(ルーター要請: Router Solicitation)と
呼ばれるメッセージに対する応答として送信されることが多いです。
2.3 ステートレスアドレス自動設定(SLAAC)
システムの起動時、ノードは、
それぞれのIPv6が利用可能なインターフェースについてリンクローカルアドレスを
自動的に生成します。
近隣探索プロトコルの機能を使用したステートレスアドレス自動設定(SLAAC)によって、
独立して、そして、事前設定なしで動作します。
このアドレスは、プリフィックス fe80::/64 の中から選択されます。
ルーティング可能なグローバルユニキャストアドレスも、
近隣探索プロトコルを利用してプレフックスを生成します。
ホストはRS(ルーター要請: Router Solicitation)を送信し、
IPv6ルーターは割り当てられたプリフィックスとともに応答を返します。
このプレフィックスを基に、ユニキャストアドレス上位64ビットのプレフィックスを決定します。
アドレスの下位64ビットは、
64ビットのmodified EUI-64フォーマットによるインターフェース識別子を設定します。
64ビットのインターフェース識別子は、
48ビットのMACアドレスから生成するのが最も一般的です。
たとえば、MACアドレス 00:0c:29:0c:47:d5 は、真ん中に
ff:fe を入れることで
64ビットのEUI-64 00:0c:29:ff:fe:0c:47:d5 に変換されます。
このEUI-64をIPv6アドレスの中で使うとき、次のように変形されます。
Universal/Localビット
(EUI-64の最上位ビットを第1ビットとしたときの第7ビット)を反転します。
ネットワークプリフィックス 2001:db8:1:2::/64 と上記のMACアドレスを用いて
IPv6アドレスを生成すると、
2001:db8:1:2:020c:29ff:fe0c:47d5 となります。
ここで、赤字下線部の2は、Universal/Localビットが1に反転された箇所です。
1はUniversal、0はLocalを意味します。
グローバルユニキャストアドレスのインターフェース識別子には、
MACアドレス等から生成されるModified EUI-64フォーマットが使用されることが多いのですが、
プライバシー上の懸念があるため、
一意性およびプライバシーの双方を満たす仕様(一時アドレス)への変更が推奨されています。
【参考ページ】
IPv6 - EUI-64
2.4 DHCPv6
RAは、IPv4のDHCPの機能をすべて提供するわけではありません。
この差分を補完するために、DHCPv6
(RFC3315)が使用できます。
DHCPv6には、大きく分けて以下の2つの使用法があります。
- ステートフルDHCPv6
-
ノードのアドレスとDNSサーバアドレスなどの付加情報の両方を、
DHCPを通じて配布します。
- ステートレスDHCPv6
-
ノードのアドレスはRAから取得したプレフィックスから自動生成し、
付加情報をDHCPで配布します。
どちらを用いる場合でも、
ノードのデフォルトルーターの情報を提供するためにRAが必要となりますし、
ルーターは送出するRAを通じてどちらのDHCPv6を使用するか
ノードに知らせることが必要です。
3 IPv6アドレスの決め方
本章は、次のWebページを参考に記事にしています。
3.1 IPv6アドレスの決め方例
サーバーやルーターのインターフェースでは、自動設定を使わずに
手動設定するのが基本です。
IPv6アドレス前半64ビットのプレフィックスはISPから与えられる部分ですから、
基本的には変更できない部分となります。
後半64ビットのインターフェース識別子部分が、自由に設定できる部分です。
本節では、下に示すようなIPv6アドレスの決め方の例をいくつかを紹介します。
① サーバーで提供しているサービスを基に決める
② IPv4アドレスを基にインターフェース識別子アドレスを決める
(デュアルスタックノード)
3.1.1 サーバーで提供しているサービスを基に決める
IPv6では1つのノードに複数のアドレスを割り当てることができるため、
サービスしているプロトコルを基にインターフェース識別子を決める方法もあります。
ただし、サーバーのIPv6アドレスを特定されやすくなるなど、
セキュリティ上の問題も考慮する必要もあります。
3.1.2 IPv4アドレスを基にインターフェース識別子アドレスを決める
デュアルスタックノードならば、
これまで使っていたIPv4アドレスを活用する方法です。
IPv4アドレスを丸ごと使って、次のようにインターフェース識別子を決める方法もあります。
3.2 リンクローカルアドレス、インターフェース識別子の決め方のヒント
多くの場合、
リンクローカルアドレスをModified EUI-64などで自動設定していても問題ありません。
ただし、リンクローカルアドレスが、運用者やユーザーに直接見える以下のような場所は、
ユーザーサポートや保守を考え、手動で設定しておくのも有効です。
・ RAを広告するインターフェース(PCからデフォルトルーターして見える)
・ OSPFを有効にするインターフェース(経路のnexthopとして見える)
また、MACアドレスを基に決めるEUI-64アドレスは、
ハードウェアを交換するとインターフェース識別子が変わってしまいます。
なお、Windowsクライアントホストの場合、
リンクローカルアドレスを手動で設定できるようにするGUIはありません。
Windowsサーバーについては、手元に無いため不明です。
4 ルーターの設定
今日では、ほとんどのルーターがIPv6に対応しています。
MAP-E、4rd/SAM、DS-Liteなどの通信方式による
IPv4 over IPv6の接続設定が完了しているルーターであれば、
IPv6アドレスの自動付与機能に関して基本的に設定を変更する必要はありません。
IPv6アドレスの手動設定も、そのままルーターを何もいじらずに設定することできます。
ちなみに、OCNバーチャルコネクトの場合、
IPv6アドレス自動付与は、DHCPv6(ステートレス)でした。
MAP-Eの通信方式であれば、おそらくどこもDHCPv6方式なのかもしれません。
当然のことなのですが、IPv4 over IPv6ではなくIPv6オンリーで接続する場合は、
IPv6アドレスの自動付与機能に関しての設定も必要となりますが、
需要があれば別の機会に調べてみようかと思います。
以上
HTMLだと、
思うように編集することは難しく、やろうすればとっても時間が掛かります。
ですので、本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。
役に立てていただければ、うれしく思います。
このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元と著者名は明らかにしてください。
なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。