ルート フィルターを使用すると、Microsoft ピアリングを介してサポートされているサービスの一部を利用できます。 この記事では、ExpressRoute 回線のルート フィルターの構成と管理について説明します。
Exchange Online、SharePoint Online、Skype for Business などの Microsoft 365 サービスに、Microsoft ピアリングを介してアクセスできます。 ExpressRoute 回線に Microsoft ピアリングを構成すると、これらのサービスに関連したすべてのプレフィックスが、BGP セッションを介してアドバタイズされます。 各プレフィックスには、提供されるサービスを識別するための BGP コミュニティ値があります。 BGP コミュニティ値とそれに対応するサービスの一覧については、BGP コミュニティに関するページを参照してください。
すべての Azure および Microsoft 365 サービスに接続すると、BGP を介して多数のプレフィックスがアドバタイズされ、ルート テーブルのサイズが大幅に増加する可能性があります。 Microsoft ピアリングを介して提供されるサービスの一部のみを必要とする場合、次の方法でルート テーブルのサイズを小さくすることができます。
- BGP コミュニティでルート フィルターを使用して不要なプレフィックスを除外する (一般的なネットワーク手法)。
- ルート フィルターを定義して、ExpressRoute 回線に適用する。 ルート フィルターは、Microsoft ピアリングを介して利用する予定のサービスを選択できるリソースです。 ExpressRoute ルーターから、ルート フィルターで識別されたサービスのプレフィックスのみが送信されます。
ルート フィルターについて
ExpressRoute 回線に Microsoft ピアリングが構成されると、Microsoft エッジ ルーターにより、接続プロバイダーを介してエッジ ルーターとの BGP セッションが確立されます。 ルート フィルターを関連付けるまで、ルートはネットワークにアドバタイズされません。
ルート フィルターを使用すると、ExpressRoute 回線の Microsoft ピアリングを介して使用するサービスを指定できます。 BGP コミュニティ値の許可リストとして機能します。 ルート フィルターを定義し、ExpressRoute 回線にアタッチすると、BGP コミュニティ値にマップされたすべてのプレフィックスがネットワークにアドバタイズされます。
ルート フィルターを Microsoft 365 サービスにアタッチするには、ExpressRoute 経由で Microsoft 365 サービスを使用することを認可されている必要があります。 認可されていない場合、ルート フィルターをアタッチする操作は失敗します。 承認プロセスの詳細については、Microsoft 365 向け Azure ExpressRouteに関する記事を参照してください。
重要
2017 年 8 月 1 日より前に構成された ExpressRoute 回線の Microsoft ピアリングでは、ルート フィルターがなくても、すべての Microsoft Office サービスのプレフィックスが Microsoft ピアリングを介してアドバタイズされます。 2017 年 8 月 1 日以降に構成された回線の場合、ルート フィルターが回路にアタッチされるまで、プレフィックスはアドバタイズされません。
前提条件
構成を開始する前に、「前提条件」と「ワークフロー」をレビューします。
- Microsoft ピアリングが構成されたアクティブな ExpressRoute 回線があることを確認します。 手順については、以下を参照してください。
- Microsoft ピアリングがプロビジョニングされたアクティブな ExpressRoute 回線を用意する。 その作業は、次の手順に従って実行できます。
- あらかじめ ExpressRoute 回線を作成し、接続プロバイダー経由で回線を有効にしておきます。 ExpressRoute 回線がプロビジョニングされて有効な状態になっている必要があります。
- BGP セッションを直接管理する場合は、Microsoft ピアリングを作成します。 または、ご利用の回線に対する Microsoft ピアリングのプロビジョニングを接続プロバイダーに依頼します。
Azure Cloud Shell
Azure は、ブラウザーから使用できる対話型シェル環境である Azure Cloud Shell をホストします。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 Cloud Shell にプレインストールされているコマンドを使用すると、ローカル環境に何もインストールしなくても、この記事のコードを実行できます。
Azure Cloud Shell を起動するには:
選択肢 |
例とリンク |
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。
[使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 |
|
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 |
|
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
|
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を起動します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows および Linux では Ctrl+Shift+V を選択し、macOS では Cmd+Shift+V を選択して、コードまたはコマンドをクラウドシェルセッションに貼り付けます。
「を選択し、 を入力してコードまたはコマンドを実行します。」
- Azure アカウントにサインインしてサブスクリプションを選択する
Azure Cloud Shell を使用している場合は、[試してみる] をクリックすると、Azure アカウントに自動的にサインインします。 ローカルにサインインするには、昇格された特権で PowerShell コンソールを開き、コマンドレットを実行して接続します。
Connect-AzAccount
複数のサブスクリプションがある場合は、Azure サブスクリプションの一覧を取得します。
Get-AzSubscription
使用するサブスクリプションを指定します。
Select-AzSubscription -SubscriptionName "Name of subscription"
Microsoft ピアリング経由でサービスに正しく接続するためには、次の構成手順を完了する必要があります。
- Microsoft ピアリングがプロビジョニングされたアクティブな ExpressRoute 回線を用意する。 その作業は、次の手順に従って実行できます。
- あらかじめ ExpressRoute 回線を作成し、接続プロバイダー経由で回線を有効にしておきます。 ExpressRoute 回線がプロビジョニングされて有効な状態になっている必要があります。
- BGP セッションを直接管理する場合は、Microsoft ピアリングを作成します。 または、ご利用の回線に対する Microsoft ピアリングのプロビジョニングを接続プロバイダーに依頼します。
Azure Cloud Shell
Azure は、ブラウザーから使用できる対話型シェル環境である Azure Cloud Shell をホストします。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 Cloud Shell にプレインストールされているコマンドを使用すると、ローカル環境に何もインストールしなくても、この記事のコードを実行できます。
Azure Cloud Shell を起動するには:
選択肢 |
例とリンク |
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。
[使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 |
|
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 |
|
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
|
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を起動します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows および Linux では Ctrl+Shift+V を選択し、macOS では Cmd+Shift+V を選択して、コードまたはコマンドをクラウドシェルセッションに貼り付けます。
「を選択し、 を入力してコードまたはコマンドを実行します。」
CLI をローカルにインストールして使用する場合、このチュートリアルでは、Azure CLI バージョン 2.0.28 以降が必要です。 バージョンを確認するには、az --version
を実行します。 インストールまたはアップグレードが必要な場合は、Azure CLI のインストールに関するページを参照してください。
Azure アカウントにサインインしてサブスクリプションを選択する
構成を始めるには、Azure アカウントにサインインします。 "試してみる" を使用している場合は、自動的にサインインされ、サインイン手順をスキップできます。 接続については、次の例を参照してください。
az login
アカウントのサブスクリプションを確認します。
az account list
ExpressRoute 回線を作成するサブスクリプションを選択します。
az account set --subscription "<subscription ID>"
プレフィックスとBGPコミュニティ値の一覧を取得する
次のコマンドレットを使用して、BGP コミュニティ値と、Microsoft ピアリング経由でアクセス可能なサービスに関連付けられているプレフィックスとから成るリストを取得します。
Get-AzBgpServiceCommunity
次のコマンドレットを使用して、BGP コミュニティ値と、Microsoft ピアリング経由でアクセス可能なサービスに関連付けられているプレフィックスとから成るリストを取得します。
az network route-filter rule list-service-communities
使用する値の一覧を作成する
ルート フィルターで使用する BGP コミュニティ値 を一覧表示します。
ルート フィルターとフィルター ルールを作成する
ルート フィルターで作成できるルールは 1 つだけです。ルールの種類は Allow である必要があります。 このルールに、BGP コミュニティ値の一覧を含めることができます。
[リソースの作成] を選択し、"ルート フィルター" を検索します。
ルート フィルターをリソース グループに配置します。 場所は確実に ExpressRoute 回線と一致するようにします。
[確認および作成] 、 [作成] の順に選択します。
フィルター ルールを作成する
ルールを追加および更新するには、ルート フィルターの [ルールの管理] タブを選択します。
次に、ドロップダウン リストから接続先のサービスを選択し、ルールを保存します。
ルート フィルターに割り当てることができるルールは 1 つだけで、また Allow
タイプであることが必要です。 このルールに、一連の BGP コミュニティ値を関連付けることができます。
az network route-filter create
コマンドで作成されるのはルート フィルター リソースだけです。 このリソースを作成した後、自分でルールを作成し、ルート フィルター オブジェクトにアタッチする必要があります。
ルート フィルター リソースを作成するには、次のコマンドを実行します。
New-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup" -Location "West US"
ルート フィルター規則を作成するには、次のコマンドを実行します。
$rule = New-AzRouteFilterRuleConfig -Name "Allow-EXO-D365" -Access Allow -RouteFilterRuleType Community -CommunityList 12076:5010,12076:5040
次のコマンドを実行して、ルート フィルターにフィルター ルールを追加します。
$routefilter = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
$routefilter.Rules.Add($rule)
Set-AzRouteFilter -RouteFilter $routefilter
ルート フィルターに割り当てることができるルールは 1 つだけで、また "許可" タイプであることが必要です。 このルールに、一連の BGP コミュニティ値を関連付けることができます。
az network route-filter create
コマンドで作成されるのはルート フィルター リソースだけです。 このリソースを作成した後、自分でルールを作成し、ルート フィルター オブジェクトにアタッチする必要があります。
ルート フィルター リソースを作成するには、次のコマンドを実行します。
az network route-filter create -n MyRouteFilter -g MyResourceGroup
ルート フィルター規則を作成するには、次のコマンドを実行します。
az network route-filter rule create --filter-name MyRouteFilter -n CRM --communities 12076:5040 --access Allow -g MyResourceGroup
ルート フィルターを ExpressRoute 回線にアタッチする
[+ 回線の追加] ボタンを選択し、ドロップダウン リストから ExpressRoute 回線を選択して、ルート フィルターを回線にアタッチします。
接続プロバイダーが ExpressRoute 回線のピアリングを構成する場合は、[+ 回線の追加] ボタンを選択する前に ExpressRoute 回線ページから回線を更新します。
Microsoft ピアリングのみの場合は、次のコマンドを実行して、ルート フィルターを ExpressRoute 回線にアタッチします。
$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "MyResourceGroup"
$index = [array]::IndexOf(@($ckt.Peerings.PeeringType), "MicrosoftPeering")
$ckt.Peerings[$index].RouteFilter = $routefilter
Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
次のコマンドを実行して、ルート フィルターを ExpressRoute 回線にアタッチします。
az network express-route peering update --circuit-name MyCircuit -g ExpressRouteResourceGroupName --name MicrosoftPeering --route-filter MyRouteFilter
一般的なタスク
ルート フィルターのプロパティを取得するには
ポータルでリソースを開いて、ルート フィルターのプロパティを表示します。
ルート フィルターのプロパティを取得するには、次の手順を使用します。
次のコマンドを実行して、ルート フィルター リソースを取得します。
$routefilter = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
次のコマンドを実行して、ルート フィルター リソースに使用されているルート フィルター ルールを取得します。
$routefilter = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
$rule = $routefilter.Rules[0]
ルート フィルターのプロパティを取得するには、次のコマンドを使用します。
az network route-filter show -g ExpressRouteResourceGroupName --name MyRouteFilter
ルート フィルターのプロパティを更新するには
[ルールの管理] ボタンを選択して、回線にアタッチされている BGP コミュニティ値の一覧を更新します。
必要なサービス コミュニティを選択し、 [保存] を選択します。
既にルート フィルターが回線にアタッチされている場合、一連の BGP コミュニティ値が更新されると、プレフィックス アドバタイズの変更が、確立されている BGP セッションを通じて自動的に伝達されます。 ルート フィルターに対する一連の BGP コミュニティ値は、次のコマンドで更新できます。
$routefilter = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
$routefilter.rules[0].Communities = "12076:5030", "12076:5040"
Set-AzRouteFilter -RouteFilter $routefilter
既にルート フィルターが回線にアタッチされている場合、一連の BGP コミュニティ値が更新されると、プレフィックス アドバタイズの変更が、確立されている BGP セッションを通じて自動的に伝達されます。 ルート フィルターに対する一連の BGP コミュニティ値は、次のコマンドで更新できます。
az network route-filter rule update --filter-name MyRouteFilter -n CRM -g ExpressRouteResourceGroupName --add communities '12076:5040' --add communities '12076:5010'
ExpressRoute 回線からルート フィルターをデタッチするには
ルート フィルターから回線をデタッチするには、その回線を右クリックし、[関連付け解除] を選択します。
ExpressRoute 回線からルート フィルターをデタッチした後は、いずれのプレフィックスも BGP セッションを通じてアドバタイズされません。 ExpressRoute 回線からルート フィルターをデタッチするには、次のコマンドを使用します。
$ckt.Peerings[0].RouteFilter = $null
Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
ExpressRoute 回線からルート フィルターをデタッチした後は、いずれのプレフィックスも BGP セッションを通じてアドバタイズされません。 ExpressRoute 回線からルート フィルターをデタッチするには、次のコマンドを使用します。
az network express-route peering update --circuit-name MyCircuit -g ExpressRouteResourceGroupName --name MicrosoftPeering --remove routeFilter
リソースをクリーンアップする
ルート フィルターを削除するには、[削除] ボタンを選択します。 この操作を行う前に、ルート フィルターがどの回線にも関連付けられていないことを確認します。
削除できるのは、いずれの回線にもアタッチされていないルート フィルターだけです。 ルート フィルターの削除を試みる前に、それが回線にアタッチされていないことを確認してください。 ルート フィルターを削除するには、次のコマンドを使用します。
Remove-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
削除できるのは、いずれの回線にもアタッチされていないルート フィルターだけです。 ルート フィルターの削除を試みる前に、それが回線にアタッチされていないことを確認してください。 ルート フィルターを削除するには、次のコマンドを使用します。
az network route-filter delete -n MyRouteFilter -g MyResourceGroup
次のステップ
ルーター構成のサンプルについては、以下を参照してください。