在本文中,你将了解 Azure Virtual Network Manager 中的 IP 地址管理 (IPAM) 功能,以及它如何帮助你管理虚拟网络中的 IP 地址。 通过使用 Azure 虚拟网络管理器的 IP 地址管理,可以创建用于 IP 地址规划的池,自动将无类域间路由 (CIDR) 地址分配给 Azure 资源,并防止本地和多云环境中的地址空间冲突。
什么是 IP 地址管理 (IPAM)?
在 Azure 虚拟网络管理器中,IP 地址管理(IPAM)可帮助你使用 IP 地址池集中管理虚拟网络中的 IP 地址。
以下是 Azure Virtual Network Manager 中 IPAM 的一些主要功能:
创建用于 IP 地址规划的池。
自动将非重叠 CIDR 分配给 Azure 资源。
为特定需求创建保留 IP。
防止 Azure 地址空间与本地和云环境重叠。
监视池中的 IP 和 CIDR 使用情况和分配。
支持 IPv4 和 IPv6 地址池。
Azure Virtual Network Manager 中的 IPAM 的工作原理是什么?
Azure Virtual Network Manager 中的 IPAM 功能通过以下关键组件工作:
管理 IP 地址池
将 IP 地址分配到 Azure 资源
委派 IPAM 权限
简化资源创建
管理 IP 地址池
IPAM 通过创建具有地址空间和相应大小的池来帮助网络管理员规划和组织 IP 地址使用情况。
这些池充当 CIDR 组的容器,为特定网络目的实现逻辑分组。 可以通过将较大的池划分为更小、更易于管理的池来创建池的结构化层次结构。 此层次结构提供对网络的 IP 地址空间更精细的控制和整理。
IPAM 包括两种类型的池:
根池:在实例中创建的第一个池。 此池表示整个 IP 地址范围。
子池:根池或其他子池的子集。 可以在根池或其他子池中创建多个子池。 最多可以有七层池。
将 IP 地址分配到 Azure 资源
可以将 Azure 资源(例如虚拟网络)分配给具有 CIDR 的特定池。 此分配可帮助你确定当前正在使用哪个 CIDR。
您还可以将固定CIDR分配到池中。 此分配可用于占用 Azure 中当前未使用的 CIDR 或 IPAM 服务尚不支持的 Azure 资源的一部分。 移除或删除关联的资源时,分配的 CIDR 将释放回池。 此过程可确保 IP 空间的有效利用率和管理。
为 IPAM 委派权限
通过使用 IPAM,你可以将权限委托给其他用户来利用 IP 地址池。 此方法可确保在实现池分配的民主化的同时控制访问和管理。
这些权限允许用户查看他们有权访问的池,这有助于他们根据需要选择正确的池。
委托权限时,可向其他人授予查看与池关联的资源的使用情况统计信息和列表的能力。 在网络管理器中,可以访问完整的使用情况统计信息,包括:
池中的 IP 总数。
已分配的池空间的百分比。
此外,池及其相关资源的详细信息提供了 IP 使用情况的完整概述。 此信息有助于更好地进行资源管理和规划。
简化资源创建
创建支持 CIDR 的资源(如虚拟网络)时,系统会自动从所选池分配 CIDR。 此过程简化了资源创建过程。
系统确保自动分配的CIDR 不会在池中重叠。 此功能维护网络完整性并防止冲突。
跨多个区域管理 IP 地址空间
你可以将单个IPAM池与多个地区的虚拟网络关联。 这一能力简化了治理,并确保全球范围内CIDR分配的一致性。 Azure PowerShell 和 Azure CLI 支持将虚拟网络与不同区域的 IPAM 池关联。
在区域 A 中创建虚拟网络并将其与位于区域 B 中的 IPAM 池相关联
在以下示例中,在 区域 A 中创建一个虚拟网络,并将其与位于 区域 B 中的 IPAM 池相关联。
$ipamAllocation = '[{
"numberOfIpAddresses": 100,
"id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/networkManagers/<network-manager-name>/ipamPools/<ipam-pool-name-region-b>"
}]'
az network vnet create `
--name "<virtual-network-name>" `
--resource-group "<resource-group-name>" `
--ipam-allocations $ipamAllocation `
--location "Region A"
将区域 A 中的虚拟网络与位于区域 B 中的 IPAM 池相关联
在以下示例中,将 区域 A 中的现有虚拟网络与位于 区域 B 中的 IPAM 池相关联:
$ipamAllocation = '[{
"numberOfIpAddresses": 100,
"id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/networkManagers/<network-manager-name>/ipamPools/<ipam-pool-name-region-b>"
}]'
az network vnet update `
--name "<virtual-network-name>" `
--resource-group "<resource-group-name>" `
--ipam-allocations $ipamAllocation `
--location "Region A"
Azure Virtual Network Manager 中 IPAM 的权限要求
使用 IPAM 时,仅“IPAM 池用户”角色就足以委派。 如果出现权限问题,则还需要授予网络管理器读取访问权限,以确保在网络管理器范围内对 IP 地址池和虚拟网络具有完整可发现性。
如果没有此角色,只有“IPAM 池用户”角色的用户将看不到可用的池和虚拟网络。
有关详细信息,请参阅Azure 基于角色的访问控制(Azure RBAC)。