このページの本文へ移動

本ページの製品は2024年4月1日より、エフサステクノロジーズ株式会社に統合となり、順次、切り替えを実施してまいります。一部、富士通表記が混在することがありますので、ご了承ください。

 

Japan

 

IPv6 / IPv4混在環境での通信検証

~Windows Server 2008 Beta版 移行・導入・運用の豆情報~

最新WindowsではIPv6が既定で有効

IPv6 (Internet Protocol version 6) プロトコルは、Windows Server 2003 / Windows XP SP1から正式に使用することができるようになりましたが、使用するためにはユーザがプロトコルの追加・構成を行う必要がありました。 これに対し、Windows VistaやWindows Server 2008では、既定でIPv6が有効に設定されています。 また、Windows Server 2008のDNSサービス、DHCPサービス、インターネットインフォメーションサービス (IIS) など主要ネットワークサービスもIPv6に対応しています。

ハードウェア面では、ネットワーク機器のIPv6対応が進んでおり、既存のIPv4ネットワーク環境にIPv6対応のOSやハードウェアが混在するケースが増えてきます。

図1 Windows Server 2008では既定でIPv6 / IPv4の両方が有効

富士通では、このようなケースでのトラブルの未然防止、スムーズな導入のために、IPv6 / IPv4混在時のOSの挙動確認など、さまざまな動作検証をおこなっています。

今回はその一例として、DNSサーバへの名前解決要求(クエリ)について、各コンピュータのIPv6 / IPv4の実装状況(有効 / 無効)による動作の違いをご紹介します。

本題に入る前に知っておきたい前提知識

Windows Server 2008 のDNSサーバ

コンピュータが他のコンピュータと通信する際には、名前解決と呼ばれるホスト名(コンピュータ名)とIPアドレスをマッピングする動作が必要となります。名前解決をサーバサービスとして提供する主要なものとしてDNSサーバがあり、Windows Server 2008でも標準で搭載されています。

図2の、[1] hostAのクエリ、[2] 応答 (2008::201) の部分がDNSサーバを使用した名前解決です。名前解決のあと、[3] アクセスという流れになります。

図2. ネットワークリソースアクセスの動作イメージ(検証環境)

従来のWindowsに搭載されたDNSサーバでは、ホスト名とIPv4アドレスをマッピングするAレコードを取り扱うことができます。 Windows Server 2008 のDNSサーバでは、従来のAレコードに加えて、ホスト名とIPv6アドレスをマッピングするAAAA(クアッドA)レコードを取り扱うことができます。 従ってIPv6 / IPv4の両方が有効に設定されているホストがある場合、DNSサーバ上にはそのホストに対してAレコードとAAAAレコードの両方が存在することになります。

Aレコード ホスト名からIPv4アドレスへマッピングするDNSレコード
AAAAレコード ホスト名からIPv6アドレスへマッピングするDNSレコード

IPv6におけるアドレス自動構成(リンクローカルアドレス)

IPv4では、DHCPサーバからIPアドレスが取得できない場合にIPアドレスを自動構成する、APIPA (Automatic Private IP Addressing) というしくみがあります。しかしながら、自動構成されたIPアドレスを使用して実際に通信が行われるケースは稀でした。

IPv6でも同様にIPアドレスを自動構成するしくみがあり、そのひとつがリンクローカルアドレスと呼ばれるものです。IPv4のAPIPAと大きく異なるのは、IPv6では各ホストがリンクローカルアドレスを持ち、このIPアドレスを使用して限られたネットワークの範囲内であればIPv6ホスト同士で普通に通信できるという点です。

なお、リンクローカルアドレスに対して、手動で設定したIPアドレスやDHCPで割当てられたIPアドレスをグローバルアドレスと言います。これはインターネット上のホストと通信ができる一意に割り当てられたアドレスです。

検証事例紹介 : IPv6 / IPv4混在環境におけるDNS名前解決

検証内容

今回の検証では、あるクライアントからサーバへの通信の際に、ホスト名の名前解決のためにクライアントからDNSサーバに対して発行されたDNSクエリパケットの採取・解析を行い、名前解決がどのように行われるのか調査しました。

ポイントは、各コンピュータが実装する通信プロトコルの組み合せを全て網羅したことです。DNSサーバ、DNSクライアントで、それぞれIPv6 / IPv4両方、IPv6のみ、IPv4のみの3パターンあるため、合計9通りの組み合せがあります。ここでは詳しく触れませんが、実際にはアクセス先のコンピュータ(図2のhostA)の通信プロトコル実装状況も網羅しています。

また、DNSクライアントのIPv6グローバルアドレス設定の有無も考慮しました。なお、DNSサーバのIPv6プロトコルはグローバルアドレスの設定をしています。

検証結果サマリ

DNSクエリで使用される通信プロトコル

通信を行うためには、双方が1つ以上の共通のプロトコルを実装していることが大前提となります。そのため、特にDNSサーバ側が、クライアント環境に応じたプロトコルを実装することが必要です。

IPv6 / IPv4混在環境での、通信プロトコルの選定ルール
  • 双方が共通で実装しているプロトコル (IPv6-IPv6、IPv4-IPv4) を使用して通信を行う
    IPv6 / IPv4両方が使用可能な場合、IPv6を優先して使用
  • 双方が使用可能なプロトコルがない場合、通信が不可能

表1は、DNSサーバ / DNSクライアントのIPv6 / IPv4実装状況(有効 / 無効)による通信プロトコルの一覧です。

表1. DNSクエリで使用される通信プロトコル
DNSクライアント DNSサーバ
IPv6 IPv6 / IPv4 IPv4
グローバルアドレス設定有
IPv6 グローバルアドレス設定有 IPv6 IPv6 不可
グローバルアドレス設定無 不可 不可 不可
IPv6 / IPv4 グローバルアドレス設定有 IPv6 IPv6 IPv4
グローバルアドレス設定無 不可 IPv4 IPv4
IPv4 不可 IPv4 IPv4

【凡例】
IPv6 : IPv6で通信
IPv4 : IPv4で通信
不可 : DNS名前解決の通信は行われない

なお、名前解決後に行われる、目的のコンピュータへのアクセス時も、通信プロトコル選定ロジックは同じです。

クエリを行うホストレコード

DNSクライアントがDNSサーバに要求するレコードは、DNSクライアントのIPv6 / IPv4プロトコルの実装状況によって異なります。

IPv6 / IPv4のどちらか片方を実装している場合、対応するホストレコードを要求します。
IPv6 / IPv4両方を実装している場合、最初にAレコード、続いてAAAAレコードの、合計2回のクエリを実行します。その結果、AAAAレコードが得られれば、アクセス対象ホストはIPv6を実装している可能性が高いとみて、優先的にIPv6プロトコルを使用してアクセスを試みます。
DNSサーバ上にAレコード、AAAAレコードともに存在しない場合、初回のAレコード要求時にエラーが返りますので、2回目のクエリが発生することはありません。

なお、Windows Server 2008 / Windows Vistaでは、既定でIPv6が有効ですが、グローバルアドレスは持たない設定になっています。このため、そのまま運用した場合IPv6の名前解決はDNSではなく、LLMNR (Link-local Multicast Name Resolution) と呼ばれる名前解決手段を使用することになります。

IPv6 / IPv4混在環境での、クエリを行うレコード

DNSクライアントのプロトコル実装状況によってクエリ動作が異なります

  • IPv6のみ実装している場合、AAAAレコードのクエリを実行
  • IPv4のみ実装している場合、Aレコードのクエリを実行
  • IPv6 / IPv4両方を実装している場合、Aレコード、AAAAレコードの順でクエリを実行
  • IPv6にグローバルアドレスがない場合、IPv6を使用したDNSクエリは行わない

まとめ

今回ご紹介した検証例から以下のことがわかります。

Windows Serer 2008におけるネットワーク通信について

  • 通信を行うには、通信を行うコンピュータ間に共通のプロトコルの実装が必要
  • IPv6 / IPv4両方が使用可能な場合、IPv6が優先される
  • IPv4同士の通信は従来どおり可能
  • IPv6はグローバルアドレスを設定していなくても、プライベートネットワーク上のIPv6ホストと通信ができてしまう

名前解決について

  • Windows Server 2008 DNSはIPv6 / IPv4両アドレスの解決が可能
  • グローバルアドレスを持たないIPv6ホストは、IPv6名前解決にDNSは使用せずLLMNRを使用
  • DNSクライアントがIPv6 / IPv4両方を実装している場合、Aレコード から AAAAレコードの順で2回のクエリを行う

最後にWindows Server 2008 でIPv6通信を始める際の注意点を紹介します。

  • IPv6プロトコルのグローバルアドレスを構成すること
  • 移行過渡期は、IPv6 / IPv4両方を実装しておくとよい

富士通では、Windows Server 2008が導入されることによる既存運用環境への影響といった観点に重点を置き、検証を継続していきます。

関連リンク

【ご注意】
動作確認したWindows Server 2008は開発段階にあるため仕様変更の可能性があります。

PCサーバ PRIMERGYに関する資料請求・お見積もり・ご相談

Webでのお問い合わせ

入力フォーム

当社はセキュリティ保護の観点からSSL技術を使用しております。

お電話でのお問い合わせ

0120-933-200 富士通コンタクトライン(総合窓口)

受付時間 9時~12時および13時~17時30分
(土曜・日曜・祝日・当社指定の休業日を除く)