VMware NSX
Avertissement : Ce projet open source est maintenu par la communauté et n'est pas affilié à, approuvé ou sponsorisé par VMware, Inc. ou Broadcom Inc. « VMware » et « NSX » sont des marques de Broadcom. Le code source est audit publiquement sur github.com/zw008/VMware-NSX sous licence MIT.
Gestion du réseau VMware NSX — 32 outils MCP pour les segments, les passerelles, le NAT, le routage et l'IPAM.
Compétence réseau spécialisée pour l'API Policy NSX-T / NSX 4.x. Compétences compagnes : vmware-nsx-security (DFW/pare-feu), vmware-aiops (cycle de vie des VM), vmware-monitor (supervision en lecture seule), vmware-storage (iSCSI/vSAN), vmware-vks (Tanzu Kubernetes), vmware-aria (métriques/alertes/capacité), vmware-avi (AVI/ALB/AKO), vmware-harden (bases de conformité). | vmware-pilot (orchestration de workflows) | vmware-policy (audit/politique)
Ce que fait cette compétence
| Catégorie | Outils | Nombre | Lecture / Écriture |
|---|---|---|---|
| Segments | lister, obtenir les détails, créer, mettre à jour, supprimer | 5 | 2R / 3E |
| Passerelles Tier-0 | lister, obtenir les détails, voisins BGP, configurer BGP | 4 | 3R / 1E |
| Passerelles Tier-1 | lister, obtenir les détails, créer, mettre à jour, supprimer | 5 | 2R / 3E |
| NAT | lister les règles, créer une règle, supprimer une règle | 3 | 1R / 2E |
| Routes statiques | lister, créer, supprimer | 3 | 1R / 2E |
| Pools IP | lister, obtenir l'utilisation, créer un pool, supprimer un pool | 4 | 2R / 2E |
| Inventaire de la structure | zones de transport, nœuds de transport, clusters Edge | 3 | 3R / 0E |
| Santé | alarmes NSX, statut des nœuds de transport, statut des clusters Edge, statut du gestionnaire | 4 | 4R / 0E |
| Dépannage | statut des ports logiques, recherche VM-vers-segment | 2 | 2R / 0E |
Total : 33 outils (20 en lecture seule + 13 en écriture)
Installation rapide
uv tool install vmware-nsx-mgmt
vmware-nsx doctor
Quand utiliser cette compétence
- Lister, créer ou modifier des segments NSX (overlay / à base de VLAN)
- Créer ou gérer des passerelles Tier-0 / Tier-1
- Configurer des règles NAT (SNAT, DNAT, réflexif)
- Afficher ou ajouter des routes statiques, vérifier les voisins BGP
- Gérer les pools IP et les allocations de sous-réseaux
- Vérifier les alarmes NSX, la santé des nœuds de transport, le statut des clusters Edge
- Trouver à quel segment une VM est connectée
- Diagnostiquer l'état des ports logiques
Utilisez les compétences compagnes pour :
- Pare-feu distribué, groupes de sécurité, règles DFW, IDS/IPS →
vmware-nsx-security - Cycle de vie des VM, déploiement, opérations invitées →
vmware-aiops - Inventaire vSphere, santé, alarmes, événements →
vmware-monitor - Stockage : iSCSI, vSAN, datastores →
vmware-storage - Tanzu Kubernetes →
vmware-vks - Équilibrage de charge, AVI/ALB, AKO, Ingress →
vmware-avi
Compétences associées — Aiguillage des compétences
| Intention de l'utilisateur | Compétence recommandée |
|---|---|
| Réseau NSX : segments, passerelles, NAT, routage, IPAM | vmware-nsx ← cette compétence |
| Sécurité NSX : règles DFW, groupes de sécurité, IDS/IPS | vmware-nsx-security |
| Supervision vSphere en lecture seule, alarmes, événements | vmware-monitor |
| Cycle de vie des VM, déploiement, opérations invitées | vmware-aiops |
| Stockage : iSCSI, vSAN, datastores | vmware-storage |
| Tanzu Kubernetes (vSphere 8.x+) | vmware-vks |
| Aria Ops : métriques, alertes, planification de capacité | vmware-aria |
| Workflows multi-étapes avec approbation | vmware-pilot |
| Bases de conformité (CIS / etc… / PCI-DSS), détection de dérive, conseiller de correction LLM | vmware-harden (uv tool install vmware-harden) |
| Équilibreur de charge, AVI, ALB, AKO, Ingress | vmware-avi (uv tool install vmware-avi) |
| Requête de journal d'audit | vmware-policy (vmware-audit CLI) |
Workflows courants
Créer un réseau applicatif (segment + passerelle T1 + NAT)
Pré-vol (jugement, pas une séquence aveugle) :
- Vérification de conflit de sous-réseau : parcourez
inventory list-segmentsetnetworking list-ip-poolspour toute superposition avec le CIDR proposé. Les sous-réseaux qui se chevauchent provoquent un routage asymétrique ou un blackholing silencieux — NSX ne vous avertira pas. - Capacité du cluster Edge : confirmez que le
--edge-clusterchoisi est sain (inventory list-edge-clusters+health edge-cluster-status <id>) et n'a pas atteint la limite de SR (Service Router). Un cluster Edge complètement chargé acceptera la création de la T1 mais le routage échouera. - Lien montant T0 : la T0 parente doit déjà être configurée avec BGP/routes statiques en amont — sinon le SNAT fonctionne en interne mais le trafic externe ne va nulle part.
- IP NAT : l'IP
--translateddoit provenir d'un pool d'adresses routables annoncé par la T0 ; utiliser une IP aléatoire crée un réseau qui ne fonctionne qu'à moitié. - Faites toujours
--dry-rund'abord — une fois qu'un segment est attaché à des VM en cours d'exécution, sa suppression nécessite de détacher chaque port.
Étapes :
vmware-nsx gateway create-tier1 app-t1 --name app-t1 --edge-cluster <ec-path> --tier0 <t0-path> --dry-run→ vérifiez, puis exécutez pour de vraivmware-nsx segment create app-web-seg --name app-web-seg --tz <tz-overlay-path> --subnet <gw-cidr>vmware-nsx nat create-rule --tier1 app-t1 --rule-id snat-1 --action SNAT --source <private-cidr> --translated <pub-ip>- Vérifiez de bout en bout :
inventory list-segments,networking list-nat-rules app-t1, ET testez avec une VM attachée au nouveau segment - En cas d'échec : une erreur de connexion ou une erreur HTTP affiche une ligne d'enseignement unique (ex. 403 → vérifiez les privilèges de rôle NSX ; 404 → exécutez la commande de liste correspondante pour l'ID exact). Exécutez
vmware-nsx doctorpour vérifier la connectivité et les identifiants, corrigez et relancez l'étape échouée — les étapes précédentes terminées sont des PUT idempotents et peuvent être réappliquées en toute sécurité.
Vérifier la santé du réseau
Jugement : n'énumérez pas seulement les points de terminaison de santé — corrélez-les. L'ordre ci-dessous mappe la cause au symptôme : si le gestionnaire est arrêté, les nœuds de transport sembleront également arrêtés (faux positif) ; corrigez du haut vers le bas.
vmware-nsx health manager-status— si un nœud gestionnaire estDEGRADEDouDOWN, arrêtez-vous ici et résolvez avant de faire confiance aux signaux en avalvmware-nsx inventory list-transport-nodespuishealth transport-node-status <id>pour tout nœud qui n'est pasUP— signalez les nœuds arrêtés depuis ≥ 5 min ; les fluctuations transitoires sont normalesvmware-nsx inventory list-edge-clusterspuishealth edge-cluster-status <id>— vérifiez que le placement des SR est équilibré ; un seul Edge hébergeant 80% des SR est un point de défaillance uniquevmware-nsx health alarms --severity HIGH(répétez avecCRITICAL) — le filtre de sévérité est une correspondance exacte, pas « et au-dessus »- Recoupez avec
vmware-monitorpour les événements de l'hôte vSphere — un hôte qui perd la connexion à vCenter se fait souvent passer pour un problème NSX
Diagnostiquer la connectivité d'une VM
Jugement : les échecs de connectivité se produisent à l'un des trois niveaux. Identifiez d'abord le niveau, puis approfondissez — ne sondez pas au hasard.
- Niveau 1 — VM-vers-segment : la VM n'a pas de segment, mauvais vNIC, ou port en état administratif down →
troubleshoot vm-segment+troubleshoot port-status - Niveau 2 — segment-vers-passerelle : le segment n'est pas attaché à la T1, la T1 n'est pas connectée à la T0 →
inventory get-tier1ne montre aucun chemin Tier-0 - Niveau 3 — passerelle-vers-amont : BGP/route statique de la T0 manquante ou SNAT non configuré →
networking bgp-neighbors,networking list-nat-rules
Étapes (arrêtez dès que le niveau défaillant est identifié) :
- Niveau 1 :
troubleshoot vm-segment my-vm-01→ si pas de port, vérifiez d'abord la liaison vNIC vSphere - Niveau 1 :
troubleshoot port-status <segment-id>→ état administratif down ou bloqué par DFW ? Si DFW, passez à vmware-nsx-security - Niveau 2 :
inventory get-tier1 app-t1→ chemin Tier-0 présent et annonce de route activée ? Sinon, le lien T1↔T0 est rompu - Niveau 3 :
networking bgp-neighbors tier0-gw→ tous les voisinsESTABLISHED? Flapping → problème amont - Niveau 3 :
networking list-nat-rules app-t1→ la règle SNAT couvre le CIDR source ? Un CIDR mal saisi est la cause la plus courante
Opérations multi-cibles
Toutes les commandes acceptent --target <name> pour opérer sur un gestionnaire NSX spécifique depuis votre configuration :
# Cible par défaut (première dans config.yaml)
vmware-nsx inventory list-segments
# Cible spécifique
vmware-nsx inventory list-segments --target nsx-prod
vmware-nsx health alarms --target nsx-lab
Mode d'utilisation
| Scénario | Recommandé | Pourquoi |
|---|---|---|
| Modèles locaux/ petits (Ollama, Qwen) | CLI | ~2K tokens contre ~8K pour MCP |
| Modèles cloud (Claude, GPT-4o) | Les deux | MCP donne une I/O JSON structurée |
| Pipelines automatisés | MCP | Paramètres typés, sortie structurée |
Outils MCP (33 — 20 lecture, 13 écriture)
Tous les outils MCP acceptent un paramètre optionnel target pour sélectionner le gestionnaire NSX auquel se connecter.
| Catégorie | Outil | Type | Description |
|---|---|---|---|
| Segment | list_segments | Lecture | Lister tous les segments avec type, sous-réseau, état administratif, nombre de ports |
get_segment | Lecture | Obtenir les détails du segment, y compris les ports et la configuration de sous-réseau | |
create_segment | Écriture | Créer un segment overlay ou VLAN avec sous-réseau et passerelle | |
update_segment | Écriture | Mettre à jour les propriétés du segment (nom, sous-réseaux, lien de passerelle) | |
delete_segment | Écriture | Supprimer un segment (avertit en cas de ports connectés) | |
| Passerelle T-0 | list_tier0_gateways | Lecture | Lister les passerelles Tier-0 avec mode HA et sous-réseaux de transit |
get_tier0_gateway | Lecture | Obtenir les détails de la Tier-0 : mode HA, basculement, sous-réseaux de transit | |
get_bgp_neighbors | Lecture | Lister les sessions de voisins BGP avec état, ASN, préfixes | |
configure_tier0_bgp | Écriture | Configurer BGP (AS local, ECMP, iBGP inter-SR) sur une Tier-0 | |
| Passerelle T-1 | list_tier1_gateways | Lecture | Lister les passerelles Tier-1 avec la Tier-0 liée et l'annonce de route |
get_tier1_gateway | Lecture | Obtenir les détails de la Tier-1 : lien Tier-0, annonce de route | |
create_tier1_gateway | Écriture | Créer une passerelle Tier-1 avec cluster Edge et lien Tier-0 | |
update_tier1_gateway | Écriture | Mettre à jour les propriétés de la Tier-1 (annonce de route, lien Tier-0) | |
delete_tier1_gateway | Écriture | Supprimer une passerelle Tier-1 (supprime d'abord le locale-service par défaut) | |
| NAT | list_nat_rules | Lecture | Lister les règles NAT sur une passerelle Tier-1 |
create_nat_rule | Écriture | Créer une règle NAT SNAT/DNAT/réflexif sur une passerelle | |
delete_nat_rule | Écriture | Supprimer une règle NAT | |
| Routes statiques | list_static_routes | Lecture | Lister les routes statiques sur une passerelle Tier-1 |
create_static_route | Écriture | Ajouter une route statique avec réseau et prochain saut | |
delete_static_route | Écriture | Supprimer une route statique | |
| Pools IP | list_ip_pools | Lecture | Lister les pools IP avec résumé d'utilisation |
get_ip_pool_usage | Lecture | Afficher l'utilisation des allocations pour un pool | |
create_ip_pool | Écriture | Créer un nouveau pool d'adresses IP avec plages d'allocation | |
delete_ip_pool | Écriture | Supprimer définitivement un pool d'adresses IP | |
| Structure | list_transport_zones | Lecture | Lister les zones de transport avec type (OVERLAY/VLAN) |
list_transport_nodes | Lecture | Lister les nœuds de transport avec type de nœud et état | |
list_edge_clusters | Lecture | Lister les clusters Edge avec nombre de membres et type de déploiement | |
| Santé | list_nsx_alarms | Lecture | Lister les alarmes NSX actives filtrées par sévérité |
get_transport_node_status | Lecture | Connectivité du nœud de transport et état de la configuration | |
get_edge_cluster_status | Lecture | État des membres du cluster Edge et configuration de basculement | |
get_nsx_manager_status | Lecture | Santé du cluster NSX Manager et rôles des nœuds | |
| Dépannage | get_logical_port_status | Lecture | État réalisé de tous les ports sur un segment |
get_segment_port_for_vm | Lecture | Trouver à quel segment une VM est connectée par son nom d'affichage |
Répartition lecture/écriture : 20 outils sont en lecture seule, 12 modifient l'état. Les outils d'écriture nécessitent des paramètres explicites et sont enregistrés dans les journaux d'audit. L'aperçu Dry-run (--dry-run) est une fonctionnalité CLI ; les outils MCP d'écriture s'exécutent directement.
Référence rapide CLI
# Inventaire (lecture seule)
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
# Réseau (lecture seule)
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>
# Gestion des segments (écriture)
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]
# Gestion des passerelles (écriture)
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 (écriture)
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]
# Routes statiques (écriture)
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]
# Pools IP (écriture)
vmware-nsx ip-pool create <pool-id> --name <name> --start <ip> --end <ip> --cidr <cidr> [--gateway <ip>] [--dry-run]
# Santé et dépannage (lecture seule)
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>
Configuration
Créez ~/.config/vmware-nsx/config.yaml :
targets:
default: nsx-prod
names:
nsx-prod:
host: nsx-manager.prod.example.com
username: admin
password: ${NSX_PASSWORD}
verify_ssl: true
nsx-lab:
host: 10.0.1.10
username: admin
password: ${NSX_LAB_PASSWORD}
verify_ssl: false
Pour utiliser
--target <name>, listez simplement plusieurs entrées soustargets.names. La cibledefaultest utilisée si--targetest omis.