この記事では、仮想マシン (VM) 内のネットワーク インターフェイスの有効なルートを表示して、ルーティングの問題を診断する方法について説明します。 Azure では、仮想ネットワーク サブネットごとに既定のルートが自動的に作成されます。 これらの既定のルートをオーバーライドするには、ルート テーブルでカスタム ルートを定義し、テーブルをサブネットに関連付けます。 ネットワーク インターフェイスの有効なルートは、Azure の既定のルート、定義したカスタム ルート、およびボーダー ゲートウェイ プロトコル (BGP) を使用して Azure VPN ゲートウェイを介してオンプレミス ネットワークから伝達されるすべてのルートの組み合わせです。 仮想ネットワーク、ネットワーク インターフェイス、またはルーティングを初めて使用する場合は、 仮想ネットワークの概要、 ネットワーク インターフェイス、 ルーティングの概要に関するページを参照してください。
シナリオ
VMへの接続を試みましたが、接続に失敗しました。 VM に接続できない理由を特定するために、Azure portal、PowerShell、または Azure CLI を使用して、ネットワーク インターフェイスの有効なルートを表示できます。
以下の手順では、有効なルートの表示対象となる既存の VM があると仮定します。 既存のVMがない場合は、まずLinuxまたはWindowsのVMをデプロイして、この記事のタスクを完了してください。 この記事の例は、vm-1 という名前の VM と、vm-1445 という名前のネットワーク インターフェイスを対象にしています。 VM とネットワーク インターフェイスは test-rg という名前のリソース グループにあり、 米国東部 リージョンにあります。 必要に応じて、問題を診断する VM の手順の値を変更します。
Azure ポータルを使用して診断する
Azure portal の上部の検索ボックスに、実行中状態になっている VM の名前を入力します。 検索結果にVMの名前が表示されたら、それを選択します。
[ネットワーク] セクション を 展開し 、[ネットワーク設定] を選択します。
インターフェイスを選択するには、その名前を選択します。
ネットワーク インターフェイスで、[ヘルプ] を展開 します。 [有効なルート] を選択します。
目的のネットワーク インターフェイスを選択して、その有効なルートを表示します。 各インターフェイスは異なるサブネットに属している可能性があるため、一意のルートになります。 この画像の例は、サブネットごとに Azure によって作成された既定のルートを示しています。 リストには既定のルートが含まれており、追加のルートが含まれる場合もあります。 ルートは、仮想ネットワーク ピアリングなどの機能や、Azure VPN ゲートウェイ経由のオンプレミス ネットワークへの接続からのルートである可能性があります。 ルートの詳細については、 仮想ネットワーク トラフィックのルーティングに関するページを参照してください。 ルートが多数ある場合は、[ ダウンロード ] オプションを使用して、簡単に確認できるように .csv ファイルとして保存します。
前のステップではVMを通して有効なルートが表示されましたが、有効なルートを表示するための他の方法もあります。
個々のネットワーク インターフェイス: ネットワーク インターフェイス設定の表示方法をご確認ください。
個別ルートテーブル: ルートテーブルの表示方法を学びます。
PowerShell を使用して診断する
ノート
Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 始めるには、Install Azure PowerShell を参照してください。 Az PowerShell モジュールへの移行方法については、Migrate Azure PowerShell from AzureRM to Az を参照してください。
コンピューターから PowerShell を実行するか、Azure Cloud Shell で次のコマンドを実行できます。 Azure Cloud Shell は無料の対話型シェルです。 お使いのアカウントで使用できるように、一般的な Azure ツールがあらかじめインストールされ、設定されています。 コンピューターから PowerShell を実行する場合、バージョン 1.0.0 以降の Azure PowerShell モジュールが必要です。 コンピューターで Get-Module -ListAvailable Az
を実行して、インストールされているバージョンを確認してください。 アップグレードが必要な場合は、Azure PowerShell モジュールをインストールを参照してください。 PowerShell をローカルで実行している場合は、 Connect-AzAccount
を実行して、 必要なアクセス許可を持つアカウントで Azure にログインする必要もあります。
ネットワークインターフェイスの有効なルートをGet-AzEffectiveRouteTableで取得します。 次の例では、test-rg という名前のリソース グループ内の vm-1445 という名前のネットワーク インターフェイスの有効なルートを取得します。
$Params = @{
NetworkInterfaceName = "vm-1445"
ResourceGroupName = "test-rg"
}
Get-AzEffectiveRouteTable @Params | Format-Table
出力に返される情報を理解するには、ルーティング概要を参照してください。 VMが稼働中の場合にのみ、出力が返されます。 VM に複数のネットワークインターフェースが接続されている場合、それぞれのネットワークインターフェースの有効なルートを確認することができます。 各ネットワークインターフェイスは異なるサブネットに配置されることができるため、それぞれのネットワークインターフェイスは異なる実効ルートを持つことができます。 通信の問題が解決しない場合は、 さらに診断 と 考慮事項を参照してください。
ネットワーク インターフェイス名ではなく VM 名がわかっている場合は、次のコマンドを使用して、VM に接続されているすべてのネットワーク インターフェイスの ID を返します。
$Params = @{
Name = "vm-1"
ResourceGroupName = "test-rg"
}
$VM = Get-AzVM @Params
$VM.NetworkProfile
あなたは次の例のような出力を受け取ります。
NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/test-rg/providers/Microsoft.Network/networkInterfaces/vm-1445
前の出力では、ネットワーク インターフェイス名は vm-1445 です。
Azure CLI を使用して診断する
次のコマンドは、Azure Cloud Shellで実行するか、または自分のコンピューターからCLIを実行することで使用できます。 この記事には、Azure CLI バージョン 2.0.32 以降が必要です。 `az --version
`を実行してインストールされているバージョンを確認します。 インストールまたはアップグレードが必要な場合は、Azure CLI のインストールを参照してください。 Azure CLI をローカルで実行している場合、az login
を持つアカウントで を実行して Azure にログインする必要もあります。
ネットワークインターフェースの有効ルートを表示するには、az network nic show-effective-route-table を使用します。 次のコマンドは、test-rg という名前のリソース グループ内にある vm-1445 という名前のネットワーク インターフェイスの有効なルートを取得します。
az network nic show-effective-route-table \
--name vm-1445 \
--resource-group test-rg
出力に返された情報を理解するには、ルーティングの概要を参照してください。 VMが稼働中の状態にある場合にのみ、出力が返されます。 複数のネットワーク インターフェイスが VM に接続されている場合は、各ネットワーク インターフェイスに対して有効なルートを確認できます。 各ネットワーク インターフェイスは異なるサブネットに存在できるので、ネットワーク インターフェイスはそれぞれ異なる有効なルートを持つことができます。 通信の問題が解決しない場合は、 さらに診断 と 考慮事項を参照してください。
ネットワーク インターフェイス名ではなく VM 名がわかっている場合は、次のコマンドを使用して、VM に接続されているすべてのネットワーク インターフェイスの ID を返します。
az vm show \
--name vm-1 \
--resource-group test-rg
問題を解決する
ルーティングの問題の解決は、通常、次の手順で構成されます。
Azure の既定のルートの 1 つをオーバーライドするカスタム ルートの追加。 カスタム ルートの追加方法をご確認ください。
望ましくない場所へのルーティングを引き起こす可能性があるカスタム ルートを変更または削除しました。 カスタムルートを変更または削除する方法を学びます。
定義されているカスタム ルートを含むルート テーブルが、ネットワーク インターフェイスが存在するサブネットに関連付けられていることを確認します。 サブネットにルートテーブルを関連付ける方法を学びます。
Azure VPN ゲートウェイや、デプロイされたネットワーク仮想アプライアンスなどのデバイスが操作可能であることを確認します。 Network Watcher の VPN 診断機能を使用して、Azure VPN ゲートウェイの問題を特定します。
通信に関する問題が解決しない場合は、「考慮事項とその他の診断 」 を参照してください。
考慮事項
通信の問題をトラブルシューティングする際には、次のポイントを考慮してください。
ルーティングでは、最長プレフィックス 一致 (LPM) を使用して、システム ルート、BGP、およびカスタム ルートからの最適なルートが決定されます。 複数のルートが同じ LPM 一致を共有している場合、Azure は ルーティングの概要の優先順位に基づいて 1 つを選択します。 有効なルートには LPM に一致するルートのみが表示されるため、VM 通信に影響するルートの識別とトラブルシューティングが簡単になります。
カスタム ルートが、次ホップの種類として 仮想 アプライアンスを使用してネットワーク仮想アプライアンス (NVA) にトラフィックを転送する場合は、NVA の IP 転送が有効になっていることを確認します。それ以外の場合、パケットは破棄されます。 ネットワーク インターフェイスの IP 転送を有効にし、トラフィックを転送するように NVA のオペレーティング システムまたはアプリケーションを構成する方法について説明します。
0.0.0.0/0 へのルートが作成された場合、すべての送信インターネット トラフィックは、NVA や VPN ゲートウェイなど、指定した次ホップにルーティングされます。 このようなルートを作成することは、しばしば強制トンネリングと呼ばれます。 インターネットから VM への RDP または SSH プロトコルを使用したリモート接続は、次ホップによるトラフィックの処理方法によっては、このルートでは機能しない場合があります。 強制トンネリングを有効にすることができます。
- サイト間VPNを使用する際には、VPN Gatewayを次のホップタイプとするルートを作成することによって。 強制トンネリングの構成についてさらに学ぶ。
- サイト間VPNまたはExpressRoute回線を使用する際に、0.0.0.0/0(デフォルトルート)が仮想ネットワークゲートウェイを通じてBGPでアドバタイズされる場合。 BGP を使用して サイト間 VPN または ExpressRoute を利用する方法について詳しく学びましょう。
仮想ネットワークのピアリング トラフィックが正常に機能するためには、次ホップの種類が "VNet ピアリング" であるシステム ルートが、ピアリングされる仮想ネットワークのプレフィックスの範囲に対して存在する必要があります。 このようなルートが存在せず、仮想ネットワーク ピアリング リンクが 接続されている場合:
数秒待ってから、再試行してください。 サブネット内のすべてのネットワークインターフェースにルートを伝播するのに、時には新しく確立されたピアリンクでは時間がかかることがあります。 詳細な情報を知りたい場合は、仮想ネットワーク ピアリングの概要 および 仮想ネットワーク ピアリングの管理 を参照してください。
ネットワーク セキュリティ グループの規則が通信に影響を与える可能性があります。 詳細については、仮想マシンのネットワークトラフィックフィルタの問題を診断するを参照してください。
Azureは各Azureネットワークインターフェイスにデフォルトルートを割り当てますが、VMに複数のネットワークインターフェイスが接続されている場合、VMのオペレーティングシステム内では、デフォルトルート(0.0.0.0/0)またはゲートウェイは、主要なネットワークインターフェイスのみに割り当てられます。 セカンダリネットワークインターフェイスが接続されたWindowsまたはLinuxのVMに対してデフォルトルートを作成する方法を学びます。 詳細は、一次および二次のネットワークインターフェースについてご覧ください。
その他の診断
位置を目的地とするトラフィックの次のホップタイプをすばやく確認するには、Azure Network Watcherの次のホップ機能を使用します。 次のホップは、特定の場所に向かうトラフィックの次のホップタイプが何であるかを示します。
VM ネットワーク通信が失敗する原因となるルートがない場合は、VM のオペレーティング システム内で実行されているファイアウォール ソフトウェアが原因である可能性があります
VPN ゲートウェイまたは NVA を介してオンプレミス デバイスへのトラフィック を強制的にトンネリング する場合は、デバイスのルーティングの構成によっては、インターネットから VM に接続できない可能性があります。 デバイス用に構成されたルーティングが、VM のパブリックまたはプライベート IP アドレスにトラフィックをルーティングすることを確認します。
Network Watcher の 接続トラブルシュート 機能を使用して、ルーティング、フィルタリング、OS内の原因による外向き通信の問題を特定します。
次のステップ
ルートテーブルとルートに関するすべてのタスク、プロパティ、設定について学びます。
すべての次ホップの種類、システムルート、およびAzureがルートを選択する方法について学びましょう。