今回は、コンピュータ側のIPv6アドレスの割り当て方法や仕組みについて学習し、IPv6環境で「ちょっとだけ連携」を行うための準備を完了させます。
前回は、IPv6の概要や、ネットワークデバイスでのIPv6アドレスの設定方法などを確認しました。今回は、コンピュータ側のIPv6アドレスの割り当て方法や仕組みについて学習し、IPv6環境で「ちょっとだけ連携」を行うための準備を完了させます。
WindowsクライアントとサーバのIPv6アドレスの割り当ては、必要に応じて手動と自動を使い分けます。最初に、自動構成の方法を確認しましょう。
IPv6アドレスの自動構成には、以下の方法があります。
(1)ルータやレイヤ3スイッチからネットワークプレフィクスを取得し、インターフェイスIDをローカルで生成する
(2)DHCPv6サーバからIPv6アドレスやオプション構成を取得する
(3)(1)と(2)の方法を組み合わせる
本稿では(1)の方法でIPv6アドレスの割り当てを行います。(2)や(3)の方法については、次回以降で説明するので、まずは最も簡単な方法を試してみましょう。
(1)のステートレス自動生成は、ルータやレイヤ3スイッチからネットワークプレフィックス(ネットワークアドレス)を取得し、ローカルホストで生成したインターフェイスID(ホストアドレス)をつなげる方法です。具体的には、図1のようにしてIPv6アドレスを自動的に割り当てます。このとき使用されるメッセージが、「ルーター要請(Router Solicitation)」と「ルーター広告(Router Advertisement)」メッセージです。
シスコのルータやレイヤ3スイッチは、グローバルやユニークローカルユニキャストアドレスを割り当てると、デフォルトでルーター広告メッセージを送信し始めます。
また、Windowsでは、[IPv6アドレスを自動的に取得する]設定がデフォルトで有効化されています。このため、ルータやレイヤ3スイッチの設定さえ行えば、ステートレス自動構成によって、Windowsにもすぐに自動的にIPv6アドレスが割り当てられます。
以下は、ルータやレイヤ3スイッチでIPv6を有効化し、ユニークローカルユニキャストアドレスを割り当てた後に、Windowsクライアントでipconfig /allコマンドを実行したときの様子です。Windows側では何も設定をしていませんが、すでにリンクローカルやユニークローカルユニキャストアドレスが自動的に割り当てられていることが確認できます。
番号 | 説明 |
---|---|
(1) | ネットワークインターフェイスのMACアドレスです。 |
(2) | IPv6およびIPv4アドレスとデフォルトゲートウェイが表示されています。IPv6のデフォルトゲートウェイは、ルーター広告メッセージを送信したネットワークデバイスのリンクローカルアドレスです。 |
(3) | DNSサーバのIPアドレスは、現在の状態では自動的に取得できないため、手動設定したIPv4アドレスだけが表示されています。 |
実行結果の(2)を見ると、[IPv6アドレス]と[リンクローカルIPv6アドレス]のインターフェイスIDとして、acff:f272:7a1:303bが割り当てられています。しかし、(1)のMACアドレスとは全く異なる値のため、EUI-64ではないことが分かります。
EUI-64ではMACアドレスを使用するため、悪用される可能性があります。このためWindowsでは、インターフェイスIDにランダムな値を割り当てるように設定されています。
ランダムな値ではなくEUI-64にするには、Windowsのコマンドプロンプトでnetsh interface ipv6 set global randomizeidentifiers=disabledコマンドを実行します。EUI-64からランダムな値に戻す場合は、netsh inter ipv6 set global randomizeidentifiers= enabledコマンドを実行します。
また、(2)にある[一時IPv6アドレス]は、匿名アドレス(RFC 4941)ともいう機能で、WindowsクライアントOSではデフォルトで有効化、サーバOSでは無効化されています。一時アドレスとは、インターフェイスIDがランダムでかつ自動的に変化する使い捨てアドレスです。一時アドレスを使うと、宛先ホストから送信元コンピュータを特定することが難しくなります。主にインターネットでのクライアントセキュリティを想定した機能ですが、社内ではクライアントを特定できた方が、管理上都合が良い場合があります。例えば、一時アドレスは随時変更されるため、送信元アドレスによるパケットフィルタリングをしている場合はインターフェイスIDをフィルタ条件にすることができません。また、ダイナミックDNS(DNS動的更新)の対象にならないため、一時アドレスに対する正引きや逆引きの名前解決をDNSで行うことはできません。
このため、一時アドレスを無効化するには、netsh interface ipv6 set privacy state=disableコマンドを実行します。また、有効化する場合はnetsh interface ipv6 set privacy state=enableコマンドを実行します。
なお、set privacy stateを実行した場合は、インターフェイスを再起動する必要があります。インターフェイスの再起動は、[コントロールパネル]−[ネットワークの状態とタスクの表示]−[アダプターの設定の変更]を選択します。その後[イーサネット](または[ローカルエリア接続])アイコンを右クリックし、[無効にする]を選んだあと、もう一度[イーサネット](または[ローカルエリア接続])アイコンを右クリックし、[有効にする]を選択します。
この時のWindowsコンピュータとレイヤ3スイッチ(L3SW1)間で送受信された、ルーター要請メッセージとルーター広告メッセージを、Wiresharkで確認したのが図2と図3です。図2は、ルーター要請メッセージです。(1)はIPv6ヘッダのフィールド、(2)はICMPv6メッセージのフィールドです。
番号 | 説明 |
---|---|
(1) | ホップリミット(Hop limit)には、ルーティングを禁止する(このメッセージをローカルサブネットにとどめる)意味で255がセットされています。ルーター要請メッセージでは、送信元(source)にはコンピュータのリンクローカルアドレス(fe80::acff:f272:7a1:303b)、宛先(Destination)にはリンクローカル全ルーターマルチキャストアドレス(ff02::2)を使用しています。 |
(2) | ルーター要請は、ICMPv6のタイプ133(コード0)を使ったメッセージです。 |
次に、図3でルーター広告メッセージを確認しましょう。(1)はIPv6ヘッダのフィールド、(2)〜(5)はICMPv6メッセージのフィールドです。
番号 | 説明 |
---|---|
(1) | ルーター広告メッセージでは、送信元(source)にはネットワークデバイスのリンクローカルアドレス(fe80::1)、宛先(Destination)にはリンクローカル全ノードマルチキャストアドレス(ff02::1)を使用しています。 |
(2) | ルーター広告は、ICMPv6のタイプ134(コード0)を使ったメッセージです。 |
(3) | Managed address configuration(Mフラグ)とOther Configuration(Oフラグ)は1ビットのフィールドで、クライアントのIPv6アドレスなどの割り当て方法を制御するために使われています。DHCPv6サーバのない環境で、ルーター広告メッセージを使って自動構成を行う場合は、(3)のように両方に0をセットします(シスコのデフォルト値)。 |
(4) | ルーター有効期間(Router lifetime)は、送信元のレイヤ3デバイスが、デフォルトゲートウェイとして利用可能かどうかをクライアントに通知しています。0の場合はデフォルトゲートウェイとして使用してはいけないことを表し、1〜6万5535(秒)の場合はデフォルトゲートウェイとして利用可能な時間を表しています。 |
(5) | ルーター広告メッセージでは、オプションフィールドにリンクローカル以外のネットワークプレフィックスとプレフィックス長をセットして、クライアントに通知します。 |
ルーター要請とルーター広告で使用しているff02::2やff02::1は、IPv6のマルチキャストアドレスです。IPv6では、FF00::/8をマルチキャストアドレスと定めています。ff02::1は、リンクローカル全ノードマルチキャストアドレスで、IPv6が有効化されたコンピューターやネットワークデバイスは、ff02::1宛てのマルチキャストメッセージを受信対象にします。
ff02::2は、リンクローカル全ルーターマルチキャストアドレスで、IPv6を有効化したすべてのレイヤ3デバイスはff02::2宛てのマルチキャストメッセージを受信対象にします。
Copyright © ITmedia, Inc. All Rights Reserved.