Active Directory (AD) 诊断工具是一个实用程序 PowerShell 脚本,可帮助您在 Google Cloud 中排查本地网域和 Cloud SQL for SQL Server 实例的 AD 设置问题。
该工具会对相关问题(例如关闭的端口、FQDN 查找和 DNS 问题)执行各种检查。它在一个本地 Windows 虚拟机上运行,并且该虚拟机应是本地网域的网域控制器之一。
本页面介绍如何使用适用于 Cloud SQL 的 Active Directory 诊断工具,并说明了该工具执行的检查。
前提条件
在继续使用 AD 诊断工具之前,请确保已设置以下组件:
- 已启用 AD 的本地网域。
- Google Cloud 控制台中的 Managed AD 域。
- 已加入 Managed AD 域的 Cloud SQL for SQL Server 实例。
如何使用 AD 诊断工具
如需使用 AD 诊断工具,请执行以下步骤:
- 登录任一本地网域控制器或登录一个加入了本地网域的虚拟机。
- 在虚拟机上下载
diagnose_ad.ps1
脚本。 - 以管理员身份启动 Powershell。
使用以下命令在 Powershell 窗口中运行
diagnose_ad.ps1
脚本:powershell -command "& { . C:\\<var>SCRIPT_PATH</var>\\diagnose_ad.ps1; Run-Tool }"
出现提示时,请输入以下信息:
- 本地域名,例如
my-onprem-domain.com
- Managed AD 域名,例如
my-ad-domain.com
- SQL Server Active Directory FQDN 和专用 IP 地址列表。您可以在 Google Cloud 控制台的实例概览页面上找到此列表。
- 本地域名,例如
之后,该工具会执行多项检查,具体请参阅使用 AD 诊断工具执行的检查部分。
使用 AD 诊断工具执行的检查
支票 | 说明 | 备注和建议 |
---|---|---|
可用的网域控制器 | 对本地网域上每个网域控制器的 IP 地址发出 ping 请求,以确保它们可以访问。 | 其余检查会继续对可访问的 IP 地址进行。如果有某个本地网域控制器未通过此检查,则需确保其余本地网域控制器的网络连接。如需了解详情,请参阅创建网络基础架构。 |
端口 | 验证 AD 的所有必需 TCP 和 UDP 端口在所有本地网域控制器上都处于打开状态。 | 此检查会针对 RPC 端口范围 (49152-65535) 返回警告状态(如果打开端口列表不一致)。建议您确认设置了允许此范围的防火墙规则。如需了解详情,请参阅打开防火墙端口 |
DNS 服务器 | 检查 AD 设置的健康状态及其容错性能。 | 如果脚本未在本地网域控制器上运行,则此检查会返回警告。建议您通过设置主要和次要 DNS 服务器来部署提供容错性能的 AD 设置。 |
FQDN(Managed AD 域) | 对您提供的 Managed AD 域名执行 nslookup 检查。 | 此检查会验证是否可以从本地网域控制器访问 Managed AD 域。如果此检查未通过,请尝试在您的本地网络和 Google Cloud Virtual Private Cloud (VPC) 之间建立网络连接。如需了解详情,请参阅建立网络连接。 |
FQDN (SQL Server) | 对您提供的 SQL Server FQDN 执行 nslookup 检查。 | 此检查会验证是否可以从本地网域控制器访问您的实例。如果此检查未通过,请尝试在您的本地网络和 Google Cloud Virtual Private Cloud (VPC) 之间建立网络连接。如需了解详情,请参阅建立网络连接。 |
DC 复制 | 查找本地网域控制器之间是否发生任何 AD 复制失败问题。 | 当脚本是在加入了本地网域的虚拟机上运行,如果 Powershell 未以 Active Directory 域用户身份运行,则该检查会返回失败状态。如果此检查未通过,请按照测试安装中指定的步骤操作。 |
DNS 转发 | 查找本地网域控制器上是否有条件 DNS 转发设置,若要将请求从本地网域控制器路由到 Managed AD 域控制器,则必须要有此转发设置。 | 如果脚本未在本地网域控制器上运行,则此检查可能会失败。建议您配置 DNS 条件转发器。 |
信任设置 | 验证是否在本地网域和 Managed AD 域之间设置了 AD 信任。 | 此检查会验证是否在本地网域和 Managed AD 域之间设置了 AD 信任。建议您在本地网域和 Managed Microsoft AD 域之间建立信任关系。如需了解详情,请参阅设置信任关系。 |
本地安全政策 |
检查是否已设置本地安全政策配置 Network access: Named pipes that can be accessed anonymously 。您需要此检查才能建立 AD 信任。 |
如果脚本未在本地网域控制器上运行,则此检查预计会失败。此检查要求您以管理员身份运行 Powershell 以检查本地安全政策设置。如果此检查未通过,建议您验证本地网域的本地安全政策。 |
名称后缀路由 | 检查本地网域控制器上是否启用了路由到 Managed AD 域的名称后缀。您需要此检查才能将请求从本地林路由到 Managed AD 林。 | 此检查要求您以管理员身份运行 Powershell 以检查名称后缀路由设置。如果此检查未通过,建议您刷新本地信任的名称后缀路由。 |
本地网域的 Kerberos 票据 | 验证是否已在本地网域中启用 Kerberos 身份验证。该检查会查找本地网域的现有 Kerberos 票据。如果未找到,它会尝试生成新的票据。 | 此检查会尝试查找本地 DC 的现有 Kerberos 票据。如果未找到,它会尝试生成新的票据来作为验证形式。其他检查中的错误也可能会导致此检查出错。如果您解决了其他检查中的错误,则此检查的错误问题应该也会予以解决。 |
SQL Server 的 Kerberos 票据 |
验证是否已在本地网域中启用 Kerberos 身份验证。该检查会针对您提供的每个 SQL Server 服务主体名称 (SPN) 查找现有 Kerberos 票据。SQL Server 的 SPN 为 MSSQLSvc/{SQL Server FQDN}:1433 。如果获取 SPN 的票据失败,则 Cloud SQL 会检查是否已设置相关 Windows 注册表值来允许主机名中包含 IP 地址。如果已设置,请尝试使用 SPN MSSQLSvc/{SQL Server IP}:1433 来获取票据。如需了解详情,请参阅 Microsoft 文档。 |
此检查会尝试查找 SQL Server 的现有 Kerberos 票据。如果未找到,它会尝试生成新的票据来作为验证形式。其他检查中的错误也可能会导致此检查出错。如果解决了其他检查中的错误,则此检查的错误问题应该也会予以解决。 |
后续步骤
- 如要提供反馈意见,您可以通过 GitHub 问题来提交反馈。