你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

IP 寻址计划

组织计划在 Azure 中进行 IP 寻址非常重要。 计划可确保 IP 地址空间在本地位置和 Azure 区域中不重叠。

设计注意事项:

  • 本地和 Azure 区域中重叠的 IP 地址空间会导致重大的争用挑战。

  • Azure VPN 网关可以通过网络地址转换 (NAT) 功能连接具有重叠 IP 地址空间的重叠本地站点。 此功能在 Azure 虚拟 WAN 和独立 Azure VPN 网关中正式发布

    {此图显示 NAT 如何与 VPN 网关配合使用。}

  • 可以在创建虚拟网络后添加地址空间。 如果虚拟网络已通过虚拟网络对等互连连接到另一个虚拟网络,则此过程不需要中断。 相反,每个远程对等互连都需要在网络空间发生变化后执行重新同步操作

  • Azure 会保留每个子网中的 5 个 IP 地址。 在调整虚拟网络和包含的子网大小时,请考虑这些地址。

  • 某些 Azure 服务需要专用子网。 这些服务包括 Azure 防火墙和 Azure VPN 网关。

  • 可以将子网委派给某些服务,以在子网中创建服务实例。

设计建议:

  • 提前计划跨 Azure 区域和本地位置的非重叠 IP 地址空间。

  • 使用专用 Internet 地址分配的 IP 地址(称为 RFC 1918 地址)。

  • 请勿使用以下地址范围:

    • 224.0.0.0/4(多播)
    • 255.255.255.255/32(广播)
    • 127.0.0.0/8(环回)
    • 169.254.0.0/16(本地链路)
    • 168.63.129.16/32(内部 DNS)
  • 对于专用 IP 地址可用性有限的环境,请考虑使用 IPv6。 虚拟网络可以是纯 IPv4,也可以是双堆叠 IPv4+IPv6

    此图显示 IPv4 和 IPv6 双堆栈。

  • 请勿创建像 /16 这样的大型虚拟网络。 它可确保不会浪费 IP 地址空间。 在使用无类别域间路由 (CIDR) 子网定义时,支持的最小 IPv4 子网为 /29,最大为 /2。 IPv6 子网的大小必须正好为 /64

  • 请勿在没有提前计划所需地址空间的情况下创建虚拟网络。

  • 请勿将公共 IP 地址用于虚拟网络,尤其是公共 IP 地址不属于你的组织的情况下。

  • 考虑要考虑的服务,有一些具有保留 IP(IP 地址)的服务,例如 使用 CNI 网络的 AKS

  • 使用不可路由的登陆区域辐射虚拟网络Azure 专用链接服务来防止 IPv4 耗尽。

IPv6 注意事项

越来越多的组织在其环境中采用 IPv6。 这种采用由公共 IPv4 空间耗尽、专用 IPv4 稀缺性(尤其是在大规模网络中)驱动,需要提供与仅限 IPv6 的客户端的连接。 没有采用 IPv6 的通用方法。 但是,在规划 IPv6 并在现有 Azure 网络中实施 IPv6 时,可以遵循最佳做法。

适用于 Azure 的 Microsoft 云采用框架可帮助你了解在云中创建系统时要考虑的注意事项。 若要了解设计可持续系统的体系结构最佳做法,请参阅 Azure 登陆区域设计原则。 有关云体系结构的深入建议和最佳做法,包括参考体系结构部署、关系图和指南,请参阅 IPv6 的体系结构中心指南。

设计注意事项:

  • 逐步采用 IPv6。 根据业务需求,根据需要实施 IPv6。 请记住,只要必要,IPv4 和 IPv6 就可以共存。

  • 在应用程序依赖于基础结构即服务(IaaS)服务(IaaS)服务的情况下,可以完全支持虚拟机(VM),实现对 IPv4 和 IPv6 的本机端到端使用。 此配置可避免转换复杂情况,并向服务器和应用程序提供最多的信息。

    可以使用 IPv6 地址部署面向 Internet 的基本 SKU Azure 负载均衡器。 此配置允许通过负载均衡器在公共 Internet 与 Azure VM 之间建立本机端到端 IPv6 连接。 此方法还有助于在公共 Internet 上的 VM 与启用了 IPv6 的客户端之间建立本机端到端出站连接。 请注意,此方法要求路径中的每个设备处理 IPv6 流量。

    本机端到端方法最适用于直接服务器到服务器或客户端到服务器通信。 它不适用于大多数 Web 服务和应用程序,这些服务通常受防火墙、Web 应用程序防火墙或反向代理保护。

  • 使用第三方服务、平台即服务(PaaS)服务和后端解决方案组合的一些复杂部署和应用程序可能不支持本机 IPv6。 在这些情况下,需要使用 NAT/NAT64 或 IPv6 代理解决方案来启用 IPv6 和 IPv4 之间的通信。

  • 当应用程序体系结构的复杂性或其他因素(如训练成本)被视为重要时,你可能想要在后端继续使用仅限 IPv4 的基础结构,并部署第三方网络虚拟设备(NVA)双堆栈 IPv4/IPv6 网关进行服务交付。

    使用 NVA 的典型部署可能如下所示:

    此图显示了提供对仅限 IPv4 后端的访问的双堆栈 IPv4/IPv6 网关。

设计建议:

下面是更深入地了解典型体系结构的外观:

显示 IPv4/IPv6 负载均衡器的示意图,该负载均衡器提供对仅限 IPv4 的后端的访问权限。

  • 使用灵活业务流程(VMSS Flex)在虚拟机规模集中部署 NVA,使其具有复原能力,并通过具有公共 IP 地址前端的 Azure 负载均衡器将其公开到 Internet。

    NVA 接受 IPv4 和 IPv6 流量,并将其转换为仅限 IPv4 的流量,以访问应用程序子网中的应用程序。 此方法可降低应用程序团队的复杂性,并减少攻击面。

  • 部署 Azure Front Door 以提供 Web 流量的全局路由。

    Azure Front Door 功能包括代理 IPv6 客户端请求和发往仅限 IPv4 的后端的流量,如下所示:

    显示 Azure Front Door 提供对仅限 IPv4 后端的访问权限的关系图。

这些是 NVA 方法与 Azure Front Door 方法之间的主要区别:

  • NVA 是客户管理的,可在 OSI 模型的第 4 层工作,并且可以部署在应用程序所在的同一 Azure 虚拟网络中,并具有专用和公共接口。
  • Azure Front Door 是一项全球 Azure PaaS 服务,在第 7 层(HTTP/HTTPS)运行。 应用程序后端是一种面向 Internet 的服务,可以锁定以仅接受来自 Azure Front Door 的流量。

在复杂环境中,可以使用这两者的组合。 NVA 在区域部署中使用。 Azure Front Door 用于将流量路由到不同 Azure 区域或其他面向 Internet 的位置的一个或多个区域部署。 若要确定最佳解决方案,建议查看 Azure Front Door 的功能和产品文档。

IPv6 虚拟网络 CIDR 块:

  • 在订阅中的现有 Azure 部署中创建新的虚拟网络时,可以关联单个 IPv6 无类域间路由(CIDR)块。 IPv6 的子网大小必须为 /64。 如果决定将子网路由到本地网络,则使用此大小可确保将来的兼容性。 某些路由器只能接受 /64 IPv6 路由。
  • 如果现有虚拟网络仅支持 IPv4,并且子网中的资源配置为仅使用 IPv4,则可以为虚拟网络和资源启用 IPv6 支持。 虚拟网络可以在双堆栈模式下运行,使资源能够通过 IPv4、IPv6 或两者进行通信。 IPv4 和 IPv6 通信彼此独立。
  • 无法对虚拟网络和子网禁用 IPv4 支持。 IPv4 是 Azure 虚拟网络的默认 IP 寻址系统。
  • 将 IPv6 CIDR 块与虚拟网络和子网或 BYOIP IPv6 相关联。 CIDR 表示法是表示 IP 地址及其网络掩码的方法。 这些地址的格式如下所示:
    • 单个 IPv4 地址为 32 位,四组包含多达三个十进制数字。 例如 10.0.1.0
    • IPv4 CIDR 块包含四组多达三个十进制数字,从 0 到 255,用句点分隔,后跟斜杠和 0 到 32 之间的数字。 例如 10.0.0.0/16
    • 单个 IPv6 地址为 128 位。 它有八组四个十六进制数字。 例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334
    • IPv6 CIDR 块有四组多达四个十六进制数字,用冒号分隔,后跟双冒号,然后是斜杠和 1 到 128 之间的数字。 例如 2001:db8:1234:1a00::/64
  • 更新路由表以路由 IPv6 流量。 对于公共流量,请创建一个路由,用于将所有 IPv6 流量从子网路由到 VPN 网关 或 Azure ExpressRoute 网关。
  • 更新安全组规则以包含 IPv6 地址的规则。 这样做可使 IPv6 流量流向实例和流出实例。 如果有网络安全组规则来控制传入和传出子网的流量流,则必须包含 IPv6 流量规则。
  • 如果实例类型不支持 IPv6,请使用双堆栈或部署 NVA,如前所述,该 NVA 从 IPv4 转换为 IPv6。

IP 地址管理 (IPAM) 工具

使用 IPAM 工具可以帮助你在 Azure 中规划 IP 地址,因为它提供集中管理和可见性,防止 IP 地址空间中的重叠和冲突。 本部分将指导你完成采用 IPAM 工具时的基本注意事项和建议。

设计注意事项:

许多 IPAM 工具都可供你考虑,具体取决于你的要求和组织的规模。 这些选项从拥有基于 Excel 的基本清单到开源社区驱动解决方案或具有高级功能和支持的综合企业产品。

  • 评估要实现的 IPAM 工具时,请考虑这些因素:

    • 组织所需的最低功能
    • 总拥有成本(TCO),包括许可和持续维护
    • 审核线索、日志记录和基于角色的访问控制
    • 通过 Microsoft Entra ID 进行身份验证和授权
    • 可通过 API 访问
    • 与其他网络管理工具和系统的集成
    • 活动社区支持或软件提供商的支持级别
  • 请考虑评估开源 IPAM 工具,例如 Azure IPAM。 Azure IPAM 是基于 Azure 平台构建的轻型解决方案。 它会自动发现 Azure 租户中的 IP 地址利用率,并使你能够通过集中式 UI 或 RESTful API 管理所有 IP 地址。

  • 请考虑组织运营模型和 IPAM 工具的所有权。 实现 IPAM 工具的目的是简化为应用程序团队请求新 IP 地址空间的过程,而无需依赖项和瓶颈。

  • IPAM 工具功能的重要组成部分是清点 IP 地址空间使用情况并按逻辑组织它。

设计建议:

  • 保留非重叠 IP 地址空间的过程应支持根据单个应用程序登陆区域的需求请求不同的大小。

    • 例如,可以采用 T 恤大小调整,以便应用程序团队轻松描述其需求:
      • 小型 - /24 - 256 个 IP 地址
      • 中 - /22 - 1,024 个 IP 地址
      • 大型 - /20 4,096 个 IP 地址
  • IPAM 工具应具有 API 来保留不重叠的 IP 地址空间,以支持基础结构即代码 (IaC) 方法。 此功能对于将 IPAM 无缝集成到订阅自动售货过程也至关重要,从而降低错误风险和手动干预的需求。

    • IaC 方法的一个示例是 Bicep 及其部署脚本功能或 Terraform 数据源,用于从 IPAM API 动态提取数据。
  • 根据 Azure 区域和工作负荷原型构建 IP 地址空间,确保网络清单干净且可跟踪,从而为 IP 地址空间创建系统安排。

  • 工作负荷的停用过程应包括删除不再使用的 IP 地址空间,这些空间以后可以重新用于即将推出的新工作负载,从而提升资源利用率。