mcpField
D
devops-network-calculator-for-azure

devops-network-calculator-for-azure

github.com/julianobarbosaクラウド・DevOps1466 回インストール2 日前に更新
リポジトリ

devops-network-calculator-for-azure について

Azureネットワークをオフラインで計画するPythonツールです。CIDR計算、重複検出、VNet分析、AKSネットワーク計画に対応し、Python標準ライブラリのみでTerraform向け出力を生成します。

主な機能

  1. 01CIDR計算とサブネット分割
  2. 02VNetの使用状況と空き領域の分析
  3. 03重複とAzure制約違反の検出
  4. 04first-fitによるサブネット配置検索
  5. 05複数環境のアドレス割り当て計画
  6. 06Terraform向け出力の生成

活用シーン

  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 の比較、ポッド/サービスの CIDR、ノードのサイズ設定
セグメンテーションパターン設計パターン、アンチパターン、判断マトリックス
Azure の制約固定上限、命名規則、予約済みアドレス

テンプレート

テンプレート用途
VNet レイアウトVNet 構成用の Terraform 変数ブロック
AKS NSG ルールAKS ワークロード用の NSG ルール
複数環境の計画複数環境の計画出力

実行

./workflow.md の手順に従ってください。


注意点

  • Azure がサブネットごとに予約する IP アドレスは 2 個ではなく 5 個です: 標準の /29 で使用できる IP アドレスは 6 個ではなく 3 個です。/29 で AKS ノードプールのサイズを設定すると、スケーリングに必要な IP アドレスが不足し、スケール中に InsufficientFreeAddressesInSubnet が発生します。
  • GatewaySubnet は名前が固定です: サブネット名が正確に GatewaySubnet でないと、Azure は VPN Gateway のアタッチを拒否します。AzureBastionSubnet と AzureFirewallSubnet も同様です。スペルミスは plan ではなく apply 時にエラーになります。
  • AKS Azure CNI はポッドごとにサブネットの IP アドレスを 1 個消費します: 1 ノードあたり 30 ポッドの 30 ノードクラスターには、30 個ではなく 900 個以上のサブネット IP アドレスが必要です。まず --max-pods を計画してください。後から CNI を切り替えるには、クラスターの再構築が必要です。
  • first-fit が選ぶのは最も賢い空き領域ではなく、最も小さい空き領域です: /22 の空き領域に /24 を配置すると、分断されて使えない /25 の残りができます。長期運用する VNet では plan-multi を使用し、拡張用の空き領域を明示的に確保してください。
  • オンプレミスとの CIDR 重複は、ピアリングするまで表面化しません: 10.0.0.0/16 の VNet は単独では問題ないように見えますが、ExpressRoute のピアリングでは企業ネットワークの範囲と重なるルートがブラックホール化します。企業全体の IPAM と照合して検証してください。
  • NSG ルールの上限 1,000 は、方向ごとではなく合計です: インバウンド、アウトバウンド、既定のルール、Azure が自動設定するルールで上限を共有します。余裕を持たせないと、スケーリング時に上限に達します。

コメント