Community寫作與編輯github.com

zw008/VMware-NSX

VMware NSX 網路管理:區段、閘道、NAT、路由、IPAM — 32 個 MCP 工具

VMware-NSX 是什麼?

此技能提供一個專注於 VMware NSX-T / NSX 4.x Policy API 的綜合 MCP 工具集,用於軟體定義網路管理。它包含 33 個工具(20 個唯讀,13 個寫入),用於管理區段、Tier-0/Tier-1 閘道、NAT 規則、靜態路由、BGP、IP 位址池、傳輸區域/節點等網路結構,以及 NSX 警報和連線狀態等健康監控功能。此技能對需要自動化 NSX 網路任務(例如使用「建立應用程式網路」工作流程建立隔離的應用程式區段)的開發者或 AI 代理特別有用,該工作流程會逐步執行子網衝突檢查、Edge 叢集容量確認以及閘道/NAT 設定。它也支援多目標操作,允許透過 `--target` 參數管理多個 NSX Manager。該套件可作為基於 CLI 的工具 (`vmware-nsx`) 和 MCP 伺服器使用,為大型語言模型驅動的自動化、本地模型或 CI/CD 管道提供靈活性。

相容平台✓Claude Code~Codex CLI✓Cursor
npx skills add zw008/VMware-NSX

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

VMware NSX

免責聲明:這是一個社群維護的開源專案,與 VMware, Inc. 或 Broadcom Inc. 無關聯、未經其背書或贊助。「VMware」和「NSX」是 Broadcom 的商標。原始碼可在 github.com/zw008/VMware-NSX 以 MIT 授權公開審查。

VMware NSX 網路管理 — 32 個用於區段、閘道、NAT、路由和 IPAM 的 MCP 工具。

專注於 NSX-T / NSX 4.x Policy API 的領域特定網路技能。 配套技能:vmware-nsx-security (DFW/防火牆)、vmware-aiops (VM 生命週期)、vmware-monitor (唯讀監控)、vmware-storage (iSCSI/vSAN)、vmware-vks (Tanzu Kubernetes)、vmware-aria (指標/警示/容量)、vmware-avi (AVI/ALB/AKO)、vmware-harden (合規基線)。 | vmware-pilot (工作流程編排) | vmware-policy (稽核/政策)

此技能的功能

類別工具數量讀取 / 寫入
區段列出、取得詳細資訊、建立、更新、刪除52R / 3W
Tier-0 閘道列出、取得詳細資訊、BGP 鄰居、設定 BGP43R / 1W
Tier-1 閘道列出、取得詳細資訊、建立、更新、刪除52R / 3W
NAT列出規則、建立規則、刪除規則31R / 2W
靜態路由列出、建立、刪除31R / 2W
IP 位址池列出、取得使用量、建立池、刪除池42R / 2W
結構庫存傳輸區域、傳輸節點、Edge 叢集33R / 0W
健康狀態NSX 警報、傳輸節點狀態、Edge 叢集狀態、管理程式狀態44R / 0W
故障排除邏輯連接埠狀態、VM 對應區段查詢22R / 0W

總計:33 個工具(20 個唯讀 + 13 個寫入)

快速安裝

uv tool install vmware-nsx-mgmt
vmware-nsx doctor

何時使用此技能

  • 列出、建立或修改 NSX 區段(Overlay / VLAN 支援)
  • 建立或管理 Tier-0 / Tier-1 閘道
  • 設定 NAT 規則(SNAT、DNAT、Reflexive)
  • 檢視或新增靜態路由、檢查 BGP 鄰居
  • 管理 IP 位址池和子網路分配
  • 檢查 NSX 警報、傳輸節點健康狀態、Edge 叢集狀態
  • 查找 VM 連線到哪個區段
  • 邏輯連接埠狀態故障排除

使用配套技能處理:

  • 分散式防火牆、安全群組、DFW 規則、IDS/IPS → vmware-nsx-security
  • VM 生命週期、部署、客體操作 → vmware-aiops
  • vSphere 庫存、健康狀態、警報、事件 → vmware-monitor
  • 儲存:iSCSI、vSAN、資料儲存庫 → vmware-storage
  • Tanzu Kubernetes → vmware-vks
  • 負載平衡、AVI/ALB、AKO、Ingress → vmware-avi

相關技能 — 技能路由

使用者意圖推薦技能
NSX 網路:區段、閘道、NAT、路由、IPAMvmware-nsx ← 此技能
NSX 安全:DFW 規則、安全群組、IDS/IPSvmware-nsx-security
唯讀 vSphere 監控、警報、事件vmware-monitor
VM 生命週期、部署、客體操作vmware-aiops
儲存:iSCSI、vSAN、資料儲存庫vmware-storage
Tanzu Kubernetes (vSphere 8.x+)vmware-vks
Aria Ops:指標、警示、容量規劃vmware-aria
包含核准的多步驟工作流程vmware-pilot
合規基線(CIS / 等保 / PCI-DSS)、漂移偵測、LLM 修復建議vmware-harden (uv tool install vmware-harden)
負載平衡器、AVI、ALB、AKO、Ingressvmware-avi (uv tool install vmware-avi)
稽核日誌查詢vmware-policy (vmware-audit CLI)

常見工作流程

建立應用程式網路(區段 + T1 閘道 + NAT)

預檢事項(判斷,非盲目順序):

  • 子網路衝突檢查:掃描 inventory list-segments 和 networking list-ip-pools 以確認與提議的 CIDR 無重疊。子網路重疊會導致非對稱路由或靜默黑洞 — NSX 不會警告您。
  • Edge 叢集容量:確認選擇的 --edge-cluster 處於健康狀態(inventory list-edge-clusters + health edge-cluster-status <id>)且未達到 SR(服務路由器)限制。一個完全加載的 Edge 叢集會接受 T1 建立,但路由會失敗。
  • T0 上行鏈路:父 T0 必須已設定 BGP/靜態路由向上游 — 否則 SNAT 在內部有效,但外部流量無處可去。
  • NAT IP:--translated IP 必須來自 T0 宣告的可路由位址池;使用隨機 IP 會建立一個半可用的網路。
  • 始終先使用 --dry-run — 一旦區段連接到執行中的 VM,刪除它需要先分離每個連接埠。

步驟:

  1. vmware-nsx gateway create-tier1 app-t1 --name app-t1 --edge-cluster <ec-path> --tier0 <t0-path> --dry-run → 審查,然後實際執行
  2. vmware-nsx segment create app-web-seg --name app-web-seg --tz <tz-overlay-path> --subnet <gw-cidr>
  3. vmware-nsx nat create-rule --tier1 app-t1 --rule-id snat-1 --action SNAT --source <private-cidr> --translated <pub-ip>
  4. 端到端驗證:inventory list-segments、networking list-nat-rules app-t1,並使用連接到新區段的 VM 進行測試
  5. 失敗時:連線錯誤或 HTTP 錯誤會列印一行教學(例如 403 → 檢查 NSX 角色權限;404 → 執行對應的 list 命令以獲取確切 ID)。執行 vmware-nsx doctor 驗證連線和憑證,修復後重新執行失敗的步驟 — 先前完成的步驟是冪等 PUT 操作,可以安全地重新套用。

檢查網路健康狀態

判斷:不要只是列舉健康端點 — 需要關聯它們。下面的順序將原因對應到症狀:如果管理程式故障,傳輸節點看起來也會故障(偽陽性);從上到下修復。

  1. vmware-nsx health manager-status — 如果任何管理程式節點是 DEGRADED 或 DOWN,在此停止並先解決問題,然後再信任下游訊號
  2. vmware-nsx inventory list-transport-nodes 然後 health transport-node-status <id> 處理任何不是 UP 的節點 — 標記已中斷 ≥ 5 分鐘的節點;短暫波動是正常的
  3. vmware-nsx inventory list-edge-clusters 然後 health edge-cluster-status <id> — 確認 SR 放置是否平衡;一個 Edge 持有 80% 的 SR 是單點故障
  4. vmware-nsx health alarms --severity HIGH(重複使用 CRITICAL)— 嚴重性過濾器是精確匹配,而非「及以上」
  5. 與 vmware-monitor 交叉檢查 vSphere 主機事件 — 失去與 vCenter 連線的主機通常會偽裝成 NSX 問題

VM 連線故障排除

判斷:連線失敗發生在三層中的某一層。首先識別是哪一層,然後深入排查 — 不要隨機探測。

  • 第 1 層 — VM 到區段:VM 沒有區段、vNIC 錯誤或連接埠管理關閉 → troubleshoot vm-segment + troubleshoot port-status
  • 第 2 層 — 區段到閘道:區段未連接到 T1、T1 未連接到 T0 → inventory get-tier1 顯示無 Tier-0 路徑
  • 第 3 層 — 閘道到上游:T0 BGP/靜態缺失或 SNAT 未設定 → networking bgp-neighbors、networking list-nat-rules

步驟(一旦識別出故障層即停止):

  1. 第 1 層:troubleshoot vm-segment my-vm-01 → 如果沒有連接埠,首先檢查 vSphere vNIC 綁定
  2. 第 1 層:troubleshoot port-status <segment-id> → 管理關閉或 DFW 封鎖?如果是 DFW,跳轉到 vmware-nsx-security
  3. 第 2 層:inventory get-tier1 app-t1 → Tier-0 路徑是否存在且路由通告啟用?如果否,則 T1↔T0 連結中斷
  4. 第 3 層:networking bgp-neighbors tier0-gw → 所有鄰居 ESTABLISHED?抖動 → 上游問題
  5. 第 3 層:networking list-nat-rules app-t1 → SNAT 規則是否涵蓋來源 CIDR?輸入錯誤的 CIDR 是最常見的原因

多目標操作

所有命令都接受 --target <name>,以針對設定檔中的特定 NSX Manager 進行操作:

# 預設目標(config.yaml 中的第一個)
vmware-nsx inventory list-segments

# 特定目標
vmware-nsx inventory list-segments --target nsx-prod
vmware-nsx health alarms --target nsx-lab

使用模式

情境推薦原因
本地/小型模型 (Ollama, Qwen)CLI約 2K tokens vs 約 8K for MCP
雲端模型 (Claude, GPT-4o)任一MCP 提供結構化的 JSON I/O
自動化管道MCP型別安全參數、結構化輸出

MCP 工具(33 個 — 20 個讀取、13 個寫入)

所有 MCP 工具都接受可選的 target 參數來選擇要連線的 NSX Manager。

類別工具類型描述
區段list_segments讀取列出所有區段,包含類型、子網路、管理狀態、連接埠計數
get_segment讀取取得區段詳細資訊,包含連接埠和子網路設定
create_segment寫入建立 Overlay 或 VLAN 區段,包含子網路和閘道
update_segment寫入更新區段屬性(名稱、子網路、閘道連結)
delete_segment寫入刪除區段(在存在已連接的連接埠時發出警告)
Tier-0 閘道list_tier0_gateways讀取列出 Tier-0 閘道,包含 HA 模式和傳輸子網路
get_tier0_gateway讀取取得 Tier-0 詳細資訊:HA 模式、容錯移轉、傳輸子網路
get_bgp_neighbors讀取列出 BGP 鄰居工作階段,包含狀態、ASN、前綴
configure_tier0_bgp寫入在 Tier-0 上設定 BGP(本機 AS、ECMP、SR 間 iBGP)
Tier-1 閘道list_tier1_gateways讀取列出 Tier-1 閘道,包含連結的 Tier-0 和路由通告
get_tier1_gateway讀取取得 Tier-1 詳細資訊:Tier-0 連結、路由通告
create_tier1_gateway寫入建立 Tier-1 閘道,包含 Edge 叢集和 Tier-0 連結
update_tier1_gateway寫入更新 Tier-1 屬性(路由通告、Tier-0 連結)
delete_tier1_gateway寫入刪除 Tier-1 閘道(首先移除預設的 locale-service)
NATlist_nat_rules讀取列出 Tier-1 閘道上的 NAT 規則
create_nat_rule寫入在閘道上建立 SNAT/DNAT/Reflexive NAT 規則
delete_nat_rule寫入刪除 NAT 規則
靜態路由list_static_routes讀取列出 Tier-1 閘道上的靜態路由
create_static_route寫入新增靜態路由,包含網路和下一跳
delete_static_route寫入移除靜態路由
IP 位址池list_ip_pools讀取列出 IP 位址池,包含使用量摘要
get_ip_pool_usage讀取顯示池的分配使用量
create_ip_pool寫入建立新的 IP 位址池,包含分配範圍
delete_ip_pool寫入永久刪除 IP 位址池
結構list_transport_zones讀取列出傳輸區域,包含類型(OVERLAY/VLAN)
list_transport_nodes讀取列出傳輸節點,包含節點類型和狀態
list_edge_clusters讀取列出 Edge 叢集,包含成員計數和部署類型
健康狀態list_nsx_alarms讀取列出依嚴重性過濾的活動 NSX 警報
get_transport_node_status讀取傳輸節點連線和設定狀態
get_edge_cluster_status讀取Edge 叢集成員狀態和容錯移轉設定
get_nsx_manager_status讀取NSX Manager 叢集健康狀態和節點角色
故障排除get_logical_port_status讀取區段上所有連接埠的實現狀態
get_segment_port_for_vm讀取依顯示名稱查找 VM 連線到哪個區段

讀取/寫入分配:20 個工具是唯讀,12 個修改狀態。寫入工具需要明確參數並進行稽核記錄。乾執行預覽 (--dry-run) 是 CLI 功能;MCP 寫入工具直接執行。

CLI 快速參考

# 庫存(唯讀)
vmware-nsx inventory list-segments [--target <name>]
vmware-nsx inventory get-segment <segment-id>
vmware-nsx inventory list-tier0s
vmware-nsx inventory get-tier0 <tier0-id>
vmware-nsx inventory list-tier1s
vmware-nsx inventory get-tier1 <tier1-id>
vmware-nsx inventory list-transport-zones
vmware-nsx inventory list-transport-nodes
vmware-nsx inventory list-edge-clusters

# 網路(唯讀)
vmware-nsx networking list-nat-rules <tier1-id>
vmware-nsx networking bgp-neighbors <tier0-id>
vmware-nsx networking list-static-routes <tier1-id>
vmware-nsx networking list-ip-pools
vmware-nsx networking ip-pool-usage <pool-id>

# 區段管理(寫入)
vmware-nsx segment create <id> --name <name> --tz <tz-path> [--vlan '100' | '100-200'] [--subnet <gw-cidr>] [--dry-run]
vmware-nsx segment update <id> [--name <name>] [--subnet <gw-cidr>] [--dry-run]
vmware-nsx segment delete <id> [--dry-run]

# 閘道管理(寫入)
vmware-nsx gateway create-tier1 <id> --name <name> [--tier0 <t0-path>] [--edge-cluster <ec-path>] [--dry-run]
vmware-nsx gateway update-tier1 <id> [--name <name>] [--tier0 <t0-path>] [--advertise <types>] [--dry-run]
vmware-nsx gateway delete-tier1 <id> [--dry-run]
vmware-nsx gateway configure-tier0-bgp <tier0-id> --local-as <asn> [--ecmp/--no-ecmp] [--dry-run]

# NAT(寫入)
vmware-nsx nat create-rule --tier1 <id> --rule-id <id> --action SNAT --source <cidr> --translated <ip> [--dry-run]
vmware-nsx nat delete-rule --tier1 <id> --rule-id <id> [--dry-run]

# 靜態路由(寫入)
vmware-nsx route create-static --tier1 <id> --route-id <id> --network <cidr> --next-hop <ip> [--dry-run]
vmware-nsx route delete-static --tier1 <id> --route-id <id> [--dry-run]

# IP 位址池(寫入)
vmware-nsx ip-pool create <pool-id> --name <name> --start <ip> --end <ip> --cidr <cidr> [--gateway <ip>] [--dry-run]

# 健康狀態和故障排除(唯讀)
vmware-nsx health alarms [--severity CRITICAL]
vmware-nsx health transport-node-status <node-id>
vmware-nsx health edge-cluster-status <cluster-id>
vmware-nsx health manager-status
vmware-nsx troubleshoot vm-segment <vm-name>
vmware-nsx troubleshoot port-status <segment-id>

# 診斷
vmware-nsx doctor

環境設定

設定檔 ~/.vmware-nsx/config.yaml 包含連線詳細資訊:

default:
  nsx_manager: nsx01.example.com
  username: admin
  # 建議使用環境變數,不要使用純文字密碼
  password: "${NSX_PASSWORD}"
  # 或者:api_token: "${NSX_API_TOKEN}"
  verify_ssl: true

nsx-prod:
  nsx_manager: nsx-prod.example.com
  username: admin
  password: "${NSX_PROD_PASSWORD}"
  verify_ssl: true

nsx-lab:
  nsx_manager: nsx-lab.example.com
  username: admin
  password: "${NSX_LAB_PASSWORD}"
  verify_ssl: false  # 僅限實驗室環境

相關技能