ユーザー定義ルート (UDR) を計画して実装する

完了

Azure でカスタムまたはユーザー定義 (静的) のルートを作成して、Azure の既定のシステム ルートをオーバーライドしたり、サブネットのルート テーブルにさらにルートを追加したりできます。 Azure では、ルート テーブルを作成し、0 個以上の仮想ネットワーク サブネットに関連付けます。 各サブネットには、0 個または 1 個のルート テーブルを関連付けることができます。 ルート テーブルに追加できるルートの最大数と、Azure サブスクリプションごとに作成できるユーザー定義ルート テーブルの最大数については、Azure の制限に関する記事をご覧ください。 ルート テーブルを作成してサブネットに関連付けると、そのテーブルのルートがサブネットの既定のルートと結合されます。 ルートの割り当てが競合している場合は、ユーザー定義ルートで既定のルートがオーバーライドされます。

ユーザー定義ルートを作成するときは、次のネクストホップの種類を指定できます。

  • 仮想アプライアンス:仮想アプライアンスとは、一般にネットワーク アプリケーション (ファイアウォールなど) が実行されている仮想マシンです。 仮想ネットワークにデプロイできる事前構成された各種ネットワーク仮想アプライアンスについては、Azure Marketplace のページをご覧ください。 ホップの種類が仮想アプライアンスのルートを作成するときは、次ホップの IP アドレスも指定します。 IP アドレスには、次のアドレスを指定できます。

    • 仮想マシンに接続されたネットワーク インターフェイスのプライベート IP アドレス。 自身のアドレス以外のアドレスにネットワーク トラフィックを転送する、仮想マシンに接続されたネットワーク インターフェイスでは、Azure の [Enable IP forwarding](IP 転送を有効にする) オプションが有効になっている必要があります。 この設定により、Azure によるネットワーク インターフェイスの送信元と送信先のチェックが無効になります。 ネットワーク インターフェイスの IP 転送を有効にする方法の詳細については、こちらをご覧ください。 [Enable IP forwarding](IP 転送を有効にする) は Azure の設定ですが、Azure のネットワーク インターフェイスに割り当てられたプライベート IP アドレス間でアプライアンスがトラフィックを転送するために、仮想マシンのオペレーティング システム内でも IP 転送を有効にすることが必要な場合があります。 アプライアンスがトラフィックをパブリック IP アドレスにルーティングする必要がある場合は、トラフィックをプロキシ経由にするか、ソースのプライベート IP アドレスから独自のプライベート IP アドレスにネットワーク アドレス変換 (NAT) を実行する必要があります。 その後、Azure では、トラフィックをインターネットに送信する前に、パブリック IP アドレスに NAT が実行されます。 仮想マシン内で必要な設定を確認するには、オペレーティング システムまたはネットワーク アプリケーションのドキュメントをご覧ください。 Azure での送信接続については、送信用接続の詳細に関するページを参照してください。
    • Azure 内部ロード バランサーのプライベート IP アドレス。 多くの場合、ロード バランサーは、ネットワーク仮想アプライアンスの高可用性戦略の一環として使用されます。

アドレス プレフィックスが 0.0.0.0/0 で、仮想アプライアンスがネクスト ホップの種類のルートを定義することができます。 この構成により、アプライアンスがトラフィックを検査し、トラフィックを転送するか破棄するかを判断できるようになります。 アドレス プレフィックス 0.0.0.0/0 を含むユーザー定義ルートを作成する場合は、まず「アドレス プレフィックス 0.0.0.0/0」をお読みください。

  • [仮想ネットワーク ゲートウェイ] :特定のアドレス プレフィックス宛てのトラフィックを仮想ネットワーク ゲートウェイにルーティングする場合に指定します。 種類が VPN の仮想ネットワーク ゲートウェイを作成する必要があります。 ExpressRoute ではカスタム ルートに BGP を使用する必要があるため、種類を ExpressRoute として作成された仮想ネットワーク ゲートウェイをユーザー定義ルートで指定することはできません。 VPN 接続と ExpressRoute 接続が共存している場合、仮想ネットワーク ゲートウェイは指定できません。 アドレス プレフィックス 0.0.0.0/0 宛てのトラフィックをルートベースの仮想ネットワーク ゲートウェイに送信するルートを定義できます。 オンプレミスで、トラフィックを検査し、トラフィックを転送するか破棄するかを判断するデバイスを使用している場合もあります。 アドレス プレフィックスが 0.0.0.0/0 のユーザー定義ルートを作成する場合は、まず「アドレス プレフィックス 0.0.0.0/0」をお読みください。 VPN 仮想ネットワーク ゲートウェイで BGP を有効にしている場合は、アドレス プレフィックスが 0.0.0.0/0 のユーザー定義ルートを構成する代わりに、プレフィックス 0.0.0.0/0 を含むルートを BGP 経由でアドバタイズできます。
  • なし: アドレス プレフィックスへのトラフィックを宛先に転送するのではなく破棄する場合に指定します。 機能を完全には構成していない場合、一部のオプションのシステム ルートに "なし" と表示されることがあります。 たとえば、ネクストホップの種類 が "仮想ネットワーク ゲートウェイ" または "仮想アプライアンス" であり、ネクストホップの IP アドレスに "なし" と表示されている場合、デバイスが実行されていないか、完全には構成されていないことが原因である可能性があります。 Azure では、予約済みアドレス プレフィクスの既定のシステム ルート は、ネクストホップの種類が なし で作成されます。
  • 仮想ネットワーク: [仮想ネットワーク] オプションは、仮想ネットワーク内の既定のルーティングをオーバーライドする場合に指定します。
  • インターネット: [インターネット] オプションは、あるアドレス プレフィックス宛てのトラフィックをインターネットに明示的にルーティングする場合、またはパブリック IP アドレスを持つ Azure サービスを宛先とするトラフィックを Azure バックボーン ネットワーク内に維持する場合に指定します。 ホップの種類を仮想ネットワークとしてルートを作成する理由の例については、「ルーティングの例」を参照してください。

ユーザー定義ルートでは、ネクスト ホップの種類として仮想ネットワーク ピアリングまたは VirtualNetworkServiceEndpoint を指定できません。 ネクスト ホップの種類が仮想ネットワーク ピアリングまたは VirtualNetworkServiceEndpoint のルートは、仮想ネットワーク ピアリングまたはサービス エンドポイントを構成したときに、Azure によってのみ作成されます。

ユーザー定義ルートのサービス タグ

明示的な IP 範囲の代わりに、ユーザー定義ルートのアドレス プレフィックスとしてサービス タグを指定できるようになりました。 サービス タグは、指定された Azure サービスからの IP アドレス プレフィックスのグループを表します。 サービス タグに含まれるアドレス プレフィックスの管理は Microsoft が行い、アドレスが変化するとサービス タグは自動的に更新されます。 これにより、ユーザー定義ルートが頻繁に更新されるという複雑さが最小化され、作成が必要なルートの数が削減されます。 現在、各ルート テーブルで、サービス タグを含む 25 個以下のルートを作成できます。 このリリースでは、コンテナーのルーティング シナリオでのサービス タグの使用もサポートされています。

完全一致

明示的な IP プレフィックスを持つルートとサービス タグを持つルートの間で完全にプレフィックスが一致する場合は、システムにより、明示的なプレフィックスを持つルートが優先されます。 サービス タグを持つ複数のルートが IP プレフィックスに一致する場合、ルートは次の順序で評価されます。

  1. リージョン タグ (例: Storage.EastUS、AppService.AustraliaCentral)
  2. トップ レベル タグ (例: Storage、AppService)
  3. AzureCloud リージョン タグ (例: AzureCloud.canadacentral、AzureCloud.eastasia)
  4. AzureCloud タグ

この機能を使用するには、route table コマンドの address prefix パラメーターにサービス タグ名を指定します。 たとえば、PowerShell では、次を使用して、Azure Storage IP プレフィックスに送信されたトラフィックを仮想アプライアンスに転送する新しいルートを作成できます。

Azure PowerShell

$param = @{ Name = 'StorageRoute' AddressPrefix = 'Storage' NextHopType = 'VirtualAppliance' NextHopIpAddress = '10.0.100.4' } New-AzRouteConfig @param







CLI の同じコマンドは次のとおりです。

Azure CLI

az network route-table route create \ --resource-group MyResourceGroup \ --route-table-name MyRouteTable \ --name StorageRoute \ --address-prefix Storage \ --next-hop-type VirtualAppliance \ --next-hop-ip-address 10.0.100.4