在 Azure 中的虚拟机上部署 DHCP 服务器

了解如何在 Azure 中的虚拟机上部署高可用性 DHCP 服务器。 该服务器用作本地 DHCP 中继代理的目标,以便为本地客户端提供动态 IP 地址分配。 从设计上讲,直接从客户端向 DHCP 服务器广播数据包在 Azure 虚拟网络中是行不通的。

注意

Azure 仍不支持本地客户端到 DHCP 服务器(源端口 UDP/68、目标端口 UDP/67),因为截获和处理此流量的方式是不同的。 当客户端直接尝试在 Azure 中访问 DHCP 服务器时,这将在进行 T1 级 DHCP 续订时导致超时消息。 通过 DHCP 中继代理在 T2 级尝试进行 DHCP 续订时,DHCP 续订将成功。 有关 T1 和 T2 DHCP RENEW 计时器的更多详细信息,请参阅 RFC 2131

先决条件

创建虚拟网络和 Azure Bastion 主机

以下过程创建包含资源子网、Azure Bastion 子网和 Bastion 主机的虚拟网络:

  1. 在门户中,搜索并选择“虚拟网络”。

  2. 在“虚拟网络”页面上,选择“+ 创建”。

  3. 创建虚拟网络基本信息选项卡上输入或选择以下信息:

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“新建”。
    输入“test-rg”作为名称。
    选择“确定”。
    实例详细信息
    名称 输入“vnet-1”。
    区域 选择“(亚太)中国东部 2”。

    用于在 Azure 门户中创建虚拟网络的“基本信息”选项卡的屏幕截图。

  4. 选择“下一步”,转到“安全性”选项卡。

  5. 在“Azure Bastion”部分,选择“启用 Bastion”

    Bastion 使用浏览器通过安全外壳 (SSH) 或远程桌面协议 (RDP),通过使用其专用 IP 地址连接虚拟网络中的虚拟机。 虚拟机不需要公共 IP 地址、客户端软件或特殊配置。 有关详细信息,请参阅什么是 Azure Bastion?

    注意

    每小时定价从部署 Bastion 的时刻开始计算,无论出站数据的使用情况如何。 有关详细信息,请参阅定价SKU。 如果要将 Bastion 部署为教程或测试的一部分,建议在使用完此资源后将其删除。

  6. 在“Azure Bastion”中,输入或选择以下信息:

    设置
    Azure Bastion 主机名 输入“堡垒”。
    Azure Bastion 公共 IP 地址 选择“创建公共 IP 地址”。
    在名称中输入 public-ip-bastion
    选择“确定”。

    用于在 Azure 门户中创建虚拟网络时启用 Azure Bastion 主机的选项的屏幕截图。

  7. 选择下一步,转到IP 地址选项卡。

  8. 在“子网”的地址空间框中,选择“默认”子网。

  9. 编辑子网中,输入或选择以下信息:

    设置
    子网详细信息
    子网模板 保留默认值“默认”。
    名称 输入“subnet-1”。
    开始地址 保留默认值“10.0.0.0”。
    子网大小 保留默认值“/24 (256 个地址)”。

    子网配置详细信息的屏幕截图。

  10. 选择“保存”。

  11. 在窗口底部选择“查看 + 创建”。 验证通过后,选择“创建”。

创建内部负载均衡器

在本部分,你将创建一个内部负载均衡器来对虚拟机进行负载均衡。 内部负载均衡器用于通过专用 IP 地址对虚拟网络中的流量进行负载均衡。

在创建负载均衡器的过程中,配置以下内容:

  • 前端 IP 地址
  • 后端池
  • 入站负载均衡规则
  1. 在门户顶部的搜索框中,输入“负载均衡器”。 在搜索结果中选择“负载均衡器”。

  2. 在“负载均衡器”页上,选择“创建” 。

  3. 在“创建负载均衡器”页的“基本信息”选项卡中,输入或选择以下信息:

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“test-rg”。
    实例详细信息
    名称 输入“load-balancer”
    区域 选择“中国北部 3”。
    SKU 保留默认值“标准”。
    类型 选择“内部”。
    保留默认值“区域”。
  4. 在页面底部选择“下一步: 前端 IP 配置”。

  5. 在“前端 IP 配置”中,选择“+ 添加前端 IP 配置”。

  6. 在“名称”中输入 frontend-1

  7. 在“子网”中选择“subnet-1 (10.0.0.0/24)”。

  8. 在“分配”中,选择“静态”。

  9. 在“IP 地址”中输入 10.0.0.100

  10. 选择 添加

  11. 在页面底部选择“下一步: 后端池”。

  12. 在“后端池”选项卡上,选择“+ 添加后端池” 。

  13. 在“添加后端池”的“名称”中输入“backend-pool”。

  14. 对于“后端池配置”,请选择“NIC”或“IP 地址” 。

  15. 选择“保存”。

  16. 选择页面底部的“查看 + 创建”蓝色按钮。

  17. 选择创建

配置第二个负载均衡器前端

需要为负载均衡器配置第二个前端才能为 DHCP 服务器提供高可用性。 使用以下步骤将第二个前端添加到负载均衡器。

  1. 在 Azure 门户中,搜索并选择“负载均衡器”

  2. 选择“load-balancer”。

  3. 在“设置”中,选择“前端 IP 配置”

  4. 选择+ 添加

  5. 在“添加前端 IP 配置”中,输入或选择以下信息:

    设置
    Name 输入 frontend-2
    子网 选择“subnet-1 (10.0.0.0/24)”。
    转让 选择“静态”。
    IP 地址 输入 10.0.0.200
    可用性区域 选择“区域冗余”。
  6. 选择 添加

  7. 验证是否在“前端 IP 配置”中指定了“frontend-1”和“frontend-2”

创建负载均衡器规则

负载均衡器规则用于将流量分配到虚拟机。 使用以下步骤创建负载均衡器规则。

  1. 在 Azure 门户中,搜索并选择“负载均衡器”

  2. 选择“load-balancer”。

  3. 在“设置”中,选择“负载均衡规则” 。

  4. 选择+ 添加

  5. 在“添加负载均衡规则”中输入或选择以下信息

    设置
    Name 输入 lb-rule-1
    IP 版本 选择“IPv4”。
    “前端 IP 地址” 选择“frontend-1”
    后端池 选择“backend-pool”。
    协议 选择“UDP”。
    端口 输入 67
    后端端口 输入 67
    运行状况探测 选择“新建”。
    为“名称”输入 dhcp-health-probe
    为“协议”选择“TCP”
    为“端口”输入 3389
    为“间隔”输入 67
    为“运行不正常阈值”输入 5
    选择“保存”。
    启用浮动 IP 选择相应的框。
  6. 选择“保存”。

  7. 重复上述步骤以创建第二个负载均衡规则。 将以下值替换为第二个前端的值:

    设置
    Name 输入 lb-rule-2
    “前端 IP 地址” 选择“frontend-2”
    运行状况探测 选择“dhcp-health-probe”

创建虚拟机

在本部分中,将在两个不同的区域(区域 1 和区域 2)中创建两个 VM(vm-1 和 vm-2)。

这些 VM 将添加到先前创建的负载均衡器的后端池中。

  1. 在门户顶部的搜索框中,输入“虚拟机”。 在搜索结果中,选择“虚拟机”。

  2. 选择“+ 创建”,然后选择“Azure 虚拟机”。

  3. 在“创建虚拟机”中,在“基本信息”选项卡中键入或选择值:

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“test-rg”。
    实例详细信息
    虚拟机名称 输入“vm-1”。
    区域 选择“中国北部 3”。
    可用性选项 选择“可用性区域”。
    可用性区域 选择“区域 1”
    安全类型 选择“标准”。
    映像 选择Windows Server 2022 Datacenter - x64 Gen2
    VM 架构 保留默认值“x64”。
    大小 选择一个大小。
    管理员帐户
    身份验证类型 选择密码
    用户名 输入“azureuser”。
    Password 输入密码。
    确认密码 重新输入密码。
    入站端口规则
    公共入站端口 选择“无”。
  4. 选择“网络”选项卡,或选择“下一步: 磁盘”,然后选择“下一步: 网络”。

  5. 在“网络”选项卡中,输入或选择以下信息:

    设置
    网络接口
    虚拟网络 选择“vnet-1”。
    子网 选择“subnet-1 (10.0.0.0/24)”
    公共 IP 选择
    NIC 网络安全组 选择“基本”
    公共入站端口 保留默认值“无”。
    负载均衡
    是否将此虚拟机置于现有的负载均衡解决方案之后? 选择此复选框。
    负载均衡设置
    负载均衡选项 选择“Azure 负载均衡器”
    选择负载均衡器 选择“load-balancer”
    选择后端池 选择“backend-pool”
  6. 选择“查看 + 创建”。

  7. 检查设置,然后选择“创建”。

  8. 按照以下步骤操作,使用以下值创建一个 VM,所有其他设置均与 vm-1 相同:

    设置 VM 2
    名称 vm-2
    可用性区域 2
    负载均衡选项 选择“Azure 负载均衡器”
    选择负载均衡器 选择“load-balancer”
    选择后端池 选择“backend-pool”

配置 DHCP 服务器网络适配器

你将使用 Azure Bastion 登录到虚拟机,并为每个虚拟机配置网络适配器设置和 DHCP 服务器角色。

  1. 在 Azure 门户中,搜索并选择“虚拟机”。

  2. 选择 vm-1

  3. 在“vm-1”页中选择“连接”,然后选择“通过 Bastion 连接”

  4. 输入在创建虚拟机时指定的用户名和密码。

  5. 以管理员身份打开 PowerShell

  6. 运行以下命令安装 DHCP 服务器角色:

    Install-WindowsFeature -Name DHCP -IncludeManagementTools
    

安装 Microsoft 环回适配器

使用以下步骤通过硬件向导安装 Microsoft 环回适配器:

  1. 在虚拟机上打开“设备管理器”

  2. 在“设备管理器”中选择计算机名“vm-1”

  3. 在菜单栏中选择“操作,然后选择“添加传统硬件”

  4. 在“添加硬件向导”中,选择“下一步”

  5. 选择“安装我手动从列表选择的硬件(高级)”,然后选择“下一步”

  6. 在“常见硬件类型”列表中选择“网络适配器”,然后选择“下一步”

  7. 在“制造商”列表框中,选择“Microsoft”

  8. 在“网络适配器”列表框中选择“Microsoft 环回适配器”,然后选择“下一步”

  9. 选择“下一步”开始安装硬件驱动程序

  10. 选择“完成”

  11. 在“设备管理器”中,展开“网络适配器”。 验证是否列出了“Microsoft 环回适配器”

  12. 关闭“设备管理器”

为 Microsoft 环回适配器设置静态 IP 地址

使用以下步骤为 Microsoft 环回适配器设置静态 IP 地址:

  1. 在虚拟机上打开“网络和 Internet 设置”

  2. 选择“更改适配器选项”

  3. 右键单击“Microsoft 环回适配器”并选择“属性”

  4. 选择“Internet 协议版本 4 (TCP/IPv4)”,然后选择“属性”

  5. 选择“使用下面的 IP 地址”

  6. 输入以下信息:

    设置 “值”
    IP 地址 输入 10.0.0.100
    子网掩码 输入 255.255.255.0
  7. 选择“确定”

  8. 选择关闭

在环回接口和网络适配器之间启用路由

使用以下步骤在环回接口和网络适配器之间启用路由:

  1. 以管理员身份打开“CMD”

  2. 运行以下命令列出网络接口:

    netsh int ipv4 show int
    
    C:\Users\azureuser>netsh int ipv4 show int
    
    Idx     Met         MTU          State                Name
    ---  ----------  ----------  ------------  ---------------------------
      1          75  4294967295  connected     Loopback Pseudo-Interface 1
      6           5        1500  connected     Ethernet
     11          25        1500  connected     Ethernet 3
    

    在此示例中,连接到 Azure 虚拟网络的网络接口为“Ethernet”。 在上一部分中安装的环回接口为“Ethernet 3”

    请记下主网络适配器和环回适配器的 Idx 编号。 在此示例中,主网络适配器为 6,环回适配器为 11。 在后面的步骤中需要用到这些值。

    注意

    请不要将环回伪接口 1Microsoft 环回适配器相混淆。 此方案不使用环回伪接口 1

  3. 运行以下命令,在主网络适配器上启用 weakhostreceiveweakhostsend

    netsh int ipv4 set int 6 weakhostreceive=enabled weakhostsend=enabled
    
  4. 运行以下命令,在环回适配器上启用 weakhostreceiveweakhostsend

    netsh int ipv4 set int 11 weakhostreceive=enabled weakhostsend=enabled
    
  5. 关闭与 vm-1的 Bastion 连接。

  6. 重复上述步骤以配置 vm-2。 将 IP 地址 10.0.0.100 替换为环回适配器的静态 IP 地址配置中的 10.0.0.200

下一步

在本文中,你已了解如何在 Azure 中的虚拟机上部署高可用性 DHCP 服务器。 你还了解了如何配置网络适配器,并在虚拟机上安装了 DHCP 角色。 需要进一步配置 DHCP 服务器才能从 Azure 虚拟机为本地客户端提供 DHCP 服务。 必须将本地网络上的 DHCP 中继代理配置为将 DHCP 请求转发到 Azure 中的 DHCP 服务器。 有关配置步骤,请参阅 DHCP 中继代理制造商的文档。