关于 azure-network-calculator
azure-network-calculator 是面向 Azure Hub-Spoke 网络规划的技能,可计算 CIDR、分配子网并生成 Terraform 代码。它提供网络规划、地址重叠检查和容量计算三种工作流。
主要功能
- 01规划 VNet 与子网布局
- 02检查 CIDR 地址重叠
- 03计算订阅与 VNet 容量
- 04生成 Terraform 网络代码
- 05应用组织自定义配置
适用场景
- 01为新资源组规划 VNet 和子网
- 02验证 CIDR 是否与现有分配冲突
- 03查看订阅或 VNet 的剩余容量
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ julianobarbosa/ claude-code-skills --skill azure-network-calculator安装后在 Claude Code 中输入/azure-network-calculator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
SubnetTemplates.mdTerraformSnippets.mdWorkflows/CalculateCapacity.mdPlanNetwork.mdValidateCidr.md详细介绍
自定义
执行前,请检查以下位置是否存在用户自定义内容:
~/.claude/skills/PAI/USER/SKILLCUSTOMIZATIONS/azure-network-calculator-skill/
如果此目录存在,请加载并应用其中的任何 PREFERENCES.md、配置或资源。这些内容优先于默认行为。如果目录不存在,请使用技能默认设置。
强制要求:语音通知(执行任何操作前必须完成)
调用此技能时,必须先发送此通知,再执行任何其他操作。
-
发送语音通知:
curl -s -X POST http://localhost:8888/notify \ -H "Content-Type: application/json" \ -d '{"message": "Running the WORKFLOWNAME workflow in the azure-network-calculator-skill skill to ACTION"}' \ > /dev/null 2>&1 & -
输出文本通知:
Running the **WorkflowName** workflow in the **azure-network-calculator-skill** skill to ACTION...
此项为必需操作。技能调用后,请立即执行此 curl 命令。
azure-network-calculator-skill
自动执行 CIDR 计算、子网分配,以及为组织的 Azure 中心辐射型基础设施生成 Terraform 代码。
工作流路由
| 意图 | 工作流 | 描述 |
|---|---|---|
| 为新的资源组规划 VNet + 子网 | PlanNetwork | 使用 Terraform 设计完整的网络布局 |
| 检查 CIDR 是否与现有分配重叠 | ValidateCidr | 检查是否与主分配表中的地址重叠 |
| 查看订阅/VNet 中的剩余容量 | CalculateCapacity | 可用的 /20 和 /24 网段 |
如果用户意图不明确,请询问要运行哪个工作流。
快速参考
CIDR 层级
/13 (subscription) = 524,288 addresses = 128 x /20 VNets
/20 (VNet) = 4,096 addresses = 16 x /24 subnets
/24 (subnet) = 256 addresses = 251 usable (Azure reserves 5)
/22 (large subnet) = 1,024 addresses = 1,019 usable
/27 (gateway) = 32 addresses = 27 usable
/26 (firewall) = 64 addresses = 59 usable
VNet 索引公式
VNet[i] address = subscription_base + (i * 4096) # 4096 = 2^(32-20)
VNet[i] CIDR = calculated_address/20
每个 /13 订阅恰好包含 128 个 /20 VNet(索引 0-127)。
Azure 保留 IP(每个子网 5 个)
| 偏移量 | 用途 |
|---|---|
| +0 | 网络地址 |
| +1 | 默认网关 |
| +2 | DNS 映射 |
| +3 | DNS 映射 |
| 最后 | 广播地址 |
命名约定
snet-{purpose}-{rg}-{env}-{region}
vnet-{rg}-{env}-{region}
nsg-{purpose}-{rg}-{env}-{region}
natg-{rg}-{env}-{region}
其中,{rg} 是资源组名称(不含 rg-example- 前缀),{env} 是 dev/hlg/prd,{region} 是区域简称(例如 eus)。
上下文文件
| 文件 | 用途 |
|---|---|
| 你的 CIDR 主分配表(在此技能之外维护) | 所有 16 个订阅、已知 VNet、公式 |
| SubnetTemplates.md | 4 种工作负载类型的子网布局 |
| TerraformSnippets.md | 符合代码库模式的 AVM 模块 HCL |
注意事项
- Azure 会为每个子网保留 5 个 IP(网络、网关、DHCP、广播地址 + 1 个保留地址):/29 有 3 个可用地址,而不是 5 个;/28 有 11 个,而不是 13 个。
- 每个 NSG 的规则数上限:1000 条——ASG 可减少规则数量,但会引入资源组之间的耦合。
- VNet 对等互连不支持传递路由——中心辐射型设计需要将 Azure Firewall 或 NVA 设为明确的下一跳;假设中心网络可以充当路由器会导致设计失效。
- AKS 上的 IPv6 双栈:需要启用预览功能标志;子网计算必须分别明确规划 IPv4 和 IPv6 容量。
- 子网委派会锁定子网——子网委派给服务(例如 AKS、App Service)后,无法取消委派,除非重新创建子网。
评论
支持 Markdown