【Azure for ITPro】Windows Azure Connect を使用するためのネットワーク条件について

3月4日のセミナーにお越しくださったみなさま、ありがとうございました。限られた時間で、あまり突っ込んだお話ができませんでしたが、Windows Azure Connect について何ができるのかはご理解いただけたかと思います。

懇親会ではネットワークの条件について多くの方からご質問をいただきましたので、この場を借りて補足しておきたいと思います。

※Windows Azure Connect は現時点でプレビュー版が提供されていますので、リリース時に使用が変更される可能性があることをご了承ください

ちなみに、以下のようなビデオ(英語ですんません...)も公開されていますので、興味のある方はご覧ください。

Windows Azure Platform Security Essentials: Module 5 - Secure Networking using Windows Azure Connect image

Azure Connect 自身の機能については、以下も参考にしてください。
【Azure for ITPro】Windows Azure Connect を使用した ADドメインへの参加について

Windows Azure Connect を使用すると、IPv6 を使用して通信を行うことは多くの皆さんがご存知の通りです。ただ、そうなると疑問が出てきます。既に @kamebuchi さんのブログでも触れらている通り、「じゃぁ、IPv6に対応したネットワーク環境が必須になるの? 」ということです。

ちなみに、Windows Azure Connect の技術解説サイトには以下のように書かれています。

Overview of Firewall Settings Related to Windows Azure Connect

In Windows Azure Connect, the firewall settings on local endpoints (local computers or VMs) are under your control. Windows Azure Connect uses HTTPS, which uses port 443. Therefore, the port that you must open on local endpoints is TCP 443 outbound.

Windows Azure Connect では、ローカルコンピューターおよびAzureインスタンスのファイアウォールの設定はシステム管理者の制御下にあります。Windows Azure Connect は HTTPS(Port 443)を使用しているため、ローカルコンピューターは外部に向けて TCP 443 を使用して通信ができなければなりません。

サクッと言ってしまうと、Windows Azure Connect は IPv6 over IPv4 によって、IPv6 を IPv4でカプセル化して通信します。その際に使用されるプロトコルは SSTP (トランスポートプロトコルは HTTPS)です。

※SSTPについては田辺さんのBLOGをご参照ください
SSTP VPN を試す - Shigeya Tanabe's blog - Site Home - TechNet Blogs

これは、Windows Vista SP1以降および Windows Server 2008 以降に実装されているトンネリングプロトコルで、 HTTPS を使用しているため、既存のファイアウォールやNATとの相性が良いというメリットがあります。そのため、おそらく多くのネットワーク環境では特別な設定が必要ありません。

Windows Azure Connect は、この SSTP を使用して Relay サービスとのトンネルを構成します。

image

このVPNトンネルの構成までは、既存の IPv4アドレスが設定されているネットワークカードが使用されます。

VPN トンネルが構成されると、Windows Azure Connect エンドポイントソフトウェア によって作成された仮想ネットワークアダプターが使用されます。

image

仮想ネットワークアダプターにはWindows Azure Connect 仮想ネットワーク用の IPv6 アドレスが振られており、VPN トンネルの中を IPSec で暗号化してロールインスタンスとの通信を行います。このとき、Relay サービスは IPv6 のルーターとして動作し、ルーター要請メッセージ(router solicitation message) を受け取ってルーティングを構成し、目的のロールインスタンスへのルーティングを行ってくれます。

image

さて、ここで2点疑問が出てきます。

    • ローカルコンピューターからのロールインスタンスの名前解決はどうするのか?
    • ロールインスタンスからのローカルコンピューターの名前解決はどうするのか?

ということです。

実は、Windows Azure Connect には、Relay サービスのほかに「Windows Azure Connect Name Service」と呼ばれる名前解決サービスが用意されています。この名前解決サービスに接続するためのリゾルバは、Windows Azure Connect エンドポイントソフトウェア のインストール時に、ローカルコンピューターにインストールされます(同様に、ロールインスタンスにもインストールされます)。

Windows Azure Connect エンドポイントソフトウェアは、ローカルコンピューターおよびロールインスタンスのホスト名とIPv6 アドレスを、Windows Azure Connect Name Service に登録します。これにより、エンドポイント同士の名前解決が可能になります。もちろん、オンプレミスのローカルコンピューターは、Windows Azure ロールインスタンスの名前解決クエリのみを Azure Connect Name Service に転送し、その他の名前解決は既存のDNSに転送します。ローカルネットワークのアドレスが Azure Connect Name Service に登録されることはありません。

image