实验室:实现混合网络基础结构
场景
你的任务是在 Azure 中构建一个测试环境,其中包括部署到在中心辐射型拓扑中配置的单独虚拟网络中的 Microsoft Azure 虚拟机。 此测试必须包括通过使用强制流量通过中心流动的用户定义的路由来实现分支之间的连接。 你还需要使用 Azure 专用 DNS 区域为虚拟网络之间的 Azure 虚拟机实现 DNS 名称解析,并对使用 Azure DNS 区域进行外部名称解析作出评估。
注意: 我们提供 交互式实验室模拟 ,让你能以自己的节奏点击浏览实验室。 你可能会发现交互式模拟与托管实验室之间存在细微差异,但演示的核心概念和思想是相同的。
目标
完成本实验室后,你将能够:
- 在 Azure 中实现虚拟网络路由
- 在 Azure 中实现 DNS 名称解析
- 取消预配 Azure 环境
估计时间:60 分钟
实验室设置
虚拟机:AZ-800T00A-SEA-DC1 和 AZ-800T00A-ADM1 必须正在运行 。 其他 VM 可以运行,但此实验室不需要这些 VM。
注意:AZ-800T00A-SEA-DC1 和 AZ-800T00A-SEA-ADM1 虚拟机托管 SEA-DC1 和 SEA-ADM1 的安装
- 选择“SEA-ADM1”。
-
使用以下凭据登录:
- 用户名:
Administrator
- 密码:
Pa55w.rd
- 域:
CONTOSO
- 用户名:
对于本实验室,你将使用可用的 VM 环境和 Azure 订阅。 在开始实验室之前,请确保拥有 Azure 订阅以及具有该订阅中“所有者”或“参与者”角色的用户帐户。
注意:默认情况下,此实验室需要在你选择用于部署的区域中的 Standard_Dsv3 系列中总共有 6 个可用的 vCPU,因为它涉及部署 Standard_D2s_v3 SKU 的三个 Azure VM。 如果你使用的是免费的 Azure 帐户,并且限制为 4 个 vCPU,则可使用仅需一个 vCPU 的 VM 大小(例如 Standard_B1s)。
练习 1:在 Azure 中实现虚拟网络路由
场景
首先使用 Azure 资源管理器模板部署核心网络基础结构,在该基础结构中配置自定义路由,并验证其功能。
此练习的主要任务如下:
- 预配实验室基础结构资源
- 配置中心辐射型网络拓扑
- 测试虚拟网络对等互连的传递性
- 在中心辐射型拓扑中配置路由
任务 1:预配实验室基础结构资源
此任务需要将三个虚拟机部署到同一 Azure 区域,但部署到不同的虚拟网络中。 第一个虚拟网络将充当中心,而另外两个虚拟网络将充当分支。 这些资源将用作实验室基础结构的基础。
- 连接到 SEA-ADM1,然后根据需要,以 CONTOSO\Administrator 的身份,使用密码 Pa55w.rd 登录 。
- 在 SEA-ADM1 上,启动 Microsoft Edge,浏览到 Azure 门户
https://portal.azure.com
,然后使用具有要在此实验室中使用的订阅的“所有者”角色的用户帐户的凭据登录 。 - 在 Azure 门户的 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 窗格中,运行以下命令,通过使用上传的模板和参数文件,在其中创建三个虚拟网络和四个 Azure VM:
New-AzResourceGroupDeployment ` -ResourceGroupName $rgName ` -TemplateFile $HOME/L08-rg_template.json ` -TemplateParameterFile $HOME/L08-rg_template.parameters.json
注意:在继续下一步之前,请等待部署完成。 这大约需要 3 分钟。
-
在 Cloud Shell 窗格中,运行以下命令,在上一步中部署的 Azure VM 上安装网络观察程序扩展:
$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' }
注意:请不要等待部署完成,而是继续执行下一步操作。 安装网络观察程序扩展大约需要 5 分钟。
任务 2:配置中心辐射型网络拓扑
此任务将在之前任务中部署的虚拟网络之间配置本地对等互连,以创建中心辐射型网络拓扑。
- 在 SEA-ADM1 上,在显示 Azure 门户的 Microsoft Edge 窗口中,打开另一个选项卡,浏览到 Azure 门户
https://portal.azure.com
。 - 在 Azure 门户中,浏览到 az800l08-vnet0 虚拟网络页面。
-
在 az800l08-vnet0 虚拟网络页面上,使用以下设置创建一个对等互连(保留其余设置为默认值):
设置 值 本虚拟网络: 对等互连链接名称 az800l08-vnet0_to_az800l08-vnet1 到远程虚拟网络的流量 允许(默认) 从远程虚拟网络转接的流量 允许(默认) 虚拟网络网关或路由服务器 “无”(默认) 远程虚拟网络: 对等互连链接名称 az800l08-vnet1_to_az800l08-vnet0 虚拟网络部署模型 资源管理器 远程虚拟网络:虚拟网络 az800l08-vnet1 到远程虚拟网络的流量 允许(默认) 从远程虚拟网络转接的流量 允许(默认) 虚拟网络网关 “无”(默认) 注意:请等待操作完成。
注意:此步骤将建立两个对等互连:一个从 az800l08-vnet0 到 az800l08-vnet1,另一个从 az800l08-vnet1 到 az800l08-vnet0 。
注意:需要启用“允许转发的流量”,以便于在此实验室稍后将实现的分支虚拟网络之间进行路由。
-
重复上述步骤,添加具有以下设置的对等互连(将其余设置保留为默认值):
设置 值 本虚拟网络: 对等互连链接名称 az800l08-vnet0_to_az800l08-vnet2 到远程虚拟网络的流量 允许(默认) 从远程虚拟网络转接的流量 允许(默认) 虚拟网络网关 “无”(默认) 远程虚拟网络: 对等互连链接名称 az800l08-vnet2_to_az800l08-vnet0 虚拟网络部署模型 资源管理器 远程虚拟网络:虚拟网络 az800l08-vnet2 到远程虚拟网络的流量 允许(默认) 从远程虚拟网络转接的流量 允许(默认) 虚拟网络网关 “无”(默认) 注意:此步骤将建立两个对等互连:一个从 az800l08-vnet0 到 az800l08-vnet2,另一个从 az800l08-vnet2 到 az800l08-vnet0 。 至此就完成了中心辐射型拓扑的设置(其中 az800l08 vnet0 虚拟网络充当中心,而 az800l08 vnet1 和 az800l08-vnet2 充当分支) 。
任务 3:测试虚拟网络对等互连的传递性
此任务将通过使用网络观察程序跨虚拟网络对等互连测试连接。
注意:在开始此任务之前,请确保在此练习的第一个任务中调用的脚本已成功完成。
- 在 Azure 门户中,浏览到“网络观察程序”页面。
-
在“网络观察程序 - 连接故障排除”页面上,使用以下设置启动检查(将其他设置保留为默认值):
设置 值 订阅 你在此实验室中使用的 Azure 订阅的名称 资源组 AZ800-L0801-RG 源类型 虚拟机 虚拟机 az800l08-vm0 目标 手动指定 URI、FQDN 或 IPv4 10.81.0.4 协议 TCP Destination Port 3389 注意:10.81.0.4 表示 az800l08-vm1 的专用 IP 地址 。 此测试使用 TCP 端口 3389,因为在 Azure 虚拟机上默认启用了远程桌面,且虚拟网络内部以及虚拟网络之间可以相互访问 。
-
等到返回连接检查结果。 验证状态是否为可访问。 查看网络路径,请注意,连接是直接的,VM 之间没有中间跃点。
注意:这是预期行为,因为中心虚拟网络直接与第一个分支虚拟网络进行对等互连。
-
在“网络观察程序 - 连接故障排除”页面上,使用以下设置启动另一项检查(将其他设置保留为默认值):
设置 值 订阅 你在此实验室中使用的 Azure 订阅的名称 资源组 AZ800-L0801-RG 源类型 虚拟机 虚拟机 az800l08-vm0 目标 手动指定 URI、FQDN 或 IPv4 10.82.0.4 协议 TCP Destination Port 3389 注意:10.82.0.4 表示 az800l08-vm2 的专用 IP 地址 。
-
选择“检查”并等到返回连接检查结果。 验证状态是否为可访问。 查看网络路径,请注意,连接是直接的,VM 之间没有中间跃点。
注意:这是预期行为,因为中心虚拟网络直接与第二个分支虚拟网络进行对等互连。
-
在“网络观察程序 - 连接故障排除”页面上,使用以下设置启动另一项检查(将其他设置保留为默认值),再启动另一项检查:
注意:可能需要刷新虚拟机 az800l08-vm1 的浏览器页,才能在“虚拟机”下拉列表中显示 。
设置 值 订阅 你在此实验室中使用的 Azure 订阅的名称 资源组 AZ800-L0801-RG 源类型 虚拟机 虚拟机 az800l08-vm1 目标 手动指定 URI、FQDN 或 IPv4 10.82.0.4 协议 TCP Destination Port 3389 -
等到返回连接检查结果。 请注意,状态为“不可访问”。
注意:这是预期行为,因为两个分支虚拟网络彼此之间并不是对等互连的,并且虚拟网络的对等互连性是不可传递的。
任务 4:在中心辐射型拓扑中配置路由
此任务将通过在 az800l08-vm1 虚拟机的网络接口上启用 IP 转发,在其操作系统内启用路由,并在分支虚拟网络上配置用户定义的路由,来配置和测试两个分支虚拟网络之间的路由。
- 在 Azure 门户中,浏览到 az800l08-vm0 虚拟机页面。
- 在 az800l08-vm0 虚拟机页上,浏览到显示其网络接口 az800l08-nic0 的设置的页面 。
-
在 az800l08-nic0 网络接口页上,显示其“IP 配置”页,并启用 IP 转发 。
注意:az800l08-vm0 需要此设置才能充当路由器,以路由两个分支虚拟网络之间的流量。
注意:现在你需要配置 az800l08-vm0 虚拟机的操作系统,以支持路由。
-
在 Azure 门户中,浏览到 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 门户中,浏览到“路由表”页面,并创建具有以下设置的路由表(其他设置保留其默认值):
设置 值 订阅 你在此实验室中使用的 Azure 订阅的名称 资源组 AZ800-L0801-RG 位置 创建虚拟网络的 Azure 区域的名称 名称 az800l08-rt12 传播网关路由 是 注意:请等到路由表完成创建。 这大约需要 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 传播网关路由 是 注意:请等到路由表完成创建。 这大约需要 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 门户中,浏览到“网络观察程序 - 连接故障排除”页面,使用以下设置启动检查(将其他设置保留为默认值):
设置 值 订阅 你在此实验室中使用的 Azure 订阅的名称 资源组 AZ800-L0801-RG 源类型 虚拟机 虚拟机 az800l08-vm1 目标 手动指定 URI、FQDN 或 IPv4 10.82.0.4 协议 TCP Destination Port 3389 -
等到返回连接检查结果。 验证状态是否为可访问。 查看网络路径,请注意,流量是通过 10.80.0.4 路由的,并且分配给 az800l08-nic0 网络适配器 。
注意:这是预期行为,因为分支虚拟网络之间的流量现在通过中心虚拟网络中的虚拟机(充当路由器)进行路由。
练习 2:在 Azure 中实现 DNS 名称解析
场景
成功测试自定义路由后,现在可以使用 Azure 专用 DNS 区域为虚拟网络之间的 Azure 虚拟机实现 DNS 名称解析,并对使用 Azure DNS 区域进行外部名称解析作出评估。
此练习的主要任务如下:
- 配置 Azure 专用 DNS 名称解析
- 验证 Azure 专用 DNS 名称解析
- 配置 Azure 公用 DNS 名称解析
- 验证 Azure 公用 DNS 名称解析
任务 1:配置 Azure 专用 DNS 名称解析
此任务将使用 Azure 专用 DNS 区域配置虚拟网络之间的 DNS 名称解析。
- 在 ADM1 上,在显示 Azure 门户的 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 记录集列表,并验证 az800l08-vm0、az800l08-vm1 和 az800l08-vm2 的 A 记录是否在列表中显示为“自动注册” 。
注意: 如果未列出记录集,你可能需要等待几分钟并刷新页面。
任务 2:验证 Azure 专用 DNS 名称解析
此任务将验证 Azure 专用 DNS 名称解析。
- 在 SEA-ADM1 上,在显示 Azure 门户的 Microsoft Edge 窗口中,浏览到“网络观察程序 - 连接故障排除”页面 。
-
使用以下设置启动检查(将其他设置保留为默认值):
设置 值 订阅 你在此实验室中使用的 Azure 订阅的名称 资源组 AZ800-L0801-RG 源类型 虚拟机 虚拟机 az800l08-vm1 目标 手动指定 URI、FQDN 或 IPv4 az800l08-vm2.contoso.org 首选 IP 版本 IPv4 协议 TCP Destination Port 3389 -
等到返回连接检查结果。 验证状态是否为可访问。
注意:这是预期行为,因为目标完全限定的域名 (FQDN) 可通过 Azure 专用 DNS 区域解析。
任务 3:配置 Azure 公用 DNS 名称解析
此任务将使用 Azure 公用 DNS 区域配置外部 DNS 名称解析。
- 在 SEA-ADM1 上,在显示 Azure 门户的 Microsoft Edge 窗口中,打开一个新选项卡,浏览到 。
- 使用域名搜索标识当前未使用的域名。
- 在 SEA-ADM1 上,切换到显示 Azure 门户的 Microsoft Edge 选项卡,并浏览到“DNS 区域”页面 。
-
使用以下设置(将其他设置保留为默认值)创建 DNS 区域:
设置 值 订阅 你在此实验室中使用的 Azure 订阅的名称 资源组 AZ800-L0802-RG 名称 之前在此任务中标识的 DNS 域名 注意:请等到 DNS 区域创建完成。 这大约需要 1 分钟。
- 浏览到新创建的 DNS 区域的页面。
-
添加具有以下设置的记录集(保留其他设置为默认值):
设置 值 名称 www 类型 A 别名记录集 是 TTL 1 TTL 单位 小时数 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 门户中的“公共 DNS 区域”页上列出的名称服务器配置为与该域对应的命名空间的权威服务器。
练习 3:取消预配 Azure 环境
任务 1:在 Cloud Shell 中启动一个 PowerShell 会话
- 在 SEA-ADM1 上,切换到显示 Azure 门户的 Microsoft Edge 窗口。
- 从 Azure 门户的 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 进行外部名称解析。