Azure Bastion 経由RDPでAzureVMに接続は時々失敗、原因はVMのメモリ枯渇でした。
調査経緯は面白かったので、以下にメモしておきます。
==================
最近、Azure VMにBastion経由でアクセスして、時々失敗します。そしてある日からもうずっとログオンできない。
また、Windows画面がでた瞬間ですぐ真っ黒になり、エラーは以下で出ます。
プロトコルエラー(コード:0x112f)のため、リモートセッションは切断されます。
リモートコンピューターへの接続をもう一度実行してください。
Bastionを経由せずに別のVMから直接アクセスしてみましたが、同じく接続は失敗。
では、間違いなく、VM側の問題です。
該当時間帯に以下のような RDP 接続でのログオンに成功したイベントが記録されていました。
ログの名前: Security
ソース: Microsoft-Windows-Security-Auditing
日付: 2025/06/17 9:31:13
イベント ID: 4624
タスクのカテゴリ: Logon
レベル: 情報
キーワード: 成功の監査
ユーザー: N/A
コンピューター: testVM
説明:
アカウントが正常にログオンしました。
新しいログオン:
セキュリティ ID: S-1-5-21-818730412-992945783-2491817323-500
アカウント名: tan_server
アカウント ドメイン: test-com
ログオン ID: 0x43860B60
リンクされたログオン ID: 0x0
ネットワーク アカウント名: -
ネットワーク アカウント ドメイン: -
プロセス情報:
プロセス ID: 0x948
プロセス名: C:\Windows\System32\svchost.exe
ネットワーク情報:
ワークステーション名: test-123-test
ソース ネットワーク アドレス: 10.10.50.69
ソース ポート: 0
詳細な認証情報:
ログオン プロセス: User32
認証パッケージ: Negotiate
移行されたサービス: -
パッケージ名 (NTLM のみ): -
キーの長さ: 0
このイベントは、ログオン セッションの作成時に生成されます。このイベントは、アクセス先のコンピューターで生成されます。
Userの認証も問題ないでした。
情報 2025/06/17 9:31:09 TerminalServices-RemoteConnectionManager 261 なし
リスナー RDP-Tcp で接続を受信しました
情報 2025/06/17 9:31:10 TerminalServices-RemoteConnectionManager 1149 なし
リモート デスクトップ サービス: ユーザー認証に成功しました:
ユーザー: tan_apserver
ドメイン:
ソース ネットワーク アドレス: 10.10.50.69
あと、仮想メモリが不足しているようです。VMのメトリックをみると、確かにメモリは枯渇の状態です。
OS 再起動でRDP事象が解消されました。
ログの名前: System
ソース: Microsoft-Windows-Resource-Exhaustion-Detector
日付: 2025/06/17 10:28:18
イベント ID: 2004
タスクのカテゴリ: リソース消費診断イベント
レベル: 警告
キーワード: システムのコミット リミット (仮想メモリ) の消費に関連するイベントです。
ユーザー: SYSTEM
コンピューター: XXXXX-
説明:
Windows は仮想メモリの不足状態を診断しました。仮想メモリを多く消費したのは次のプログラムです: MsMpEng.exe (3328) は 332541952 バイトを消費し、WaAppAgent.exe (5676) は 55005184 バイトを消費し、WindowsAzureGuestAgent.exe (3076) は 36794368 バイトを消費しました。