この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
■はじめに
クラシックのVnetをExpressRouteに接続する方法と、接続を削除する方法について記載したいと思います。
実際に設定を行ってみて、クラシックのリソースの使用制限を理解していないことにより、エラーが多発したため、
その学びを”■クラシックリソースの制限事項”として記載しております。
本設定を行う際は、”■クラシックリソースの制限事項”と”■事前準備事項”を必須で確認・対応することをお勧めします。
■クラシックリソースの制限事項
制限①PowerShell上でクラシックのリソースを表示・操作するには、従来の管理者権限が必要である。
従来の管理者権限がないと、PowerShell上でクラシックのリソースを表示・操作することが出来ません。
そのため、事前に従来の管理者権限を持つ必要がございます。
制限②クラシックのVnetをExpressRouteに接続・接続削除する操作は、PowerShell上からしか行えない。
クラシックのVnetの接続・接続削除の操作は、ポータル上から行うことが出来ません。
そのため、PowerShell上から操作を行う必要がございます。
制限③ExpressRouteに接続されているクラシックのVnetは、PowerShell上からのみ確認が可能である。
AzurePortal上からでは、ExpressRouteに接続されているARMのVnetは表示されるが、クラシックのVnetは表示されません。
そのため、PowerShell上から確認する必要がございます。
PowerShell上から確認する際は、下記のコマンドを実行します。
Get-AzureDedicatedCircuitLink -ServiceKey “XXXXXXXXXXXX”
※XXXXXXXXXXXXの部分には、接続を確認したいExpressRouteのサービスキーを記入します。
サービスキーは、AzurePortalにて、該当のExpressRouteの概要タブにて確認することが出来ます。
ExpressRouteに接続されているクラシックのVnetがある場合、下記画像のように、Provisionedの後に、Vnet名が記載されます。
クラシックのVnetが1つも接続されていない場合は、コマンドを実行しても、返答がありません。
制限④Vnet名を使用したコマンドを実行する際は、PowerShell上から正式なVnet名を確認する必要がある。
ポータル上に表示されているクラシックのVnet名は、正式なVnet名でない場合がございます。
正式なVnet名を使用していないコマンドを実行すると、エラーが返ってきます。
そのため、PowerShell上で正式なVnet名を確認する必要がございます。
下記のコマンドを実行し、Vnetの正式名称を事前に確認しましょう。
Get-AzureVNetSite
下記画像のような応答が、サブスクリプション内にあるVnetの数だけ返ってきます。
Nameに記載のある部分が、正式なVnet名になります。
■事前準備事項
事前準備①PowerShell操作では、最新のバージョンのモジュールを使用する。
古いバージョンでも、操作は出来ますが、MicrosoftからはPowerShell上での操作は、
最新のバージョンのモジュールを使用することが推奨されているため、古いバージョンを使用している場合は、
念の為最新のバージョンへアップデートすることをお勧めします。
1. 下記のコマンドで現在のバージョンを確認することが出来ます。
Get-Module
※2021年12月20日現在は、5.3.1が最新のバージョンとなっておりますが、頻繁に更新がありますので、
最新のバージョンは作業時点でのものをご確認ください。
2. 最新のバージョンでなかった場合は、下記のコマンドを実行し、モジュールを最新のバージョンへアップデートします。
update-Module -Name Azure
2″. そもそも”Get-Module”コマンドを打っても、モジュール自体が表示されず、インストールがされていなかった場合は、下記のコマンドを実行し、モジュールをインストールします。
Import-Module -Name Azure
※このコマンドは、その時点での最新のバージョンをインストールする仕様ため、手順2のアップデートを続けて行う必要はございません。
■クラシックのVnetをExpressRouteから接続を削除する方法
1. Windows PowerShellを管理者権限で開きます。
2. ファイルを指定して、インストールされているモジュールをインポートします。
Import-Module ‘C:\Program Files\WindowsPowerShell\Modules\Azure\5.3.1\Azure.psd1’
Import-Module ‘C:\Program Files\WindowsPowerShell\Modules\Azure\5.3.1\ExpressRoute\ExpressRoute.psd1’
※ファイルのパスは各自ご設定ください。
3. Azureアカウントにサインインします。
Add-AzureAccount
4. 該当のExpressRouteがあるサブスクリプションを選択します。
Select-AzureSubscription -SubscriptionId XXXXXXXXXXXXX
※XXXXXXXXXXXXの部分には、サブスクリプションIdを記入します。
5. クラシックの仮想ネットワークをExpressRouteから接続を削除します。
Remove-AzureDedicatedCircuitLink -ServiceKey “XXXXXX01” -VNetName “XXXXXX02”
※XXXXXX01の部分には、接続を削除したいExpressRouteのサービスキーを記入します。
サービスキーは、AzurePortalにて、該当のExpressRouteの概要タブにて確認することが出来ます。
※XXXXXX02の部分には、接続を削除したいVnet名を記入します。
本ブログ内、”■クラシックリソースの制限事項”の”制限④“を参考に正式なVnet名を使用しましょう。
6.接続が削除されていることを確認します。
Get-AzureDedicatedCircuitLink -ServiceKey “XXXXXXXXXXXX“
※XXXXXXXXXXXXの部分には、接続を削除したExpressRouteのサービスキーを記入します。
上記のコマンドの応答に、削除したVnetが表示されなかった場合、削除出来ていることが確認出来ます。
■クラシックのVnetをExpressRouteへ接続する方法
1~4の手順は、上記の”■クラシックのVnetをExpressRouteから接続を削除する方法”と同様の手順になります。
5. 仮想ネットワークをExpressRouteに新規接続します。
New-AzureDedicatedCircuitLink -ServiceKey “XXXXXX03” -VNetName “XXXXXX04”
※XXXXXX03の部分には、新規接続したいExpressRouteのサービスキーを記入します。
サービスキーは、AzurePortalにて、該当のExpressRouteの概要タブにて確認することが出来ます。
※XXXXXX04の部分には、新規接続したいVnet名を記入します。
本ブログ内、”■クラシックリソースの制限事項”の”制限④“を参考に正式なVnet名を使用しましょう。
6. 上記のコマンドに対し、Provisionedが返ってくることを確認します。
Provisionedが返ってきた場合、正しく接続が出来たことになります。
■終わりに
本ブログではクラシックのVnetをExpressRouteに接続する方法について記載しましたが、VnetがARMの場合や別サブスクリプションに所属している場合等、前提条件が異なる場合は、本ブログに記載のある方法とは全く異なる設定方法になります。条件別の方法については、Microsoftのドキュメントのリンクを下記に記載しておりますので、そちらをご参照ください。
・ARMのVnetを同サブスクリプション内のExpressRoute回線に接続する
・ARMのVnetを同サブスクリプション内のExpressRoute回線に接続する
・クラシックのVnetを同サブスクリプション内のExpressRoute回線に接続する
・クラシックのVnetを別サブスクリプション内のExpressRoute回線に接続する