Azure Route Serverで「特定の拠点ルートだけを受け入れたい」「バックアップ回線の経路優先度を下げたい」「大量のプレフィックスを集約したい」と考えても、BGPポリシーをNVAやオンプレミスルーター側だけで管理すると、設定箇所が分散しやすくなります。
2026年7月31日付のAzure Update 568631で、Azure Route ServerのRoute Mapsがパブリックプレビューとして発表されました。これにより、Azure Route Serverと同じ仮想ネットワークにあるNVA、ExpressRouteゲートウェイ、VPNゲートウェイとの接続に対し、受信・送信方向を分けてルートフィルタリング、ルート集約、AS-PATH変更、BGP Communityの追加などを設定できます。
構成の要点は、対象接続と方向を決める、Route Mapとルールを作る、接続へ適用する、適用前後のルートを検証するの4段階です。特に、InboundとOutboundの取り違え、EqualsとContainsの使い分け、ルール未一致時は許可される点に注意が必要です。
Azure Route Server Route Mapsとは
Azure Route Server Route Mapsは、Azure Route Serverが受信または送信するBGPルートに対して、条件判定とアクションを適用する機能です。
Route Mapは、次の接続に適用できます。
- Azure Route ServerとNVA間のBGPピアリング
- 同じ仮想ネットワーク内のExpressRouteゲートウェイ接続
- 同じ仮想ネットワーク内のVPNゲートウェイ接続
接続ごとにInboundとOutboundを分けて適用でき、各方向に適用できるRoute Mapは1つです。(Microsoft Learn)
InboundとOutboundの違い
InboundとOutboundは、Azure Route Serverから見た方向です。
| 適用方向 | 処理するルート | 主な用途 |
|---|---|---|
| Inbound | NVA、ExpressRouteゲートウェイ、VPNゲートウェイからAzure Route Serverが受信するルート | 不要ルートの受信拒否、受信ルートの集約、受信属性の変更 |
| Outbound | Azure Route ServerからNVAやゲートウェイへ送信するルート | 広告ルートの制限、AS-PATH prepend、Communityタグの追加 |
| InboundとOutboundの両方 | 受信時と送信時に別々のRoute Mapを適用 | 受信ポリシーと広告ポリシーを分離して管理 |
InboundでルートをDropすると、そのルートはAzure Route Serverに学習されず、仮想ネットワークやほかのゲートウェイへ伝播しません。一方、OutboundでDropした場合、Azure Route Server自身はルートを学習したまま、指定した接続先への広告だけを止めます。(Microsoft Learn)
また、Outbound Route MapはAzure Route Serverのベストパス選択後に処理されます。そのため、Outbound側でAS-PATHを変更しても、Azure Route Server自身が選択する経路は変わりません。受信側ルーターやNVAの経路選択を変えたい場合に使用します。(Microsoft Learn)
Route Mapで設定できる条件とアクション
Route Mapは、上から順番に評価される複数のルールで構成します。それぞれのルールには、Match conditions、Action、Next stepを設定します。
Match conditionsで指定できる条件
| Property | Criterion | 判定内容 |
|---|---|---|
| RoutePrefix | Equals | 指定したプレフィックスと完全一致するルート |
| RoutePrefix | Contains | 指定したプレフィックスと、その配下にあるより具体的なルート |
| Community | Equals | 指定したCommunityをすべて持つルート |
| Community | Contains | 指定したCommunityのうち、1つ以上を持つルート |
| AsPath | Equals | 指定したASNが指定順で並ぶAS-PATH |
| AsPath | Contains | 指定したASNのうち、1つ以上を含むAS-PATH |
たとえば、RoutePrefix / Contains / 10.122.0.0/16は、10.122.0.0/16だけでなく、10.122.1.0/24や10.122.200.0/24なども対象にします。特定の1ルートだけを処理したい場合は、原則としてEqualsを選びます。(Microsoft Learn)
1つのルールに複数の条件を設定した場合は、すべての条件を満たしたルートだけが一致します。プレフィックスとCommunityを指定した場合、どちらか一方ではなく両方に一致する必要があります。(Microsoft Learn)
設定できるアクション
| 対象 | アクション | 用途 |
|---|---|---|
| ルート全体 | Drop | 一致したルートを拒否する |
| RoutePrefix | Replace | 複数のルートを集約プレフィックスに置き換える |
| AsPath | Add | AS-PATHの先頭へASNを追加する |
| AsPath | Replace | AS-PATHを指定したASN列へ置き換える |
| Community | Add | 既存Communityを残して値を追加する |
| Community | Replace | Communityを指定値へ置き換える |
| Community | Remove | 指定したCommunityだけを削除する |
AS-PATHまたはCommunityで、値を指定せずにReplaceすると、対象属性をすべて削除できます。ただし、Azureが使用する予約済みCommunityや、経路制御に必要な属性を誤って除去しないよう注意が必要です。(Microsoft Learn)
ContinueとTerminateの使い分け
Next stepでは、一致したルートを次のルールでも評価するかを決めます。
Continue:一致後も後続ルールを評価するTerminate:一致した時点でRoute Mapの評価を終了する
複数のルールで同じルートへ属性を追加したい場合はContinueを使います。Dropルールや、後続ルールによる再変更を避けたいルールではTerminateが適しています。
ルールに一致しなかったルートは、次のルールへ進みます。どのルールにも一致しなかった場合の既定動作は許可です。暗黙的な拒否ではありません。許可リスト方式にする場合は、末尾に全ルートを対象とするDropルールを設けるなど、拒否条件を明示的に設計する必要があります。(Microsoft Learn)
さらに、Match conditionsを設定していないルールは、適用対象接続のすべてのルートに一致します。意図せず全経路をDropまたは変更しないよう、保存前に条件欄を確認してください。(Microsoft Learn)
Azure Route Server Route Mapsの構成前に確認すること
Route Mapを作り始める前に、現在のルーティングと変更目的を整理します。
必要な構成
Azure portalから構成する場合は、次の環境が必要です。
- Azure Route Serverが仮想ネットワークにデプロイされている
- NVAとのBGPピアリング、ExpressRouteゲートウェイ、VPNゲートウェイのいずれかが同じ仮想ネットワークにある
- Azure Route Serverが対象ルートを正常に学習または広告している
PowerShellを使用する場合は、Azure Cloud ShellまたはAzure PowerShellに加え、Az.Networkモジュール8.0.0以降が必要です。(Microsoft Learn)
変更前のルートを記録する
Route Map適用前に、Azure Route ServerのEffective Routesで次の情報を記録します。
- 対象プレフィックス
- Next hop
- 学習元の接続
- 現在のAS-PATH
- 現在のBGP Community
- 同じ宛先に対する代替経路
変更前の状態がなければ、Route Mapが効いていないのか、もともと対象ルートが存在しなかったのかを判断できません。Microsoftも、Route Map作成前後にEffective Routesを確認する手順を案内しています。(Microsoft Learn)
初回作成時は約30分のアップグレードが行われる
Azure Route Serverで初めてRoute Mapを作成すると、Route Serverに対して一度だけアップグレードが行われます。公式ドキュメントでは、この処理に約30分かかるとされています。以後のRoute Map操作では、同じ初回アップグレードは発生しません。(Microsoft Learn)
本番環境では、初回作成を業務ピーク時間に実施するのではなく、検証時間と切り戻し時間を確保したメンテナンス枠で行うのが安全です。
Route Mapsには追加料金が発生する
Route Mapsは無料の設定機能ではありません。Azure Route Serverの料金ページでは、Route MapsをデプロイしたRoute Serverや、Route Mapを適用したNVA、VPN、ExpressRoute接続に関連する時間単位の料金項目が案内されています。実際の金額はリージョンや契約通貨によって異なるため、適用する接続数を含めて事前に見積もる必要があります。(Microsoft Azure)
Azure portalでRoute Mapsを構成する手順
Route Mapを作成する
- Azure portalで対象のAzure Route Serverを開きます。
- 左側メニューの
Settingsからroute mapsを選択します。 + Add Route Mapを選択します。- Route Mapの名前を入力します。
+ Add ruleを選択します。- ルール名を入力します。
Next stepでContinueまたはTerminateを選択します。Match conditionsにProperty、Criterion、Valueを設定します。Action on matched routesでDropまたはModifyを選択します。Modifyを選んだ場合は、Route modificationsに変更内容を入力します。Addを選択してルールを追加します。- 必要に応じて複数のルールを作成します。
- ルールをドラッグして評価順を並べ替えます。
Saveを選択してRoute Map全体を保存します。
ルール編集画面のAddだけでは、Route Map自体には保存されません。ルール一覧へ戻った後、Route Map画面側でもSaveを実行する必要があります。保存が完了すると、Provisioning stateがSucceededになります。(Microsoft Learn)
BGPピアリングやゲートウェイ接続へ適用する
Route Mapを作っただけでは、ルーティングには反映されません。
- Azure Route Serverの
route maps画面を開きます。 Apply route mapsを選択します。Inbound Route MapまたはOutbound Route Mapを選択します。- 画面下部から適用対象のBGPピアリングまたはゲートウェイ接続を選択します。
Saveを選択します。- 再度
Apply route mapsを開き、対象接続と方向を確認します。
同じRoute Mapを複数の接続へ適用できますが、接続ごと、方向ごとに適用できるRoute Mapは1つです。複数のポリシーが必要な場合は、複数ルールを1つのRoute Mapへまとめます。(Microsoft Learn)
受信した不要ルートをDropする構成例
NVAから次のルートが広告されているとします。
10.122.1.0/2410.122.2.0/2410.122.3.0/2410.100.0.0/16
このうち、10.122.0.0/16配下のルートだけをAzureへ取り込みたくない場合は、次のルールを作成します。
| 項目 | 設定値 |
|---|---|
| Route Map名 | rm-in-drop-branch122 |
| ルール名 | drop-10-122-more-specifics |
| Next step | Terminate |
| Property | RoutePrefix |
| Criterion | Contains |
| Value | 10.122.0.0/16 |
| Action on matched routes | Drop |
| 適用方向 | Inbound |
| 適用先 | 対象NVAのBGPピアリング |
適用後、Azure Route Serverは10.122.1.0/24、10.122.2.0/24、10.122.3.0/24を学習しなくなります。一方、10.100.0.0/16は条件に一致しないため、そのまま学習されます。(Microsoft Learn)
Dropしても、送信元NVAのルーティングテーブルから経路が削除されるわけではありません。NVAは引き続き経路を広告しますが、Azure Route Server側で受け入れない状態になります。(Microsoft Learn)
ルート集約を設定する構成例
複数の細かいルートを1つにまとめたい場合は、RoutePrefixのReplaceを使用します。
たとえば、次の3ルートを広告しているとします。
10.2.1.0/2410.2.2.0/2410.2.3.0/24
これらを10.2.0.0/16として広告する構成例は次のとおりです。
| 項目 | 設定値 |
|---|---|
| Route Map名 | rm-out-summary-10-2 |
| Property | RoutePrefix |
| Criterion | Contains |
| Value | 10.2.0.0/16 |
| Action on matched routes | Modify |
| Route modification Property | RoutePrefix |
| Route modification Action | Replace |
| Route modification Value | 10.2.0.0/16 |
| 適用方向 | 集約後のルートを送信したい場合はOutbound |
Route Mapsのルート集約は、ルート数の削減に利用できます。ただし、集約されたルートからはAS-PATHとBGP Communityが取り除かれます。属性を利用した経路制御を後段で行う場合は、集約後に必要なCommunityを追加するなど、ルール順を含めた再設計が必要です。(Microsoft Learn)
また、10.2.0.0/16を広告すると、実際には存在しない10.2.100.0/24なども集約ルートの到達範囲に含まれます。集約範囲全体を正しく転送できない構成では、通信のブラックホールが発生する可能性があります。単にルート数を減らすのではなく、集約プレフィックス全体の到達性を確認してください。
Route Mapsはルート集約には使用できますが、元のルートより具体的なプレフィックスを新しく作る用途には対応していません。(Microsoft Learn)
AS-PATHを追加してバックアップ経路にする構成例
AS-PATH prependは、同じ宛先に複数の経路がある場合に、受信側BGPルーターから見た経路の優先度を下げるために使います。
たとえば、10.0.0.0/16のAS-PATHが次の状態だとします。
| 状態 | AS-PATH |
|---|---|
| 変更前 | 65515 |
| 変更後 | 64511 65515 |
一般的なBGP経路選択では、AS-PATHが短い経路が優先されます。そのため、バックアップ側接続への広告にASNを追加すると、受信側ルーターは短いAS-PATHを持つ別経路を優先しやすくなります。(Microsoft Learn)
設定例は次のとおりです。
| 項目 | 設定値 |
|---|---|
| Route Map名 | rm-out-prepend-backup |
| Property | RoutePrefix |
| Criterion | Equals |
| Value | 10.0.0.0/16 |
| Action on matched routes | Modify |
| Route modification Property | AsPath |
| Route modification Action | Add |
| Route modification Value | 64511 |
| 適用方向 | Outbound |
| 適用先 | バックアップとして扱いたい接続 |
複数のASNはカンマ区切りで入力できます。たとえば、64511,64510,64511と入力すると、その順番でAS-PATHの先頭へ追加されます。同じASNを複数回追加して、さらに経路を長くすることもできます。(Microsoft Learn)
64511はMicrosoft Learnの構成例に合わせたサンプル値です。実環境では、組織のBGP設計と接続先事業者のポリシーに合うASNを使用してください。
Route Mapsが対応するのは2バイトASNです。また、Azureが予約している次のASNはAS-PATH prependに使用できません。
- Public ASN:
8074、8075、12076 - Private ASN:
65515、65517、65518、65519、65520
公式の制限事項では、AS-PATH prependにPrivate ASNを使用しないよう案内されています。特にExpressRouteを経由するルートでは、MSEEによってPrivate ASNが取り除かれる可能性があります。(Microsoft Learn)
BGP Communityでルートをタグ付けする構成例
BGP Communityは、ルートへ付与するタグです。Communityを受信したNVA、SD-WAN機器、オンプレミスルーターは、その値に応じてLocal Preferenceの変更、フィルタリング、経路分類などを実行できます。(Microsoft Learn)
たとえば、10.20.0.0/16配下を本番環境のルートとして分類する場合、次のように設定できます。
| 項目 | 設定値 |
|---|---|
| Route Map名 | rm-out-tag-production |
| Property | RoutePrefix |
| Criterion | Contains |
| Value | 10.20.0.0/16 |
| Action on matched routes | Modify |
| Route modification Property | Community |
| Route modification Action | Add |
| Route modification Value | 65000:100 |
| 適用方向 | Outbound |
Communityの値は、接続先と事前に意味を共有します。
| Community例 | 組織内での意味 |
|---|---|
65000:100 | 本番環境 |
65000:200 | 開発環境 |
65000:300 | 災害対策環境 |
Communityを付けるだけでは、トラフィックの経路は変わりません。受信側ルーターやNVAに、該当Communityを検出したときのポリシーが必要です。また、受信側ネットワークの設定によっては、Communityが維持、変更、削除されることがあります。(Microsoft Learn)
Azureが使用する次のBGP Communityは、Route Mapで削除しないようMicrosoftが案内しています。
65517:12001, 65517:12002, 65517:12003, 65517:12005, 65517:12006, 65518:65518, 65517:65517, 65517:12076, 65518:12076, 65515:10000, 65515:20000
PowerShellでRoute Mapを作成する方法
PowerShellでは、Match condition、Action、Rule、Route Mapの順にオブジェクトを作成します。
次の例は、10.0.0.0/16のAS-PATHへ64511を追加し、指定した接続のOutboundへ適用する構成です。
$resourceGroupName = "rg-network-prod"
$routeServerName = "ars-hub-japaneast"
$routeMapName = "rm-out-prepend-backup"
# NVAのBGPピアリングまたはゲートウェイ接続のリソースID
$connectionResourceId = "<connection-resource-id>"
# 10.0.0.0/16に完全一致するルートを対象にする
$criterion = New-AzRouteMapRuleCriterion `
-MatchCondition "Equals" `
-RoutePrefix @("10.0.0.0/16")
# AS-PATHへ64511を追加する
$actionParameter = New-AzRouteMapRuleActionParameter `
-AsPath @("64511")
$action = New-AzRouteMapRuleAction `
-Type "Add" `
-Parameter @($actionParameter)
# 一致後は後続ルールを評価しない
$rule = New-AzRouteMapRule `
-Name "prepend-10-0-0-0-16" `
-MatchCriteria @($criterion) `
-RouteMapRuleAction @($action) `
-NextStepIfMatched "Terminate"
# Route Mapを作成し、Outbound接続へ適用する
New-AzRouteMap `
-ResourceGroupName $resourceGroupName `
-VirtualHubName $routeServerName `
-Name $routeMapName `
-RouteMapRule @($rule) `
-OutboundConnection @($connectionResourceId)
# 作成結果を確認する
Get-AzRouteMap `
-ResourceGroupName $resourceGroupName `
-VirtualHubName $routeServerName `
-Name $routeMapName
Azure Route Serverは内部的にVirtual Hub APIを使用するため、New-AzRouteMapの-VirtualHubNameにはVirtual WAN Hub名ではなく、対象のAzure Route Server名を指定します。この点はPowerShell構成で間違えやすい部分です。(Microsoft Learn)
既存のRoute Mapを更新する場合はUpdate-AzRouteMap、削除する場合はRemove-AzRouteMapを使用します。(Microsoft Learn)
Route Map適用後の確認方法
Route Mapは、Provisioning stateがSucceededになっただけでは十分ではありません。コントロールプレーンと実際の通信の両方を確認します。
| 確認項目 | 確認場所 | 確認内容 |
|---|---|---|
| 適用状態 | Apply route maps | 正しい接続と方向にRoute Mapが表示されているか |
| 学習ルート | Effective Routes | Drop、集約、AS-PATH変更が反映されているか |
| ルール処理 | Route Map dashboard | 対象ルートが意図したルールに一致しているか |
| 広告結果 | 接続先NVAやオンプレミスルーター | 受信プレフィックス、AS-PATH、Communityが期待どおりか |
| 実通信 | 対象ワークロード | 疎通、フェイルオーバー、戻り通信に問題がないか |
Route Map dashboardでは、ルート、AS-PATH、BGP Communityを確認できます。AS-PATH prependやCommunity追加は、Azure側の表示だけでなく、最終的な受信側BGPピアでも確認してください。(Microsoft Learn)
問題が発生した場合は、Apply route mapsを開き、対象接続のInbound Route MapまたはOutbound Route MapをNoneに変更して保存すると、Route Mapを接続から外せます。Route Map自体を削除する前に適用解除すれば、設定を残したまま切り戻しと再検証ができます。(Microsoft Learn)
Route Mapsで失敗しやすいポイント
| 症状 | 主な原因 | 確認方法 |
|---|---|---|
| ルートが変化しない | 適用方向が逆 | 受信制御はInbound、接続先への広告制御はOutboundか確認する |
| 初回作成後すぐ反映されない | 初回アップグレード中 | Provisioning stateを確認する |
| 想定より多くのルートが対象になる | Containsの範囲が広すぎる | Equalsへ変更できないか検討する |
| 全ルートが変更された | Match conditionsが空 | 条件未設定のルールがないか確認する |
| AS-PATHが変わらない | 予約済みASN、接続先での属性除去 | ASNと受信側BGPテーブルを確認する |
| 集約されない | RoutePrefixのアクションがReplaceになっていない | Match条件とRoute modificationを確認する |
| Communityが見えない | 接続先で削除されている | Route Map dashboardと受信側の両方を比較する |
| Route MapがFailedになる | 無効な値、予約属性の操作 | ルールを見直し、失敗したRoute Mapを再作成する |
Microsoftのトラブルシューティングでも、方向の取り違え、EqualsとContainsの誤選択、条件なしルール、予約済みASN、初回アップグレードが代表的な確認点として挙げられています。(Microsoft Learn)
構成前に把握しておきたい制限事項
Azure Route Server Route Mapsには、次の制限があります。
- パブリックプレビュー段階である
- 1接続につき、各方向へ適用できるRoute Mapは1つ
- Route Map未一致時の既定動作は許可
- Match conditions未設定のルールは全ルートに一致する
- ルート集約後はAS-PATHとBGP Communityが削除される
- AS-PATHで扱えるのは2バイトASN
- Azure予約済みASNをAS-PATH prependに使用できない
- Azure予約済みBGP Communityを削除しない
- Route Mapsで変更できるのは集約方向であり、より具体的なルートの作成には使えない
- Azure Route Serverが広告する仮想ネットワークのアドレス空間は、Route Mapsで変更またはフィルタリングできない
- 同じプレフィックスに対し、Route Mapsによる変更とNATを同時に適用できない
- デフォルトルートを変更できるのは、そのルートがオンプレミスまたはNVAから学習された場合
- ExpressRouteのMSEEへRoute Mapを直接適用することはできない
- Route Mapsの利用には追加料金が発生する
特に注意したいのは、仮想ネットワークのアドレス空間そのものをRoute Mapsで自由に隠せるわけではない点です。特定のスポークやサブネットへの通信経路を制御したい場合は、Route Mapsだけでなく、NVAのBGP設定、仮想ネットワークピアリング、UDRなどを含めて設計します。
Azure Virtual WAN Route-mapsとの違い
Azure Route Server Route MapsとAzure Virtual WAN Route-mapsは、名前とルール構造が似ていますが、適用対象が異なります。
| 項目 | Azure Route Server Route Maps | Azure Virtual WAN Route-maps |
|---|---|---|
| 中心となるリソース | Azure Route Server | Virtual WAN Virtual Hub |
| 主な適用先 | NVAとのBGPピアリング、ExpressRouteゲートウェイ、VPNゲートウェイ | ExpressRoute、S2S VPN、P2S VPN、VNet接続 |
| 構成場所 | Azure Route Serverのroute maps | Virtual HubのRoute-maps |
| VNet接続への直接適用 | 対応しない | 対応する |
| 利用目的 | 通常のVNet内に配置したRoute ServerのBGP制御 | Virtual WAN Hubを中心とした接続制御 |
Virtual WAN向けの手順をそのままAzure Route Serverへ適用すると、ポータル上の場所や選択できる接続が一致しません。検索時には、Microsoft Learnのページ名に「for Azure Route Server」と書かれているかを確認してください。(Microsoft Learn)
Route MapsはUDRの代わりになるのか
Route Mapsは、Azure Route Serverが交換するBGPルートの広告、フィルタリング、属性変更を行う機能です。UDRは、Azureサブネットに関連付けたルートテーブルで、宛先プレフィックスと次ホップを明示的に指定する機能です。
そのため、両者は単純な代替関係ではありません。
- BGPで学習・広告する経路を整理する:Route Maps
- 特定サブネットからの通信先と次ホップを固定する:UDR
- NVAを経由させながら動的経路交換も使う:Route Maps、BGP、UDRを組み合わせて設計
Azureでは、システムルート、BGPルート、カスタムルートが同じルーティング環境で扱われます。Route Mapsの適用後はAzure Route Serverだけを見るのではなく、対象VMのNICに表示される有効なルートも確認することが重要です。(Microsoft Learn)
まずは1接続・1方向・1ルールから検証する
Azure Route Server Route Mapsは、NVAやオンプレミス側の設定を変更せずにAzure側でBGPルートを制御できる便利な機能です。一方、1つのルールミスが多数のルートへ影響する可能性があります。
最初の導入では、次の順番が安全です。
- Effective Routesで変更前の状態を記録する
- 影響の小さいテスト接続を選ぶ
ContainsではなくEqualsで対象を限定する- InboundまたはOutboundの片方向だけに適用する
- Route Map dashboardと接続先BGPテーブルを比較する
- 実通信とフェイルオーバーを確認する
- 問題がなければ対象プレフィックスや接続を段階的に広げる
ルート集約、AS-PATH、Communityを最初から1つの複雑なRoute Mapへ詰め込むのではなく、まずはDropやAS-PATH追加など、結果を確認しやすい単一目的のルールから始めると、障害時の原因特定と切り戻しが容易になります。

コメント