更新 Amazon WorkSpaces 的 DNS 服务器 - Amazon WorkSpaces
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

更新 Amazon WorkSpaces 的 DNS 服务器

如果在启动 WorkSpaces 后需要更新 Active Directory 的 DNS 服务器 IP 地址,则还必须使用新的 DNS 服务器设置更新 WorkSpaces。

您可以通过以下方式使用新的 DNS 设置更新 WorkSpaces:

  • 在更新 Active Directory 的 DNS 设置之前,请先更新 WorkSpaces 上的 DNS 设置。

  • 更新 Active Directory 的 DNS 设置,请重建 WorkSpaces。

建议先更新 WorkSpaces 上的 DNS 设置,然后再更新 Active Directory 中的 DNS 设置(如以下过程的步骤 1 中所述)。

如果要改为重建 WorkSpaces,请更新 Active Directory 中的一个 DNS 服务器 IP 地址(步骤 2),然后按照重建 WorkSpace中的步骤重建 WorkSpaces。重建 WorkSpaces 后,按照步骤 3 中的说明测试 DNS 服务器更新。完成该步骤后,在 Active Directory 中更新第二台 DNS 服务器的 IP 地址,然后再次重建 WorkSpaces。请务必按照步骤 3 中的说明测试您的第二次 DNS 服务器更新。如最佳实践部分所述,建议逐一更新您的 DNS 服务器 IP 地址。

最佳实践

在您更新 DNS 服务器设置时,建议遵循以下最佳实践:

  • 为避免断开连接和无法访问域资源,强烈建议在非高峰时段或计划维护期间执行 DNS 服务器更新。

  • 请勿在更改 DNS 服务器设置之前和之后的 15 分钟内启动任何新的 WorkSpaces。

  • 更新 DNS 服务器设置时,请一次更改一个 DNS 服务器 IP 地址。在更新第二个 IP 地址之前,请验证第一次更新是否正确。建议执行以下步骤(步骤 1步骤 2步骤 3)两次,一次更新一个 IP 地址。

步骤 1:在您的 WorkSpaces 上更新 DNS 服务器设置

在以下过程中,当前和新的 DNS 服务器 IP 地址的参考值如下所示:

  • 当前 DNS IP 地址:OldIP1OldIP2

  • 新的 DNS IP 地址:NewIP1NewIP2

注意

如果这是您第二次执行此过程,请使用 OldIP2 替换 OldIP1,使用 NewIP2 替换 NewIP1

如果您有多个 WorkSpaces,则可以通过在 WorkSpaces 的 Active Directory OU 上应用组策略对象 (GPO) 来将以下注册表更新部署到 WorkSpaces。有关使用 GPO 的更多信息,请参阅管理你的 Windows WorkSpaces

您可以使用注册表编辑器或使用 Windows PowerShell 进行这些更新。此部分介绍了这些过程。

使用注册表编辑器更新 DNS 注册表设置
  1. 在您的 Windows WorkSpace 上,打开 Windows 搜索框并输入 registry editor 以打开注册表编辑器 (regedit.exe)。

  2. 当询问“你要允许此应用对你的设备进行更改吗?”时,选择

  3. 在注册表编辑器中,导航到以下注册表项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\SkyLight

  4. 打开 DomainJoinDns 注册表项。使用 NewIP1 更新 OldIP1,然后选择确定

  5. 关闭注册表编辑器。

  6. 重启 WorkSpace,或者重新启动服务 SkyLightWorkspaceConfigService。

    注意

    重新启动服务 SkyLightWorkspaceConfigService 后,网络适配器最多可能需要 1 分钟才能反映此更改。

  7. 继续执行步骤 2,在 Active Directory 中更新 DNS 服务器设置,将 OldIP1 替换为 NewIP1

使用 PowerShell 更新 DNS 注册表设置

以下过程使用 PowerShell 命令更新注册表并重新启动服务 SkyLightWorkspaceConfigService。

  1. 在您的 Windows WorkSpace 中,打开 Windows 搜索框并输入 powershell。选择以管理员身份运行

  2. 当询问“你要允许此应用对你的设备进行更改吗?”时,选择

  3. 在 PowerShell 窗口中,运行以下命令以检索当前的 DNS 服务器 IP 地址。

    Get-ItemProperty -Path HKLM:\SOFTWARE\Amazon\SkyLight -Name DomainJoinDNS

    您应该收到如下所示的输出。

    DomainJoinDns : OldIP1,OldIP2
    PSPath        : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\SkyLight
    PSParentPath  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Amazon
    PSChildName   : SkyLight
    PSDrive       : HKLM
    PSProvider    : Microsoft.PowerShell.Core\Registry
  4. 在 PowerShell 窗口中,运行以下命令,将 OldIP1 更改为 NewIP1。请务必暂时保留 OldIP2 原样。

    Set-ItemProperty -Path HKLM:\SOFTWARE\Amazon\SkyLight -Name DomainJoinDNS -Value "NewIP1,OldIP2"
  5. 运行以下命令以重新启动 SkyLightWorkspaceConfigService 服务。

    restart-service -Name SkyLightWorkspaceConfigService
    注意

    重新启动服务 SkyLightWorkspaceConfigService 后,网络适配器最多可能需要 1 分钟才能反映此更改。

  6. 继续执行步骤 2,在 Active Directory 中更新 DNS 服务器设置,将 OldIP1 替换为 NewIP1

如果您有 1 个以上的 Linux WorkSpace,建议您使用配置管理解决方案来分发和实施策略。例如,您可以使用 Amazon OpsWorks for Chef AutomateAmazon OpsWorks for Puppet EnterpriseAnsible

更新 Linux WorkSpace 上的 DNS 服务器设置
  1. 在 Linux WorkSpace 上,打开终端窗口(应用程序 > 系统工具 > MATE 终端)。

  2. 使用以下 Linux 命令编辑 /etc/dhcp/dhclient.conf 文件。您必须具有根用户权限才能编辑此文件。要成为根用户,可以使用 sudo -i 命令,也可以运行所有命令,如 sudo 所示。

    sudo vi /etc/dhcp/dhclient.conf

    /etc/dhcp/dhclient.conf 文件中,您将看到以下 prepend 命令,其中 OldIP1OldIP2 是 DNS 服务器的 IP 地址。

    prepend domain-name-servers OldIP1, OldIP2; # skylight
  3. OldIP1 替换为 OldIP2,并且暂时保持 NewIP1 原样。

  4. 将更改保存到 /etc/dhcp/dhclient.conf

  5. 重启 WorkSpace。

  6. 继续执行步骤 2,在 Active Directory 中更新 DNS 服务器设置,将 OldIP1 替换为 NewIP1

步骤 2:更新 Active Directory 的 DNS 服务器设置

在此步骤中,您将更新 Active Directory 的 DNS 服务器设置。如最佳实践部分所述,建议逐一更新您的 DNS 服务器 IP 地址。

要更新 Active Directory 的 DNS 服务器设置,请参阅《Amazon Directory Service 管理指南》中的以下文档:

更新 DNS 服务器设置后,继续执行步骤 3

步骤 3:测试更新的 DNS 服务器设置

完成步骤 1步骤 2 后,使用以下步骤验证更新后的 DNS 服务器设置是否按预期运行。

在以下过程中,当前和新的 DNS 服务器 IP 地址的参考值如下所示:

  • 当前 DNS IP 地址:OldIP1OldIP2

  • 新的 DNS IP 地址:NewIP1NewIP2

注意

如果这是您第二次执行此过程,请使用 OldIP2 替换 OldIP1,使用 NewIP2 替换 NewIP1

  1. 关闭 OldIP1 DNS 服务器。

  2. 登录 Windows WorkSpace。

  3. 在 Windows 开始菜单上,选择 Windows 系统,然后选择命令提示符

  4. 运行以下命令,其中 AD_Name 是您的 Active Directory 的名称(例如,corp.example.com)。

    nslookup AD_Name

    nslookup 命令应返回以下输出。(如果这是您第二次执行此过程,您应看到 NewIP2 取代了 OldIP2。)

    Server:  Full_AD_Name
    Address:  NewIP1
    
    Name:    AD_Name
    Addresses:  OldIP2
              NewIP1
  5. 如果输出与预期不符,或者收到任何错误,请重复步骤 1

  6. 等待一个小时,确认没有报告任何用户问题。验证 NewIP1 是否正在获取 DNS 查询并做出答复。

  7. 确认第一台 DNS 服务器运行正常后,重复步骤 1 更新第二台 DNS 服务器,这次将 OldIP2 替换为 NewIP2。然后重复步骤 2 和步骤 3。

  1. 关闭 OldIP1 DNS 服务器。

  2. 登录到 Linux WorkSpace。

  3. 在 Linux WorkSpace 上,打开终端窗口(应用程序 > 系统工具 > MATE 终端)。

  4. DHCP 响应中返回的 DNS 服务器 IP 地址将写入 WorkSpace 上的本地 /etc/resolv.conf 文件中。运行以下命令以查看 /etc/resolv.conf 文件的内容。

    cat /etc/resolv.conf

    您应当看到如下输出。(如果这是您第二次执行此过程,您应看到 NewIP2 取代了 OldIP2。)

    ; This file is generated by Amazon WorkSpaces
    ; Modifying it can make your WorkSpace inaccessible until reboot
    options timeout:2 attempts:5
    ; generated by /usr/sbin/dhclient-script
    search region.compute.internal
    nameserver NewIP1
    nameserver OldIP2
    nameserver WorkSpaceIP
    注意

    如果您对 /etc/resolv.conf 文件进行手动修改,则当 WorkSpace 重新启动时,这些更改将丢失。

  5. 如果输出与预期不符,或者收到任何错误,请重复步骤 1

  6. 实际的 DNS 服务器 IP 地址存储在 /etc/dhcp/dhclient.conf 文件中。要查看此文件的内容,请运行以下命令。

    sudo cat /etc/dhcp/dhclient.conf

    您应当看到如下输出。(如果这是您第二次执行此过程,您应看到 NewIP2 取代了 OldIP2。)

    # This file is generated by Amazon WorkSpaces
    # Modifying it can make your WorkSpace inaccessible until rebuild
    prepend domain-name-servers NewIP1, OldIP2; # skylight
  7. 等待一个小时,确认没有报告任何用户问题。验证 NewIP1 是否正在获取 DNS 查询并做出答复。

  8. 确认第一台 DNS 服务器运行正常后,重复步骤 1 更新第二台 DNS 服务器,这次将 OldIP2 替换为 NewIP2。然后重复步骤 2 和步骤 3。