ラボ: ハイブリッド ネットワーク インフラストラクチャの実装
シナリオ
あなたは Azure 内にテスト環境を構築する仕事を任されました。これは、ハブ アンド スポーク トポロジに構成した個別の仮想ネットワークへとデプロイした Microsoft Azure 仮想マシンから成る環境です。 このテストには、トラフィックをハブ経由で流すように強制するユーザー定義ルートを使って、スポーク間の接続を実装することを含める必要があります。 また、Azure プライベート DNS ゾーンを使って仮想ネットワーク間の Azure 仮想マシンの DNS 名前解決を実装し、外部の名前解決のために Azure DNS ゾーンの使用を評価する必要があります。
メモ: このラボをご自分のペースでクリックして進めることができる、 ラボの対話型シミュレーション が用意されています。 対話型シミュレーションとホストされたラボの間に若干の違いがある場合がありますが、示されている主要な概念とアイデアは同じです。
目標
このラボを完了すると、次のことができるようになります。
- Azure で仮想ネットワーク ルーティングを実装する
- Azure で DNS 名前解決を実装する
- Azure 環境をプロビジョニング解除する
予想所要時間: 60 分
ラボのセットアップ
仮想マシン: AZ-800T00A-SEA-DC1 および AZ-800T00A-ADM1 が実行されている必要があります。 他の VM が実行されていてもかまいませんが、このラボでは必要ありません。
注: AZ-800T00A-SEA-DC1 と AZ-800T00A-SEA-ADM1 の各仮想マシンが SEA-DC1 と SEA-ADM1 のインストールをホストしています
- SEA-ADM1 を選択します。
- 講師から提供された資格情報を使用してサインインします。
このラボでは、使用可能な VM 環境と Azure サブスクリプションを使用します。 ラボを開始する前に、Azure サブスクリプションと、そのサブスクリプションの所有者または共同作成者ロールを持つユーザー アカウントがあることを確認してください。
注: このラボの既定では、Standard_D2s_v3 SKU の 3 つの Azure VM をデプロイするので、デプロイに選んだリージョンに Standard_Dsv3 シリーズで使用できる合計 6 つの vCPU が必要です。 無料の Azure アカウントを使っていて、4 つの vCPU の制限がある場合は、必要な vCPU 数が 1 つのみである VM サイズ (Standard_B1s など) を使用できます。
演習 1: Azure で仮想ネットワーク ルーティングを実装する
シナリオ
まず、Azure Resource Manager テンプレートを使ってコア ネットワーク インフラストラクチャをデプロイし、そのインフラストラクチャ内にカスタム ルーティングを構成し、その機能を検証します。
この演習の主なタスクは次のとおりです。
- ラボ インフラストラクチャ リソースをプロビジョニングする
- ハブ アンド スポーク ネットワーク トポロジを構成する
- 仮想ネットワーク ピアリングの推移性をテストする
- ハブ アンド スポーク トポロジでルーティングを構成する
タスク 1: ラボ インフラストラクチャ リソースをプロビジョニングする
このタスクでは、3 つの仮想マシンを同じ Azure リージョン内の個別の仮想ネットワークにデプロイします。 1 つ目の仮想ネットワークはハブとして機能し、残りの 2 つの仮想ネットワークはスポークとなります。 これらのリソースは、ラボ インフラストラクチャの基礎として機能します。
- SEA-ADM1 に接続してから、必要に応じて、講師から提供された資格情報でサインインします。
- SEA-ADM1 で Microsoft Edge を起動して
https://portal.azure.com
の Azure portal を開き、このラボで使うサブスクリプションの所有者ロールを持つユーザー アカウントの資格情報を使ってサインインします。 - Azure portal の [Cloud Shell] ペインで PowerShell セッションを開きます。
- ファイル C:\Labfiles\Lab08\L08-rg_template.json と C:\Labfiles\Lab08\L08-rg_template.parameters.json を Cloud Shell のホーム ディレクトリにアップロードします。
-
[Cloud Shell] ペインで以下のコマンドを実行し、ラボ環境をホストする最初のリソース グループを作成します (
<Azure_region>
のプレースホルダーは、デプロイに使う予定の Azure リージョン名に置き換えてください)。注: (Get-AzLocation).Location コマンドを実行すると、使用可能な Azure リージョンの名前を一覧表示できます。
$location = '<Azure_region>' $rgName = 'AZ800-L0801-RG' New-AzResourceGroup -Name $rgName -Location $location
-
[Cloud Shell] ペインで以下のコマンドを実行し、アップロードしたテンプレートとパラメーターのファイルを使って、3 つの仮想ネットワークと 4 つの Azure VM をそこに作成します。
New-AzResourceGroupDeployment ` -ResourceGroupName $rgName ` -TemplateFile $HOME/L08-rg_template.json ` -TemplateParameterFile $HOME/L08-rg_template.parameters.json
注: デプロイが完了するまで待ってから、次の手順に進んでください。 これには 3 分ほどかかります。
-
[Cloud Shell] ペインで以下のコマンドを実行し、前の手順でデプロイした Azure VM に Network Watcher 拡張機能をインストールします。
$rgName = 'AZ800-L0801-RG' $location = (Get-AzResourceGroup -ResourceGroupName $rgName).location $vmNames = (Get-AzVM -ResourceGroupName $rgName).Name foreach ($vmName in $vmNames) { Set-AzVMExtension ` -ResourceGroupName $rgName ` -Location $location ` -VMName $vmName ` -Name 'networkWatcherAgent' ` -Publisher 'Microsoft.Azure.NetworkWatcher' ` -Type 'NetworkWatcherAgentWindows' ` -TypeHandlerVersion '1.4' }
注: デプロイが完了するのを待たず、代わりに次の手順に進んでください。 Network Watcher 拡張機能のインストールには 5 分ほどかかります。
タスク 2: ハブ アンド スポーク ネットワーク トポロジを構成する
このタスクでは、前のタスクでデプロイした仮想ネットワーク間にローカル ピアリングを構成し、ハブ アンド スポーク ネットワーク トポロジを作成します。
- SEA-ADM1 で Azure portal を表示している Microsoft Edge ウィンドウで、別のタブを開き、
https://portal.azure.com
にある Azure portal に移動します。 - Azure portal で az800l08-vnet0 仮想ネットワーク ページに移動します。
-
az800l08-vnet0 仮想ネットワーク ページから、次の設定でピアリングを作成します (その他は既定値のままにします)。
設定 値 この仮想ネットワーク: ピアリング リンク名 az800l08-vnet0_to_az800l08-vnet1 Traffic to remote virtual network 許可 (既定) Traffic forwarded from remote virtual network 許可 (既定) 仮想ネットワーク ゲートウェイまたは Route Server なし (既定値) リモート仮想ネットワーク: ピアリング リンク名 az800l08-vnet1_to_az800l08-vnet0 仮想ネットワークのデプロイ モデル リソース マネージャー リモート仮想ネットワーク: 仮想ネットワーク az800l08-vnet1 Traffic to remote virtual network 許可 (既定) Traffic forwarded from remote virtual network 許可 (既定) 仮想ネットワーク ゲートウェイ なし (既定値) 注: 操作が完了するまで待ちます。
注: この手順で、2 つのピアリング (1 つは az800l08-vnet0 から az800l08-vnet1 へ、もう 1 つは az800l08-vnet1 から az800l08-vnet0 へ) を確立します。
注: このラボで後ほど実装するスポーク仮想ネットワーク間のルーティングを容易にするために、 [トラフィック転送を許可する] を有効にする必要があります。
-
前の手順を繰り返し、次の設定でピアリングを追加します (その他は既定値のままにします)。
設定 値 この仮想ネットワーク: ピアリング リンク名 az800l08-vnet0_to_az800l08-vnet2 Traffic to remote virtual network 許可 (既定) Traffic forwarded from remote virtual network 許可 (既定) 仮想ネットワーク ゲートウェイ なし (既定値) リモート仮想ネットワーク: ピアリング リンク名 az800l08-vnet2_to_az800l08-vnet0 仮想ネットワークのデプロイ モデル リソース マネージャー リモート仮想ネットワーク: 仮想ネットワーク az800l08-vnet2 Traffic to remote virtual network 許可 (既定) Traffic forwarded from remote virtual network 許可 (既定) 仮想ネットワーク ゲートウェイ なし (既定値) 注: この手順で、2 つのピアリング (1 つは az800l08-vnet0 から az800l08-vnet2 へ、もう 1 つは az800l08-vnet2 から az800l08-vnet0へ) を確立します。 これでハブ アンド スポーク トポロジの設定は完了です (az800l08-vnet0 仮想ネットワークがハブの役割を果たし、az800l08-vnet1 と az800l08-vnet2 はそのスポークです)。
タスク 3: 仮想ネットワーク ピアリングの推移性をテストする
このタスクでは、Network Watcher を使って、仮想ネットワーク ピアリング間の接続をテストします。
注: このタスクを開始する前に、この演習の最初のタスクで呼び出したスクリプトが正常に完了したことを確認します。
- Azure portal で [Network Watcher] ページに移動します。
-
[Network Watcher - 接続のトラブルシューティング] ページから、次の設定でチェックを開始します (その他は既定値のままにします)。
設定 値 サブスクリプション このラボで使用している Azure サブスクリプションの名前 リソース グループ AZ800-L0801-RG 送信元の種類 仮想マシン 仮想マシン az800l08-vm0 宛先 手動で指定 URI、FQDN、または IPv4 10.81.0.4 Protocol TCP 宛先ポート 3389 注: 10.81.0.4 は、az800l08-vm1 のプライベート IP アドレスを表します。 このテストでは TCP ポート 3389 を使っています。これは、Azure 仮想マシンではリモート デスクトップが既定で有効であり、仮想ネットワーク内および仮想ネットワーク間でアクセスできるためです。
-
接続チェックの結果が返されるまで待ちます。 状態が “到達可能” であることを確認します。 ネットワーク パスを確認します。接続が直接であり、仮想マシン間に中間ホップがないことに注意してください。
注: ハブ仮想ネットワークが最初のスポーク仮想ネットワークと直接ピアリングされていることから、このようになります。
-
[Network Watcher - 接続のトラブルシューティング] ページから、次の設定でもう一度チェックを開始します (その他は既定値のままにします)。
設定 値 サブスクリプション このラボで使用している Azure サブスクリプションの名前 リソース グループ AZ800-L0801-RG 送信元の種類 仮想マシン 仮想マシン az800l08-vm0 宛先 手動で指定 URI、FQDN、または IPv4 10.82.0.4 Protocol TCP 宛先ポート 3389 注: 10.82.0.4 は、az800l08-vm2 のプライベート IP アドレスを表します。
-
[チェック] を選び、接続チェックの結果が返されるまで待ちます。 状態が “到達可能” であることを確認します。 ネットワーク パスを確認します。接続が直接であり、仮想マシン間に中間ホップがないことに注意してください。
注: ハブ仮想ネットワークが 2 つ目のスポーク仮想ネットワークと直接ピアリングされていることから、このようになります。
-
[Network Watcher - 接続のトラブルシューティング] ページから、次の設定でもう一度チェックを開始し (その他は既定値のままにします)、もう一度チェックします。
注: [仮想マシン] ドロップダウン リストに仮想マシン az800l08-vm1 を表示するには、必要に応じてブラウザー ページを更新します。
設定 値 サブスクリプション このラボで使用している Azure サブスクリプションの名前 リソース グループ AZ800-L0801-RG 送信元の種類 仮想マシン 仮想マシン az800l08-vm1 宛先 手動で指定 URI、FQDN、または IPv4 10.82.0.4 Protocol TCP 宛先ポート 3389 -
接続チェックの結果が返されるまで待ちます。 状態が “到達不能” であることに注意してください。
注: 2 つのスポーク仮想ネットワークが相互にピアリングされておらず、仮想ネットワーク ピアリングが推移的ではないことから、このようになります。
タスク 4: ハブ アンド スポーク トポロジでルーティングを構成する
このタスクでは、az800l08-vm1 仮想マシンのネットワーク インターフェイスで IP 転送を有効にし、そのオペレーティング システム内でルーティングを有効にし、スポーク仮想ネットワーク上でユーザー定義ルートを構成することで、2 つのスポーク仮想ネットワーク間のルーティングを構成し、テストします。
- Azure portal で、az800l08-vm0 仮想マシンのページに移動します。
- az800l08-vm0 仮想マシン ページで、そのネットワーク インターフェイス az800l08-nic0 の設定を表示するページに移動します。
-
az800l08-nic0 ネットワーク インターフェイス ページで、 [IP 構成] ページを表示し、 [IP 転送] を有効にします。
注: 2 つのスポーク仮想ネットワーク間のトラフィックをルーティングするルーターとして az800l08-vm0 が機能するには、この設定が必要です。
注: 次に、ルーティングをサポートするために、az800l08-vm0 仮想マシンのオペレーティング システムを構成する必要があります。
-
Azure portal で az800l08-vm0 仮想マシン ページに戻り、 [実行コマンド] 操作の一覧から RunPowerShellScript を使って、リモート アクセス Windows Server ロールをインストールする次のコマンドを実行します。
Install-WindowsFeature RemoteAccess -IncludeManagementTools
注: コマンドが正常に完了したことの確認を待ちます。
-
もう一度 RunPowerShellScript を使い、次のコマンドを実行してルーティング ロール サービスをインストールします。
Install-WindowsFeature -Name Routing -IncludeManagementTools -IncludeAllSubFeature Install-WindowsFeature -Name "RSAT-RemoteAccess-Powershell" Install-RemoteAccess -VpnType RoutingOnly Get-NetAdapter | Set-NetIPInterface -Forwarding Enabled
注: コマンドが正常に完了したことの確認を待ちます。
注: 次は、スポーク仮想ネットワーク上でユーザー定義のルートを作成および構成する必要があります。
-
Azure portal で [ルート テーブル] ページに移動し、次の設定を使用してルート テーブルを作成します (他の設定は既定値のままにします)。
設定 値 サブスクリプション このラボで使用している Azure サブスクリプションの名前 リソース グループ AZ800-L0801-RG 場所 仮想ネットワークを作成した Azure リージョンの名前 名前 az800l08-rt12 ゲートウェイのルートを伝達する No 注: ルートテーブルが作成されるまで待ちます。 これには 1 分ほどかかります。
-
新しく作成されたルート テーブル az800l08-rt12 のページに移動し、次の設定でルートを追加します。
設定 値 ルート名 az800l08-route-vnet1-to-vnet2 アドレス プレフィックス 10.82.0.0/20 ネクストホップの種類 仮想アプライアンス 次ホップ アドレス 10.80.0.4 注: 10.80.0.4 は、az800l08-vm0 のプライベート IP アドレスを表します。
-
az800l08-rt12 ルート テーブル ページで、ルート テーブル az800l08-rt12 を次のサブネットに関連付けます。
設定 値 仮想ネットワーク az800l08-vnet1 サブネット subnet0 -
[ルート テーブル] ページに戻り、次の設定で別のルート テーブルを作成します (その他は既定値のままにします)。
設定 値 サブスクリプション このラボで使用している Azure サブスクリプションの名前 リソース グループ AZ800-L0801-RG リージョン 仮想ネットワークを作成した Azure リージョンの名前 名前 az800l08-rt21 ゲートウェイのルートを伝達する No 注: ルートテーブルが作成されるまで待ちます。 これには 3 分ほどかかります。
-
az800l08-rt21 ルート テーブル ページを開き、次の設定でルートを追加します。
設定 値 ルート名 az800l08-route-vnet2-to-vnet1 アドレス プレフィックス 10.81.0.0/20 ネクストホップの種類 仮想アプライアンス 次ホップ アドレス 10.80.0.4 -
az800l08-rt21 ルート テーブル ページで、ルート テーブル az800l08-rt21 を次のサブネットに関連付けます。
設定 値 仮想ネットワーク az800l08-vnet2 サブネット subnet0 -
Azure portal で [Network Watcher - 接続のトラブルシューティング] ページに戻り、次の設定でチェックを開始します (その他は既定値のままにします)。
設定 値 サブスクリプション このラボで使用している Azure サブスクリプションの名前 リソース グループ AZ800-L0801-RG 送信元の種類 仮想マシン 仮想マシン az800l08-vm1 宛先 手動で指定 URI、FQDN、または IPv4 10.82.0.4 Protocol TCP 宛先ポート 3389 -
接続チェックの結果が返されるまで待ちます。 状態が “到達可能” であることを確認します。 ネットワーク パスを確認します。トラフィックが az800l08-nic0 ネットワーク アダプターに割り当てられた 10.80.0.4 を経由してルーティングされていることに注意してください。
注: スポーク仮想ネットワーク間のトラフィックが、ルーターとして機能するハブ仮想ネットワーク内にある仮想マシンを経由するようになったことから、このようになります。
演習 2: Azure で DNS 名前解決を実装する
シナリオ
カスタム ルーティングのテストに成功したら、次は Azure プライベート DNS ゾーンを使って仮想ネットワーク間の Azure 仮想マシンの DNS 名前解決を実装し、外部の名前解決のために Azure DNS ゾーンの使用を評価します。
この演習の主なタスクは次のとおりです。
- Azure プライベート DNS 名前解決を構成する
- Azure プライベート DNS 名前解決を検証する
- Azure パブリック DNS 名前解決を構成する
- Azure パブリック DNS 名前解決を検証する
タスク 1: Azure プライベート DNS 名前解決を構成する
このタスクでは、Azure プライベート DNS ゾーンを使って、仮想ネットワーク間の DNS 名前解決を構成します。
- SEA-ADM1 上の Azure portal を表示する Microsoft Edge ウィンドウで、 [プライベート DNS ゾーン] ページに移動します。
-
次の設定でプライベート DNS ゾーンを作成します。
設定 値 サブスクリプション このラボで使用している Azure サブスクリプションの名前 リソース グループ 新しいリソース グループの名前 AZ800-L0802-RG 名前 contoso.org リソース グループの場所 このラボの前の演習でリソースをデプロイしたものと同じ Azure リージョン 注: プライベート DNS ゾーンが作成されるまで待ちます。 これには 2 分ほどかかります。
- contoso.org DNS プライベート ゾーン ページに移動します。
-
contoso.org プライベート DNS ゾーン ページで、前の演習で作成した最初の仮想ネットワークに、次の設定で仮想ネットワーク リンクを追加します (その他は既定値のままにします)。
設定 値 リンク名 az800l08-vnet0-link サブスクリプション このラボで使用している Azure サブスクリプションの名前 仮想ネットワーク az800l08-vnet0 (AZ800-L0801-RG) 自動登録を有効にする オン 注: 仮想ネットワーク リンクが作成されるまで待ちます。 これにかかる時間は 1 分未満です。
- 前の手順を繰り返し、(自動登録を有効にして) 仮想ネットワーク az800l08-vnet1 と az800l08-vnet2 に対して、それぞれ az800l08-vnet1-link と az800l08-vnet2-link という仮想ネットワーク リンクを作成します。
-
contoso.org プライベート DNS ゾーン ページで、contoso.org プライベート DNS ゾーンの [概要] ペインに移動します。DNS レコード セットの一覧を確認し、A レコードの az800l08-vm0、az800l08-vm1、az800l08-vm2 が “自動登録” として一覧に表示されていることを確認します。
注: レコード セットが一覧に表示されない場合は、必要に応じて数分待ってからページを更新してください。
タスク 2: Azure プライベート DNS 名前解決を検証する
このタスクでは、Azure プライベート DNS 名前解決を確認します。
- SEA-ADM1 で、Azure portal を表示する Microsoft Edge ウィンドウで、 [Network Watcher - 接続のトラブルシューティング] ページに戻ります。
-
次の設定でチェックを開始します (その他は既定値のままにします)。
設定 値 サブスクリプション このラボで使用している Azure サブスクリプションの名前 リソース グループ AZ800-L0801-RG 送信元の種類 仮想マシン 仮想マシン az800l08-vm1 宛先 手動で指定 URI、FQDN、または IPv4 az800l08-vm2.contoso.org 優先 IP バージョン IPv4 Protocol TCP 宛先ポート 3389 -
接続チェックの結果が返されるまで待ちます。 状態が “到達可能” であることを確認します。
注: ターゲットの完全修飾ドメイン名 (FQDN) が Azure プライベート DNS ゾーンを介して解決可能であることから、このようになります。
タスク 3: Azure パブリック DNS 名前解決を構成する
このタスクでは、Azure パブリック DNS ゾーンを使って外部 DNS 名前解決を構成します。
- SEA-ADM1 の Azure portal を表示している Microsoft Edge ウィンドウで、新しいタブを開き、
https://www.godaddy.com/domains/domain-name-search
に移動します。 - ドメイン名検索を使って、現在使われていないドメイン名を特定します。
- SEA-ADM1 で、Azure portal を表示する Microsoft Edge タブに切り替え、 [DNS ゾーン] ページに移動します。
-
次の設定で DNS ゾーンを作成します (その他は既定値のままにします)。
設定 値 サブスクリプション このラボで使用している Azure サブスクリプションの名前 リソース グループ AZ800-L0802-RG 名前 このタスクの先ほど確認した DNS ドメイン名 注: DNS ゾーンが作成されるまで待ちます。 これには 1 分ほどかかります。
- 新しく作成された DNS ゾーンのページに移動します。
-
次の設定でレコード セットを追加します (その他は既定値のままにします)。
設定 値 名前 www Type A エイリアスのレコード セット No TTL 1 TTL の単位 Hours IP アドレス 20.30.40.50 注: IP アドレスとそれに対応する名前は完全に任意です。 これらは、パブリック DNS レコードの実装を示す非常にシンプルな例を示すためのものです。DNS レジストラーから名前空間を購入する必要があるような現実のシナリオをエミュレートするものではありません。
-
DNS ゾーン ページで、ネーム サーバー 1 の完全な名前を確認します。
注: ネームサーバー 1 の完全な名前をメモします。 これは、次のタスクで必要になります。
タスク 4: Azure パブリック DNS 名前解決を検証する
このタスクでは、Azure パブリック DNS ゾーンを使って外部 DNS 名前解決を確認します。
- SEA-ADM1 の [スタート] メニューで、Windows PowerShell を選択します。
-
Windows PowerShell コンソールで次のコマンドを実行し、新しく作成した DNS ゾーンの www DNS レコード セットの外部名前解決をテストします (プレースホルダー
<Name server 1>
は、このタスクで先ほどメモしたこのタスクのネーム サーバー 1 の名前に置き換えます。また、<domain name>
プレースホルダーは、このタスクで先ほど作成した DNS ドメイン名に置き換えます)。nslookup www.<domain name> <Name server 1>
-
コマンドの出力に 20.30.40.50 のパブリック IP アドレスが含まれていることを確認します。
注: nslookup コマンドでは、レコードのクエリを実行する DNS サーバーの IP アドレスを指定できるため、名前解決は期待どおりに動作します (ここでは
<Name server 1>
とします。 一般にアクセス可能な DNS サーバーに対してクエリを実行して名前解決を行うには、DNS レジストラーにドメイン名を登録し、Azure portal のパブリック DNS ゾーン ページに記載されているネーム サーバーを、そのドメインに対応する名前空間の権限として構成する必要があります。
演習 3: Azure 環境のプロビジョニング解除
タスク 1: Cloud Shell で PowerShell セッションを開始する
- SEA-ADM1 で、Azure portal が表示されている Microsoft Edge ウィンドウに切り替えます。
- Azure portal の [Cloud Shell] ペインで PowerShell セッションを開きます。
タスク 2: ラボでプロビジョニングしたすべての Azure リソースを特定する
-
[Cloud Shell] ペインで次のコマンドを実行して、このラボで作成されたすべてのリソース グループのリストを表示します。
Get-AzResourceGroup -Name 'AZ800-L08*'
-
次のコマンドを実行して、このラボで作成したすべてのリソース グループを削除します。
Get-AzResourceGroup -Name 'AZ800-L08*' | Remove-AzResourceGroup -Force -AsJob
注: このコマンドは非同期で実行されるため ( -AsJob パラメーターによって決定されます)、同じ PowerShell セッション内で直後に別の PowerShell コマンドを実行できますが、リソース グループが実際に削除されるまでに数分かかります。
結果
このラボを完了すると、次の作業が完了しています。
- ラボ環境をプロビジョニングしました。
- ハブ アンド スポーク ネットワーク トポロジを構成しました。
- 仮想ネットワーク ピアリングの推移性をテストしました。
- ハブ アンド スポーク トポロジでルーティングを構成しました。
- 内部の名前解決のために Azure DNS を構成しました。
- 外部の名前解決のために Azure DNS を構成しました。