要約

  • AzureのIPv6ドキュメントは、IPv6のみの仮想マシンとIPv6のみの仮想マシンスケールセットを不支持と明記し、各ネットワークインターフェースに少なくとも1つのIPv4 IP設定を求めている。
  • 同じ文書は公開IPv6アドレスとIPv6プレフィックスを無料とし、公開IPv4アドレスには名目上の料金があるとする。制約はインターフェース層で効くため、アプリケーションがどれだけIPv6を話すかとは無関係に、すべての仮想マシンにIPv4が残る。

すべてを決める一文

IPv6だけで運用したいチームがAzureで最初にぶつかるのは、性能でも価格でもない。文書の一行だ。Azure Virtual NetworkのIPv6概要ページは、制限事項の節でこう述べる。IPv6のみの仮想マシンとIPv6のみの仮想マシンスケールセットはサポートされず、各ネットワークインターフェースには少なくとも1つのIPv4 IP設定を含めなければならない、と(Azure Virtual Network の IPv6 の概要)。

この一文は、機能の欠落を告げるものではない。順序を告げるものだ。AzureはIPv6を提供している。提供したうえで、IPv6だけでは足りない状態を設計として固定している。クラウド事業者が自らの製品文書に「この構成は不支持」と書き、その直後に「ただしこの設定を入れれば動く」と条件を添えるとき、読むべきは条件の側である。条件は、その事業者が何を必須とみなしているかの表明だからだ。

ドキュメントが実際に述べていること

原文の範囲を正確に押さえておきたい。AzureのIPv6概要ページは、IPv6のみの仮想マシンとIPv6のみのスケールセットを不支持とし、各ネットワークインターフェースに少なくとも1つのIPv4 IP設定を要求する(出典)。公開IPアドレスのページも同じ制約を繰り返し、その理由として、デュアルスタック構成では各ネットワークインターフェースに少なくとも1つのIPv4設定が必要だと説明する(Azure のパブリック IP アドレス)。

ここで「デュアルスタック」という語を平らな言葉に置き換えておく。1台のマシンがIPv4とIPv6の両方の住所を持ち、両方の世界と同時に話せる状態を指す。つまりAzureが標準として想定しているのは、IPv6への移行ではなく、IPv4とIPv6の同居である。

同じ概要ページは、IPv6を「既存のIPv4インターネットと、新しいIPv6のデバイスやネットワークの両方に到達できるようにする」ためのデュアルスタック接続として位置づけている(出典)。IPv4を置き換える話ではなく、IPv4枯渇と付き合う話だ、と自ら書いている。Windows Server側の移行技術の文書も、IPv4とIPv6の共存と移行の仕組みを説明するもので、IPv4の放棄ではない(IPv6 移行テクノロジ)。

だからこの記事が言えるのはここまでだ。AzureはIPv4専用ではない。IPv6のサポートを欠いてもいない。IPv6アドレス範囲を持たないわけでもない。言えるのは、IPv6だけの構成を許さないという一点であり、それは文書に明記された構成要件であって、推測ではない。

なぜネットワークインターフェースが要の部分なのか

制約の置き場所を見ると、この設計の性格がはっきりする。IPv4の必須化は、アプリケーション層でもサブスクリプション層でもなく、ネットワークインターフェース層に置かれている。ネットワークインターフェースは、仮想マシンがプラットフォームに「アドレスをください」と要求するまさにその接点だ。

置き場所がインターフェースである以上、制約はインターフェースの数に比例して増える。アプリケーションがどれだけIPv6を話すかには比例しない。IPv6に完全対応したワークロードでも、インターフェースが10個あれば10個のIPv4設定が要る。ここが効いている。もし制約が「IPv6のみのサブスクリプションは不可」という形で上位に置かれていたら、顧客はサブスクリプション単位で設計を変えれば済んだ。インターフェース単位に置かれているから、設計の変更はデプロイの隅々まで及ぶ。

この構造は、移行の速度を上げる方向にも下げる方向にも、単独では働かない。IPv4を残すことを強制するが、IPv6の利用を妨げはしない。両方を同時に成り立たせる設計であり、その意味では一貫している。一貫していないのは、価格の側だ。

無料のIPv6、課金されるIPv4、行き場のない価格シグナル

AzureのIPv6概要ページは、公開IPv6アドレスと公開IPv6プレフィックスの使用に料金はかからないと明記する。関連リソースと帯域幅はIPv4と同じ料率で課金される、とも書く(出典)。公開IPアドレスのページも、公開IPv4アドレスには名目上の料金があり、公開IPv6アドレスにはないと述べる(出典)。

ここに価格シグナルがある。片方のアドレスファミリーは無料、もう片方は課金対象。経済合理性だけを見れば、顧客はIPv6へ寄るはずだ。ところがインターフェース層の規則がIPv4を必須にしている。シグナルはIPv6へ押し、規則はIPv4を留める。二つは互いに打ち消し合っているのではなく、順序づけられている。規則が先にあり、価格はその内側で働く。

だから「IPv6が無料だから移行が進む」という説明は、この構成では成立しない。無料のアドレスファミリーは、必須のアドレスファミリーを置き換えられない。顧客が支払うのは、削れるはずのないIPv4設定の分だ。金額はここでは問題ではない。名目上の料金がいくらかは、この記事の論点ではない。論点は、無料の側に寄る経済的な力と、必須の側を固定する技術的な規則が、同じ文書に並記されているという事実だ。

公開された記録はネットワークではない

Azureのアドレス空間について調べようとする人は、Microsoftが公開しているIP範囲とサービス タグのダウンロードファイルにたどり着く。機械可読な形式で、Azureのサービスが使うアドレス空間のデータを提供するものだ(Azure IP 範囲とサービス タグ)。

このファイルの存在と目的は確認できる。だが、その現在のスキーマ(データの項目立ての決まりごと)や、どのアドレスファミリーをどこまで収録しているか、どのくらいの頻度で更新されるかは、今回テキストとして読み切れていない。したがって、このファイルがIPv6プレフィックスを含まないとか、IPv4のみだとかいう主張はしない。読めていないものを、読めていないまま結論に使わないのが筋だ。

ここで押さえるべきは、三つの記録が三つの異なる時計で動いているという構造だ。レジストリの登録記録、事業者が公開する範囲ファイル、プラットフォームが実際に強制する構成要件。これらは別々の目的で、別々の頻度で更新される。三つが食い違うとき、まず疑うべきは真偽ではなく、範囲と更新頻度のずれである。範囲ファイルは「どのアドレス帯がどのサービスに割り当てられているか」を語るが、「どの構成が許されるか」は語らない。構成要件を語るのはドキュメントであり、ドキュメントはアドレス台帳ではない。

レジストリの記録が語れること、語れないこと

ARINのRDAP(登録データを問い合わせるための公開インターフェース)の組織レコードには、ハンドルMSFTのエントリがある。これはMicrosoft Corporationの組織登録と、そこに紐づくインターネット番号リソースの登録上の窓口だ(ARIN RDAP: MSFT)。

この記事は、このレコードからMicrosoftのIPv4保有総数を出さない。プレフィックスの一覧も出さない。所有の結論も出さない。レコードの本文と、紐づくリソースの完全な集合をテキストとして読み切っていないからだ。読めていない台帳から数字を引き出すのは、報道ではなく当て推量になる。

言えるのは、ARINが公開のIPv4移転の枠組みと登録の記録を維持しており、中央のIPv4プールが枯渇した後も、登録済みアドレス空間が組織間を移る取引が記録され続けている、という制度の存在だ(ARIN: IPv4 移転)。移転が起きていることと、誰がどれだけ持っているかは別の問いである。前者は制度で、後者は台帳の読み込みを要する。

2011年のノーテル買収、そしてそれが説明にならない理由

歴史的な文脈として、2011年4月の報道がある。BBC NewsとArs Technicaは、MicrosoftがノーテルのIPv4アドレス666,624個を、約750万ドルで取得したと報じた。ノーテルの破産に関連する資産処分の一環として伝えられている(BBC News、Ars Technica)。

数字を素直に割れば、1アドレスあたり約11.25ドルになる。これは報道された数字の上の算術であって、ARINが定めた価格でも、ましてや現在の市場価格でもない。当時の記事本文を今回テキストとして読み切ってはいないので、これは報道に帰属された事実として扱う。

そして、ここが重要だ。この2011年の取引は、現在のAzureの構成規則の説明にはならない。過去にIPv4を買った事業者が、今日のインターフェース要件を書いた、という因果は、どこにも記録されていない。この記事はその因果を主張しない。歴史は、アドレス空間が金銭で取引される資産であり得ることを示す。それ以上は示さない。

移行は実際どこまで進んだのか

では、IPv6への移行は進んでいないのか。この記事はその測定をしていない。BGP(ネットワーク同士が経路を交換する仕組み)の観測も、エンドポイントの実測も、顧客への聞き取りも行っていない。公開メタデータと実際のネットワーク状態を突き合わせる作業は、ここでは実施していない。

言えるのは、プラットフォームの側が用意した答えの形だ。IPv6は提供され、公開IPv6アドレスは無料で、デュアルスタック接続として位置づけられている。同時に、IPv6だけの構成は不支持とされ、すべてのインターフェースにIPv4が要求される。この組み合わせは、移行を止めてはいない。移行の終点を、IPv4が消える地点ではなく、IPv4が常に同居する地点に置いている。

顧客にとっての実務的な意味は明快だ。IPv6対応は、IPv4設定を外す作業ではない。IPv4設定を保ったまま、IPv6を足す作業になる。設計者は、二つのアドレスファミリーを同時に持つ前提で、アドレス計画を立てることになる。

この読み方を変えるもの

この記事の読み方は、いくつかの具体的な観察で変わる。第一に、Microsoftがこのインターフェース要件の理由、導入時期、想定される終了条件を説明する文書を出した場合。第二に、IPv6のみの構成がサポート対象になった場合。第三に、公開IPアドレスの料金体系が変わり、IPv4とIPv6の価格差が消えた場合。第四に、公開されているIP範囲ファイルのスキーマと収録範囲が読み取れ、アドレスファミリーごとの扱いが明確になった場合。

いずれも起きていない。起きているのは、公開文書に書かれた構成要件と、公開文書に書かれた料金の並記だ。AzureはIPv6を拒んでいない。IPv6だけで足りることを拒んでいる。そしてその決定を、理由を添えずに公開している。

Microsoft Corporationの登録情報は、BTWのディレクトリ(entity:microsoft-corporation-us)で確認できる。