Azure VM の接続に関する問題のトラブルシューティング
この記事は、管理者が Azure 仮想マシン (VM) に影響する接続の問題を診断して解決するのに役立ちます。
問題が発生した場合
- Resource Manager を使用してデプロイされた Azure VM から同じ仮想ネットワーク内の別の Azure VM に接続できない。
- Azure VM から同じ仮想ネットワーク内の Azure VM の 2 つ目のネットワーク アダプターに接続できない。
- Azure VM からインターネットに接続できない。
これらの問題を解決するには、次のセクションの手順に従ってください。
Note
次のデータベースを使用できます。
- VM がリッスンしているポートを一覧表示するための
netstat -an
- ping テストや tcp テストなどの接続の診断情報を表示するための PowerShell の Test-NetConnection モジュール
解決方法
Azure VM から同じ仮想ネットワーク内の別の Azure VM に接続できない
手順 1: VM が相互に通信できることを確認します。
ソース VM に TCping をダウンロードします。
コマンド プロンプト ウィンドウを開きます。
TCping をダウンロードしたフォルダーに移動します。
次のコマンドを使用して、ソース VM から宛先に ping を実行します。
tcping64.exe -t <destination VM address> 3389
ヒント
ping テストが成功した場合は、手順 3 に進みます。 使用できない場合は、次の手順に進みます。
手順 2: ネットワーク セキュリティ グループ設定を確認します。
各 VM で、既定の受信ポート規則 ("AllowVnetInBound" と "AllowAzureLoadBalancerInBound") を確認します。 また、優先順位の低い規則の下に一致するブロッキング規則が一覧表示されていないことも確認してください。
注意
数値の小さい規則が先に照合されます。 たとえば、優先順位が 1000 および 6500 の規則がある場合、優先順位が 1000 の規則が先に照合されます。
その後、ソース VM から宛先にもう一度 ping を実行してみます。
tcping64.exe -t <destination VM address> 3389
手順 3: リモート デスクトップまたは SSH を使用して宛先 VM に接続できるかどうかを確認します。
リモート デスクトップを使用して接続するには、次の手順を実行します。
Windows:
- Azure portal にサインインします。
- 左側のメニューで [Virtual Machines] を選択します。
- 一覧から仮想マシンを選択します。
- 仮想マシンのページで、 [接続] を選択します。
詳細については、「Windows が実行されている Azure 仮想マシンに接続してサインオンする方法」を参照してください。
Linux:
詳細については、Azure での Linux VM への接続に関する記事をご覧ください。
リモート デスクトップまたは SSH 接続が成功した場合は、次の手順に進みます。
手順 4: 接続チェックを実行します。
ソース VM で接続チェックを実行し、応答を確認します。
Windows: PowerShell を使用して Azure Network Watcher との接続を確認する
Linux: Azure CLI 2.0 を使用して Azure Network Watcher との接続を確認する
応答の例を次に示します。
ConnectionStatus : Unreachable
AvgLatencyInMs :
MinLatencyInMs :
MaxLatencyInMs :
ProbesSent : 100
ProbesFailed : 100
Hops : [
{
"Type": "Source",
"Id": "c5222ea0-3213-4f85-a642-cee63217c2f3",
"Address": "10.1.1.4",
"ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGrou
ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurat
ions/ipconfig1",
"NextHopIds": [
"9283a9f0-cc5e-4239-8f5e-ae0f3c19fbaa"
],
"Issues": []
},
{
"Type": "VirtualAppliance",
"Id": "9283a9f0-cc5e-4239-8f5e-ae0f3c19fbaa",
"Address": "10.1.2.4",
"ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGrou
ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/fwNic/ipConfiguratio
ns/ipconfig1",
"NextHopIds": [
"0f1500cd-c512-4d43-b431-7267e4e67017"
],
"Issues": []
},
手順 5: 接続チェックの結果に含まれる問題を修正します。
受信した接続チェック応答の [Hops] セクションで、一覧表示されている問題を確認します。
次の表から対応する解決策を見つけ、示された手順に従って問題を解決します。
問題の種類 値 解決アクション NetworkSecurityRule ブロックしている NSG の名前 NSG 規則を削除するか、こちらの説明に従って規則を変更できます。 UserDefinedRoute ブロックしている UDR の名前 このルートを必要としない場合は、UDR を削除します。 ルートを削除できない場合は、適切なアドレス プレフィックスとネクスト ホップを使用してルートを更新します。 また、トラフィックを適切に転送するようにネットワーク仮想アプライアンスを調整することもできます。 詳細については、「仮想ネットワーク トラフィックのルーティング」と「PowerShell を使用してルート テーブルでネットワーク トラフィックをルーティングする」を参照してください。 CPU 使用 Linux または Windows を実行する Azure 仮想マシンの一般的なパフォーマンスのトラブルシューティングに関する記事で説明されている推奨事項に従ってください。 メモリ 使用 Linux または Windows を実行する Azure 仮想マシンの一般的なパフォーマンスのトラブルシューティングに関する記事で説明されている推奨事項に従ってください。 ゲスト ファイアウォール ファイアウォール ブロックの名前 「Windows Defender ファイアウォールを有効または無効にする」の手順を実行します。 DNS の解決 DNS の名前 「Azure DNS トラブルシューティング ガイド」および「Azure 仮想ネットワーク内のリソースの名前解決」の手順を実行します。 ソケット エラー 利用不可 指定されたポートは別のアプリケーションによって既に使用されています。 別のポートを使用してみてください。 接続チェックをもう一度実行して、問題が解決されたかどうかを確認します。
Azure VM から同じ仮想ネットワーク内の Azure VM の 2 つ目のネットワーク アダプターに接続できない
手順 1: 2 つ目のネットワーク アダプターでサブネットの外部との通信が有効になっていることを確認します。
既定では、セカンダリ ネットワーク アダプター (ネットワーク インターフェイス カードまたはネットワーク アダプターとも呼ばれます) は既定のゲートウェイを使用するように構成されていません。 そのため、セカンダリ アダプターのトラフィック フローは同じサブネットに制限されます。
セカンダリ ネットワーク アダプターが専用のサブネットの外部と通信できるようにする場合、ユーザーはルーティング テーブルにエントリを追加してゲートウェイを構成する必要があります。 これを行うには、次の手順に従います。
2 つ目のネットワーク アダプターが構成されている VM で、管理者としてコマンド プロンプト ウィンドウを開きます。
次のコマンドを実行して、ルーティング テーブルにエントリを追加します。
Route add 0.0.0.0 mask 0.0.0.0 -p <Gateway IP>
たとえば、2 つ目の IP アドレスが 192.168.0.4 の場合、ゲートウェイ IP は 192.168.0.1 である必要があります。 次のコマンドを実行する必要があります。
Route add 0.0.0.0 mask 0.0.0.0 -p 192.168.0.1
route print を実行します。 エントリが正常に追加された場合は、次のようなエントリが表示されます。
ここで、セカンダリ ネットワーク アダプターへの接続を試みます。 接続がまだ失敗する場合は、次の手順に進みます。
手順 2: ネットワーク アダプターの NSG 設定を確認します。
プライマリとセカンダリの両方のネットワーク アダプターについて、ネットワーク アダプターの受信に対する既定の受信ポート規則 (AllowVnetInBound、AllowAzureLoadBalancerInBound) を確認します。 また、優先順位の低い規則の下に一致するブロッキング規則がないことを確認する必要があります。
手順 3: セカンダリ ネットワーク アダプターへの接続チェックを実行します。
- セカンダリ ネットワーク アダプターへの接続チェックを実行します。
- 環境全体で接続チェックを実行して、エンドツーエンドでプロセスが機能することを確認します。
接続チェックを実行する方法の詳細については、次の記事を参照してください。
Windows: PowerShell を使用して Azure Network Watcher との接続を確認する
Linux: Azure CLI 2.0 を使用して Azure Network Watcher との接続を確認する。
応答の例を次に示します。
ConnectionStatus : Unreachable
AvgLatencyInMs :
MinLatencyInMs :
MaxLatencyInMs :
ProbesSent : 100
ProbesFailed : 100
Hops : [
{
"Type": "Source",
"Id": "c5222ea0-3213-4f85-a642-cee63217c2f3",
"Address": "10.1.1.4",
"ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGrou
ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurat
ions/ipconfig1",
"NextHopIds": [
"9283a9f0-cc5e-4239-8f5e-ae0f3c19fbaa"
],
"Issues": []
},
{
"Type": "VirtualAppliance",
"Id": "9283a9f0-cc5e-4239-8f5e-ae0f3c19fbaa",
"Address": "10.1.2.4",
"ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGrou
ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/fwNic/ipConfiguratio
ns/ipconfig1",
"NextHopIds": [
"0f1500cd-c512-4d43-b431-7267e4e67017"
],
"Issues": []
},
手順 4: 手順 5 の表を参照し、これらの手順に従って問題を解決します。
Azure VM からインターネットに接続できない
手順 1: ネットワーク アダプターが失敗状態であるかどうかを確認します。
次の手順に従って NIC の状態を確認します。
リソース エクスプローラー ポータルにログインします。
左側のウィンドウで、 [サブスクリプション] を選択します。
左側のウィンドウで、影響を受けるネットワーク アダプターまたは VM が属しているリソース グループを選択します。
[Microsoft ネットワーク] に移動します。
[ネットワーク インターフェイス] オプションを選択します。
影響を受けるネットワーク インターフェイスを選択します。
ポータルの上部にある [読み取り/書き込み] オプションを選択します。
[編集] オプションを選択します。
注意
[編集] オプションを選択すると、[GET] オプションが [PUT] オプションに変わります。
影響を受けるネットワーク インターフェイスを選択してから、 [PUT] オプションを選択します。
注意
この選択を行った後、ProvisioningState が Updating として表示されます。 通常の Azure Resource Manager ポータルでも同じ結果が表示されます。 操作が正常に完了すると、次に示すように ProvisioningState の値が Succeeded に変わります。
ポータルを更新します。 ネットワーク アダプターが成功状態になります。