特定条件下でConnect-MsolServiceが失敗する

久しぶりにADFSの環境を構築しようとして、検証環境でConnect-MsolServiceコマンドレットでWindows Azure Active Directoryに接続しようとしたところ、なぜか以下のエラーが出て接続できない事象が発生するようになりました。

PS C:> Connect-MsolService -Credential $LiveCred 
Connect-MsolService : 要求チャネルは、応答を待機してから 00:00:59.8905882 後に
タイムアウトしました。Request の呼び出しに渡すタイムアウト値を増やすか、Binding
 の SendTimeout 値を増やしてください。この操作に割り当てられた時間は、より長い
タイムアウト時間の一部であった可能性があります。
発生場所 行:1 文字:1
+ Connect-MsolService -Credential $LiveCred
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [Connect-MsolService], Tim
   eoutException
    + FullyQualifiedErrorId : System.TimeoutException,Microsoft.Online.Adminis
   tration.Automation.ConnectMsolService
Connect-MsolService : 種類 'Microsoft.Online.Administration.Automation.Microsof
tOnlineException' の例外がスローされました。
発生場所 行:1 文字:1
+ Connect-MsolService -Credential $LiveCred
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [Connect-MsolService], Mic
   rosoftOnlineException
    + FullyQualifiedErrorId : Microsoft.Online.Administration.Automation.Micro
   softOnlineException,Microsoft.Online.Administration.Automation.ConnectMsol
  Service

エラーの内容からすると、単なるタイムアウトっぽいです。
20130318_01

他の環境から実行したところ特に問題く接続できるので、クラウド側の障害とかでは無さそうに思えます。下の方のレイヤでの障害が疑われるので、とりあえずWireSharkでパケットを追ってみると、何となくそれらしい所が見つかりました。
20130318_02

Connect-MsolServiceでは、まずlogin.microsoftonline.com(実体はlogin.microsoftonline.com.nsatc.net)に接続しに行った後、provisioningapi.microsoftonline.com(実体はprd-provisioning.msods.nsatc.net)に接続しにいくのですが、このprd-provisioning.msods.nsatc.netがAAAAレコードを持っているというところがポイントの様です。

というのも、この検証環境のOSはデフォルトの構成で適当に組んでいるので内部セグメントではIPv6が有効化されており、ドメコン上のDNSサーバで名前解決もできるのですが、ルーターやFirewall、回線はIPv6対応していなく、IPv6でインターネットに向けて通信ができないという、ちょっと特殊な環境です。

ご存じの通り、Windowsでは同一ホスト名に対してIPv4とIPv6の両方で接続ができる場合、IPv6での接続を優先的に試みます。今回、IPv6の通信がタイムアウトで失敗してIPv4にフェールバックされてくる前に、PowerShellの接続モジュールの方が耐えきれなくなってタイムアウトしている…という状況のようです。

…というわけで、IPv6を切ったら何の問題も無く繋がるようになりました。
20130318_05
20130318_04

Office365も段々とIPv6対応してくるサービスが増えてくるようなので、もう少ししっかりIPv6の構成をオンプレでも見直していった方が良いかもしれませんね。

One thought on “特定条件下でConnect-MsolServiceが失敗する

  1. Pingback: Exchange OnlineのIPv6 | 日々徒然

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です