仮想ネットワーク トラフィックのルーティングを実装する
Azure では、Azure 仮想ネットワークのサブネットごとにルート テーブルが自動的に作成され、既定のシステム ルートがテーブルに追加されます。 Azure の一部のシステム ルートをカスタム ルートでオーバーライドし、ルート テーブルにカスタム ルートを追加できます。 サブネットのルート テーブルのルートに基づいて、サブネットからの送信トラフィックがルーティングされます。
システム ルート
Azure では、システム ルートが自動的に作成され、仮想ネットワークの各サブネットに割り当てられます。 システム ルートを作成または削除することはできませんが、システム ルートをカスタム ルートでオーバーライドすることはできます。 Azure では、サブネットごとに既定のシステム ルートが作成されます。また、Azure の特定の機能を使用するときは、特定のサブネットまたはすべてのサブネットにその他のオプションの既定のルートが追加されます。
既定のルート
各ルートには、アドレス プレフィックスとネクストホップの種類が含まれています。 サブネットから出ていくトラフィックを、ルートのアドレス プレフィックスに含まれる IP アドレスに送信するときに、そのプレフィックスを含むルートが使用されます。 仮想ネットワークが作成されるたびに、その仮想ネットワークのサブネットごとに、次の既定のシステム ルートが自動的に作成されます。
ソース
アドレス プレフィックス
次ホップの種類
Default
仮想ネットワークに固有
仮想ネットワーク
Default
0.0.0.0/0
インターネット
Default
10.0.0.0/8
なし
Default
192.168.0.0/16
なし
Default
100.64.0.0/10
なし
ルーティングの用語で、ホップはルート全体の通過点です。 したがって、ネクスト ホップは、最終的な宛先までの過程でトラフィックが転送される次の通過点です。 上記の表に記載されているネクストホップの種類は、記載されているアドレス プレフィックス宛てのトラフィックを Azure がどのようにルーティングするのかを示しています。 ネクスト ホップの種類は、次のように定義されます。
仮想ネットワーク: 仮想ネットワークのアドレス空間内のアドレス範囲の間でトラフィックをルーティングします。 Azure によって、仮想ネットワークのアドレス空間に定義された各アドレス範囲に対応するアドレス プレフィックスを含むルートが作成されます。 アドレス範囲ごとに作成されたルートを使用して、サブネット間でトラフィックが自動的にルーティングされます。
インターネット: アドレス プレフィックスによって指定されたトラフィックをインターネットにルーティングします。 既定のシステム ルートでは、アドレス プレフィックス 0.0.0.0/0 が指定されています。 Azure では、宛先アドレスが Azure サービスものである場合を除き、仮想ネットワーク内のアドレス範囲で指定されていないすべてのアドレスへのトラフィックは、インターネットにルーティングされます。 Azure のサービス宛てのすべてのトラフィックは、インターネットにルーティングされるのではなく、Azure によって、バックボーン ネットワーク経由でサービスに直接ルーティングされます。 アドレス プレフィックスが 0.0.0.0/0 の Azure の既定のシステム ルートは、カスタム ルートでオーバーライドできます。
なし: 種類がなしのネクスト ホップにルーティングされるトラフィックは、サブネットの外部にルーティングされるのではなく破棄されます。 Azure では、次のアドレス プレフィックスの既定のルートが自動的に作成されます。
- 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16: RFC 1918 でプライベート用に予約されています。
- 100.64.0.0/10:RFC 6598 で予約されています。
オプションの既定のルート
ユーザーが有効にした Azure 機能については、Azure によって既定のシステム ルートが追加されます。 機能に応じて、仮想ネットワークの特定のサブネットまたはすべてのサブネットにオプションの既定のルートが追加されます。 Azure によって追加されるる可能性のあるシステム ルートとネクスト ホップの種類は次のとおりです。
ソース
アドレス プレフィックス
次ホップの種類
ルートの追加先となる仮想ネットワークのサブネット
Default
仮想ネットワークに固有 (例: 10.1.0.0/16
VNET ピアリング
All
仮想ネットワーク ゲートウェイ
BGP 経由でオンプレミスからアドバタイズされたプレフィックス、またはローカル ネットワーク ゲートウェイで構成されているプレフィックス
仮想ネットワーク ゲートウェイ
All
Default
複数
VirtualNetworkServiceEndpoint
サービス エンドポイントが有効になっているサブネットのみ
仮想ネットワーク (VNet) ピアリング: 2 つの仮想ネットワーク間に仮想ネットワーク ピアリングを作成すると、各仮想ネットワークのアドレス空間内のアドレス範囲ごとに、ルートが追加されます。
仮想ネットワーク ゲートウェイ: 仮想ネットワークに仮想ネットワーク ゲートウェイを追加すると、ネクスト ホップの種類が仮想ネットワーク ゲートウェイである 1 つ以上のルートが、Azure によって追加されます。 ゲートウェイによってサブネットにルートが追加されるため、ソースは仮想ネットワーク ゲートウェイとして一覧に表示されます。
- Azure 仮想ネットワーク ゲートウェイに伝達できるルートの数には制限があるため、可能な限り最大のアドレス範囲にオンプレミスのルートをまとめる必要があります。 伝達できるルートの数の詳細については、「ネットワークの制限」を参照してください。
VirtualNetworkServiceEndpoint: 特定のサービスへのサービス エンドポイントを有効にすると、Azure によって、そのサービスに対するパブリック IP アドレスがルート テーブルに追加されます。 サービス エンドポイントは、仮想ネットワークの個々のサブネットで有効になるので、サービス エンドポイントが有効になっているサブネットのルート テーブルにのみルートが追加されます。 Azure サービスのパブリック IP アドレスは定期的に変更され、必要に応じて Azure によりルーティング テーブルの更新が管理されます。
VNet ピアリング と VirtualNetworkServiceEndpoint の各ネクストホップの種類は、Azure Resource Manager デプロイ モデルを使用して作成された仮想ネットワークのサブネットのルート テーブルにのみ追加されます。 これらのネクスト ホップの種類は、クラシック デプロイ モデルを使用して作成された仮想ネットワークのサブネットに関連付けられているルート テーブルには追加されません。
カスタム ルート
ネットワーク トラフィックのルーティング方法をさらに正確に制御するには、Azure によって作成される既定のルートを、独自のユーザー定義ルート (UDR) を使用してオーバーライドできます。 この手法は、2 つのサブネット間のトラフィックがファイアウォール アプライアンスを通過するようにする場合に役立ちます。
ユーザー定義のルート
Azure でカスタム (ユーザー定義 (静的)) ルートを作成すると、Azure の既定のシステム ルートを上書きしたり、サブネットのルート テーブルに他のルートを追加したりできます。
Azure では、各サブネットに 0 個または 1 個のルート テーブルを関連付けることができます。 ユーザーがルート テーブルを作成してサブネットに関連付けると、Azure によってサブネットに追加された既定のルートは、テーブル内のルートと結合されるか、またはそれによってオーバーライドされます。
ユーザー定義ルートを作成するときは、次のネクストホップの種類を指定できます。
仮想アプライアンス: 仮想アプライアンスとは、一般にネットワーク アプリケーション (ファイアウォールなど) が実行されている仮想マシンです。 ホップの種類が仮想アプライアンスのルートを作成するときは、次ホップの IP アドレスも指定します。 IP アドレスには、次のアドレスを指定できます。
- 仮想マシンに接続されたネットワーク インターフェイスのプライベート IP アドレス。
- Azure 内部ロード バランサーのプライベート IP アドレス。
[仮想ネットワーク ゲートウェイ] :特定のアドレス プレフィックス宛てのトラフィックを仮想ネットワーク ゲートウェイにルーティングする場合に指定します。 種類が VPN の仮想ネットワーク ゲートウェイを作成する必要があります。
なし: アドレス プレフィックスへのトラフィックを宛先に転送するのではなく破棄する場合に指定します。
仮想ネットワーク:仮想ネットワーク内の既定のルーティングをオーバーライドする場合に指定します。
インターネット:アドレス プレフィックス宛てのトラフィックをインターネットに明示的にルーティングする場合に指定します。
ユーザー定義ルートを構成する
ここでは、3 つのサブネットを含む仮想ネットワークの例を示します。
- サブネットはフロントエンド、DMZ、バックエンドです。 DMZ サブネットには、ネットワーク仮想アプライアンス (NVA) があります。 NVA は、ルーティングやファイアウォールの最適化などのネットワーク機能を支援する VM です。
- あなたは、フロントエンド サブネットからのすべてのトラフィックが NVA を経由して確実にバックエンド サブネットに至るようにしたいと考えています。
ルーティング テーブルを作成する
ルーティング テーブルの作成は簡単です。 [名前]、[サブスクリプション]、[リソース グループ]、[場所] を指定します。 また、[仮想ネットワーク ゲートウェイのルート伝達] の使用を決定することもできます。
仮想ネットワーク ゲートウェイの伝達が有効になっているすべてのサブネットのルート テーブルに、ルートが自動的に追加されます。 ExpressRoute を使用していると、伝達によってすべてのサブネットが確実にルーティング情報を取得します。
カスタム ルートを作成する
この例では次のようになります。
- 新しいルートの名前は ToPrivateSubnet になります。
- プライベート サブネットは 10.0.1.0/24 にあります。
- このルートでは、仮想アプライアンスが使用されます。 [ネクスト ホップの種類] の他の選択肢は、[仮想ネットワーク ゲートウェイ]、[仮想ネットワーク]、[インターネット]、[なし] であることに注意してください。
- 仮想アプライアンスは 10.0.2.4 にあります。
まとめると、このルートは 10.0.1.0/24 (プライベート サブネット) のすべてのアドレス プレフィックスに適用されます。 これらのアドレス宛てのトラフィックは、アドレスが 10.0.2.4 の仮想アプライアンスに送信されます。
ルート テーブルを関連付ける
この例の最後のステップでは、パブリック サブネットを新しいルーティング テーブルに関連付けます。 各サブネットには、0 個または 1 個のルート テーブルを関連付けることができます。
注意
既定では、システム ルートを使用すると、トラフィックはプライベート サブネットに直接送られます。 ただし、ユーザー定義ルートを使用すると、トラフィックが仮想アプライアンスを通過するよう強制できます。
Note
この例では、仮想アプライアンスがパブリック IP アドレスを持っていてはならず、IP 転送が有効になっている必要があります。
強制トンネリングを使用して VNet をセキュリティ保護する
強制トンネリングを使用すると、検査および監査のために、サイト間の VPN トンネルを介して、インターネットへのすべてのトラフィックをオンプレミスの場所に戻すようにリダイレクトする (つまり、"強制する") ことができます。 強制トンネリングを構成しない場合、Azure の VM からインターネットへのトラフィックは、トラフィックを検査または監査できるオプションを使用せずに、常に Azure ネットワーク インフラストラクチャからインターネットへ直接トラバースします。 認証されていないインターネット アクセスは、情報の漏えいまたは他の種類のセキュリティ侵害を招く可能性があります。 強制トンネリングは、Azure PowerShell を使用して構成できます。 Azure portal を使用して構成することはできません。
次の例では、フロントエンド サブネットは強制トンネリングを使用していません。 フロントエンドのサブネット内のワークロードは、直接、インターネットから顧客の要求を承認し応答し続けることができます。 Mid-tier および Backend のサブネットは、トンネリングを強制されます。 これら 2 つのサブネットからインターネットへのすべてのアウトバウンド接続は、サイト間 (S2S) VPN トンネルの 1 つを介してオンプレミス サイトに強制的に送られるか、リダイレクトされます。
強制トンネリングについて
Azure では、強制トンネリングは仮想ネットワークのカスタム ユーザー定義ルートを使用して構成されます。
各仮想ネットワーク サブネットには、システム ルーティング テーブルが組み込まれています。 システム ルーティング テーブルには、次の 3 つのグループがあります。
- ローカル VNet ルート: 同じ仮想ネットワーク内の宛先 VM に直接ルーティングします。
- オンプレミス ルート: Azure VPN ゲートウェイにルーティングします。
- 既定のルート: インターネットに直接ルーティングします。 前の 2 つのルートが網羅していないプライベート IP アドレスへ送信されるパケットは削除されます。
強制トンネリングを構成するには、次のことを行う必要があります。
- ルーティング テーブルを作成します。
- VPN Gateway へのユーザー定義の既定のルートを追加します。
- ルーティング テーブルを適切な VNet サブネットに関連付けます。
強制トンネリングは、ルートベースの VPN ゲートウェイを持つ VNet に関連付ける必要があります。
- 仮想ネットワークに接続されるクロスプレミスのローカル サイト間に、既定サイト接続を設定する必要があります。
- オンプレミス VPN デバイスを、トラフィック セレクターとして 0.0.0.0/0 を使用して構成する必要があります。
強制トンネリングを使用すると、Azure の VM とクラウド サービスからのインターネット アクセスを制限および検査できます。
Azure ルート サーバーを構成する
Azure Route Server を使用すると、ネットワーク仮想アプライアンス (NVA) と仮想ネットワークの間の動的ルーティングが簡単になります。 Azure Route Server は高可用性を使用して構成されたフル マネージド サービスです。
Azure Route Server を使用すると、仮想ネットワークでの NVA の構成、管理、デプロイが簡単になります。
仮想ネットワーク アドレスが更新されるたびに、NVA のルーティング テーブルを手動で更新する必要がなくなりました。
NVA により新しいルートがアナウンスされたり、古いルートが取り消されたりするたびに、ユーザー定義のルートを手動で更新する必要がなくなりました。
NVA の複数のインスタンスを Azure Route Server にピアリングすることができます。
NVA と Azure Route Server 間のインターフェイスは、共通の標準プロトコルに基づいています。 NVA で BGP がサポートされている限り、Azure Route Server とピアリングすることができます。
Azure Route Server は、新規または既存の仮想ネットワークのいずれかにデプロイできます。
Azure Route Server をデプロイする方法について説明します
ルーティングに関する問題を診断する
Azure 仮想ネットワーク内の特定の仮想マシン (VM) に接続しようとすると、常に失敗するものとします。 ルーティングに関する問題は、VM のネットワーク インターフェイスで有効になっているルートを確認することによって診断できます。
各ネットワーク インターフェイスで有効なルートは、Azure portal、Azure PowerShell、または Azure CLI を使用して表示できます。 以下の手順では、各方法の例を示します。 いずれの場合も、出力は VM が実行中状態の場合にのみ返されます。 複数のネットワーク インターフェイスが VM に接続されている場合は、各ネットワーク インターフェイスに対して有効なルートを確認できます。 各ネットワーク インターフェイスは異なるサブネットに存在できるので、ネットワーク インターフェイスはそれぞれ異なる有効なルートを持つことができます。
Azure portal で有効なルートを表示する
必要なアクセス許可を持つアカウントで Azure portal にログインします。
検索ボックスに、調べたい VM の名前を入力します。
検索結果から VM を選択します。
[設定] で [ネットワーク] を選択し、名前を選択してネットワーク インターフェイス リソースに移動します。
[サポートとトラブルシューティング] で、[有効なルート] を選択します。 次の画像では、myVMNic1 という名前のネットワーク インターフェイスの有効なルートが示されています。
Azure PowerShell を使用して有効なルートを表示する
ネットワーク インターフェイスの有効なルートを表示するには、Get-AzEffectiveRouteTable コマンドを使用します。 次の例では、myResourceGroup というリソース グループにある myVMNic1 というネットワーク インターフェイスの有効なルートを取得します。
Get-AzEffectiveRouteTable `
-NetworkInterfaceName myVMNic1 `
-ResourceGroupName myResourceGroup `
ルーティングの問題を解決する
ルーティングの問題を解決するための手順には、次のことを行う場合があります。
- カスタム ルートを追加して、既定のルートをオーバーライドします。 カスタム ルートの追加方法をご確認ください。
- トラフィックが不適切な場所にルーティングされる原因になっているカスタム ルートを変更または削除します。 カスタム ルートの変更または削除の方法をご確認ください。
- ルート テーブルが正しいサブネット (ネットワーク インターフェイスが含まれるもの) に関連付けられていることを確認します。 サブネットへのルート テーブルの関連付けの方法をご確認ください。
- Azure VPN ゲートウェイやネットワーク仮想アプライアンスなどのデバイスが意図したとおりに動作していることを確認します。
それぞれの質問に最も適した回答を選んでください。