mcpField
D
devops-network-calculator-for-azure

devops-network-calculator-for-azure

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

关于 devops-network-calculator-for-azure

这是一款离线 Azure 网络规划工具,可计算 CIDR、检查地址重叠、分析 VNet 和规划 AKS 网络。它仅依赖 Python 标准库,并可生成适用于 Terraform 的输出。

主要功能

  1. 01计算 CIDR 并拆分子网
  2. 02分析 VNet 利用率与空闲地址段
  3. 03检测地址重叠及 Azure 约束违规
  4. 04使用 first-fit 查找子网位置
  5. 05规划多环境地址分配
  6. 06生成 Terraform 适用输出

适用场景

  1. 01按主机数量估算子网大小
  2. 02部署前检查 VNet 配置
  3. 03规划多个环境的地址空间

安装

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

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

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

包含的文件

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

workflow.md
references/
aks-networking-guide.md
azure-constraints.md
cidr-calculation-guide.md
segmentation-patterns.md
scripts/
network-calc.py
templates/
multi-env-plan.md.tpl
nsg-rules-aks.tfvars.tpl
vnet-layout.tfvars.tpl

详细介绍

Azure 网络计算器

离线 Azure 网络规划工具。可计算 CIDR、检测重叠、分析 VNet 利用率、规划 AKS 网络,并生成适用于 Terraform 的输出。零外部依赖——仅使用 Python 标准库。

快速开始

# What CIDR do I need for 500 hosts?
python3 scripts/network-calc.py calculate --from-hosts 500

# Analyze current VNet
python3 scripts/network-calc.py analyze --from-tfvars terraform/terraform.tfvars

# Validate for overlaps (pre-commit compatible)
python3 scripts/network-calc.py validate --from-tfvars terraform/terraform.tfvars

# Find where to place a new subnet
python3 scripts/network-calc.py first-fit --vnet 10.50.0.0/20 \
  --subnets "10.50.0.0/22,10.50.4.0/22,10.50.8.0/26,10.50.9.0/24" --hosts 500

命令

命令用途参考
calculateCIDR 信息、主机规模估算、子网划分CIDR 指南
analyzeVNet 利用率、空闲地址分析CIDR 指南
validate重叠检测、Azure 约束检查Azure 约束
first-fit查找新子网的最佳位置CIDR 指南
plan-multi多环境 VNet 分配网段划分

项目背景

参考 VNet:10.50.0.0/20(4,096 个 IP,利用率 57.8%)

子网CIDR可用地址数
GatewaySubnet10.50.0.0/221,019
PublicSubnet10.50.4.0/221,019
AzureBastionSubnet10.50.8.0/2659
PrivateSubnet10.50.9.0/24251
可用地址段1,708

关键文件:terraform/terraform.tfvars、terraform/networking.tf、terraform/nsg.tf

Azure 快速参考

  • 每个子网保留 5 个 IP(.0、.1、.2、.3、广播地址)
  • **Bastion:**最小 /26 | **Gateway:**最小 /27 | **Firewall:**最小 /26
  • **每个 VNet 的子网数上限:**3,000 | **NSG 规则上限:**1,000
  • 完整参考:Azure 约束

参考指南

指南适合阅读时机
CIDR 计算指南子网规模估算、空闲地址分析、重叠检测
AKS 网络指南CNI 对比、Pod/服务 CIDR、节点规模估算
网段划分模式设计模式、反模式、决策矩阵
Azure 约束硬性限制、命名规则、保留地址

模板

模板用途
VNet 布局VNet 配置的 Terraform 变量块
AKS NSG 规则AKS 工作负载的 NSG 规则
多环境规划多环境规划输出

执行

请按照 ./workflow.md 中的说明操作。


注意事项

  • **Azure 每个子网保留 5 个 IP,而不是 2 个:**标准 /29 只能提供 3 个可用 IP,而不是 6 个。使用 /29 规划 AKS 节点池会限制扩容,并在扩容过程中触发 InsufficientFreeAddressesInSubnet。
  • **GatewaySubnet 是固定名称:**如果子网名称不是 GatewaySubnet,Azure 会拒绝关联 VPN Gateway。AzureBastionSubnet 和 AzureFirewallSubnet 也一样。名称拼错会在 apply 阶段报错,而不是 plan 阶段。
  • **AKS Azure CNI 会为每个 Pod 占用一个子网 IP:**一个有 30 个节点、每个节点运行 30 个 Pod 的集群需要 900 多个子网 IP,而不是 30 个。请先规划 --max-pods;之后切换 CNI 需要重建集群。
  • **first-fit 选择的是地址段最低的空闲位置,不是最合适的位置:**它可能会把 /24 放入 /22 空闲段,留下零碎且无法使用的 /25 地址段。对于长期使用的 VNet,请使用 plan-multi 并明确预留扩容地址段。
  • **与本地网络 CIDR 重叠,在对等互连前不会显现:**单独看,10.0.0.0/16 VNet 似乎没有问题,但 ExpressRoute 对等互连会使与企业网段重叠的路由被黑洞处理。请对照完整的企业 IPAM 数据进行验证。
  • **NSG 规则上限是总计 1,000 条,而非每个方向各 1,000 条:**入站、出站、默认和 Azure 自动规则共用此额度。请预留余量,否则扩容时会触及硬性上限。

评论

支持 Markdown