デュアルスタック

読み:でゅあるすたっく / 英語表記:dual stack

1台の機器やネットワークで、IPv4とIPv6の両方を同時に動かす方式。相手がIPv6に対応していればIPv6で、対応していなければIPv4で通信できる。

イマシルちゃんの解説

IPv6に引っ越すといっても、世の中のサイトが全部IPv6に対応しているわけじゃないんだ。

だから、しばらくはIPv4とIPv6の両方を使えるようにしておくのがデュアルスタック。
相手がIPv6を話せるならIPv6で、話せないならIPv4で話すんだよ。
しかも、IPv6でつながらないときは、こっそりIPv4に切り替えてくれるから、利用者は気づかないんだ。
……実は、その「気づかない」のが、管理する人にとっては困りものなんだよ!

より深い解説

定義

デュアルスタックは、端末やネットワーク機器のプロトコルスタックに、IPv4とIPv6の両方を実装し、両方のアドレスを持たせて動作させる方式である。IPv4からIPv6への移行の期間に、最も一般的に使われる。

IPv4とIPv6の共存の方式

方式内容
デュアルスタックIPv4とIPv6の両方を動かす
トンネリング一方のプロトコルのパケットを、もう一方のパケットに入れて運ぶ(IPv6 over IPv4 など)
トランスレーションNAT64とDNS64などで、IPv6だけの端末がIPv4のサーバと通信できるように変換する

どちらで通信するか

デュアルスタックの端末は、DNSにAAAAレコード(IPv6アドレス)とAレコード(IPv4アドレス)の両方を問い合わせる。両方が得られた場合、一般にIPv6を優先する(RFC 6724のアドレス選択の規則)。

ただし、IPv6の経路が壊れていると、IPv6で接続を試みてタイムアウトするまで待たされ、利用者の体感が悪くなる。そこで、現在のOSやブラウザは、Happy Eyeballs(RFC 8305)という方式を使う。

  1. AAAAとAを並行して問い合わせる
  2. IPv6で接続を試み、短い時間(目安として250ミリ秒程度)待っても接続できなければ、並行してIPv4でも接続を試みる
  3. 先に接続できたほうを使う

Happy Eyeballsの落とし穴

Happy Eyeballsは利用者にとって便利だが、ネットワークの運用の面では注意が必要である。

状況起きること
IPv6のネットワークだけが不通になる端末は自動的にIPv4にフォールバックして、同じWebページにアクセスできてしまう
その結果利用者は異常に気付かないため、情報システム部門に連絡が来ない。IPv6の障害が放置される

そのため、デュアルスタックのネットワークでは、IPv6の経路を、IPv4とは別に監視する(監視サーバから、IPv6でインターネットへのアクセスや、各拠点の機器のGUAへの ping6 を定期的に行う)ことが重要になる。

セキュリティ上の注意

注意点内容
NAPTの有無IPv4ではNAPTによって外部から内部へ接続しにくいが、IPv6ではNAPTを使わず、すべての端末がGUAを持つ。ファイアウォールで、外部からの通信を明示的に制御する必要がある
ICMPv6近隣探索やパスMTU探索にICMPv6を使うため、すべて遮断すると通信障害が起きる。必要な種類(Packet Too Big など)は許可する
両方の管理ファイアウォールのルールや監視を、IPv4とIPv6の両方で整合させる

実際の試験ではここに出る!

この用語が出てくる記事

↑