mcpField
A
azure-network-calculator

azure-network-calculator

github.com/julianobarbosa云与 DevOps1454 次安装2 天前更新
代码仓库

关于 azure-network-calculator

azure-network-calculator 是面向 Azure Hub-Spoke 网络规划的技能,可计算 CIDR、分配子网并生成 Terraform 代码。它提供网络规划、地址重叠检查和容量计算三种工作流。

主要功能

  1. 01规划 VNet 与子网布局
  2. 02检查 CIDR 地址重叠
  3. 03计算订阅与 VNet 容量
  4. 04生成 Terraform 网络代码
  5. 05应用组织自定义配置

适用场景

  1. 01为新资源组规划 VNet 和子网
  2. 02验证 CIDR 是否与现有分配冲突
  3. 03查看订阅或 VNet 的剩余容量

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill azure-network-calculator

安装后在 Claude Code 中输入/azure-network-calculator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

SubnetTemplates.md
TerraformSnippets.md
Workflows/
CalculateCapacity.md
PlanNetwork.md
ValidateCidr.md

详细介绍

自定义

执行前,请检查以下位置是否存在用户自定义内容: ~/.claude/skills/PAI/USER/SKILLCUSTOMIZATIONS/azure-network-calculator-skill/

如果此目录存在,请加载并应用其中的任何 PREFERENCES.md、配置或资源。这些内容优先于默认行为。如果目录不存在,请使用技能默认设置。

强制要求:语音通知(执行任何操作前必须完成)

调用此技能时,必须先发送此通知,再执行任何其他操作。

  1. 发送语音通知:

    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 &
    
  2. 输出文本通知:

    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默认网关
+2DNS 映射
+3DNS 映射
最后广播地址
命名约定
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.md4 种工作负载类型的子网布局
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