VMware NSX
고지사항: 이는 커뮤니티 유지 관리 오픈소스 프로젝트이며, VMware, Inc. 또는 Broadcom Inc.와 제휴, 보증 또는 후원 관계가 아닙니다. "VMware" 및 "NSX"는 Broadcom의 상표입니다. 소스 코드는 MIT 라이선스 하에 github.com/zw008/VMware-NSX에서 공개 감사 가능합니다.
VMware NSX 네트워킹 관리 — 세그먼트, 게이트웨이, NAT, 라우팅, IPAM을 위한 32개의 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 (감사/정책)
이 스킬이 하는 일
| 카테고리 | 도구 | 개수 | 읽기 / 쓰기 |
|---|---|---|---|
| 세그먼트 | 목록 조회, 세부 정보 조회, 생성, 업데이트, 삭제 | 5 | 2R / 3W |
| Tier-0 게이트웨이 | 목록 조회, 세부 정보 조회, BGP 이웃 조회, BGP 설정 | 4 | 3R / 1W |
| Tier-1 게이트웨이 | 목록 조회, 세부 정보 조회, 생성, 업데이트, 삭제 | 5 | 2R / 3W |
| NAT | 규칙 목록 조회, 규칙 생성, 규칙 삭제 | 3 | 1R / 2W |
| 정적 라우트 | 목록 조회, 생성, 삭제 | 3 | 1R / 2W |
| IP 풀 | 목록 조회, 사용량 조회, 풀 생성, 풀 삭제 | 4 | 2R / 2W |
| 패브릭 인벤토리 | 전송 영역, 전송 노드, 엣지 클러스터 | 3 | 3R / 0W |
| 상태 | NSX 알람, 전송 노드 상태, 엣지 클러스터 상태, 매니저 상태 | 4 | 4R / 0W |
| 문제 해결 | 논리적 포트 상태, VM-세그먼트 조회 | 2 | 2R / 0W |
총계: 33개 도구 (20개 읽기 전용 + 13개 쓰기)
빠른 설치
uv tool install vmware-nsx-mgmt
vmware-nsx doctor
이 스킬을 사용해야 하는 경우
- NSX 세그먼트 목록 조회, 생성 또는 수정 (오버레이 / VLAN 기반)
- Tier-0 / Tier-1 게이트웨이 생성 또는 관리
- NAT 규칙 설정 (SNAT, DNAT, reflexive)
- 정적 라우트 확인 또는 추가, BGP 이웃 확인
- IP 풀 및 서브넷 할당 관리
- NSX 알람, 전송 노드 상태, 엣지 클러스터 상태 확인
- 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, 라우팅, IPAM | vmware-nsx ← 이 스킬 |
| NSX 보안: DFW 규칙, 보안 그룹, IDS/IPS | vmware-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, Ingress | vmware-avi (uv tool install vmware-avi) |
| 감사 로그 조회 | vmware-policy (vmware-audit CLI) |
일반적인 워크플로우
앱 네트워크 생성 (세그먼트 + T1 게이트웨이 + NAT)
사전 점검 (맹목적 순차 실행이 아닌 판단 필요):
- 서브넷 충돌 확인:
inventory list-segments및networking list-ip-pools를 스캔하여 제안된 CIDR과 중복되는 부분이 없는지 확인하십시오. 서브넷이 중복되면 비대칭 라우팅 또는 무음 블랙홀링이 발생할 수 있습니다. NSX는 경고하지 않습니다. - 엣지 클러스터 용량: 선택한
--edge-cluster가 정상 상태인지(inventory list-edge-clusters+health edge-cluster-status <id>) 확인하고 SR(서비스 라우터) 한도에 도달하지 않았는지 확인하십시오. 완전히 로드된 엣지 클러스터는 T1 생성을 수락하지만 라우팅은 실패합니다. - T0 업링크: 상위 T0에 업스트림 BGP/정적 라우트가 이미 구성되어 있어야 합니다. 그렇지 않으면 SNAT가 내부적으로는 작동하지만 외부 트래픽이 나가지 않습니다.
- NAT IP:
--translatedIP는 T0에서 알린 라우팅 가능한 주소 풀에서 가져와야 합니다. 임의의 IP를 사용하면 반쪽짜리 네트워크가 생성됩니다. - 항상
--dry-run을 먼저 실행하십시오 — 세그먼트가 실행 중인 VM에 연결되면 삭제하려면 모든 포트를 분리해야 합니다.
단계:
vmware-nsx gateway create-tier1 app-t1 --name app-t1 --edge-cluster <ec-path> --tier0 <t0-path> --dry-run→ 검토 후 실제 실행vmware-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>- 종단 간 확인:
inventory list-segments,networking list-nat-rules app-t1및 새 세그먼트에 연결된 VM으로 테스트 - 실패 시: 연결 오류 또는 HTTP 오류가 단일 교육 라인을 출력합니다. (예: 403 → NSX 역할 권한 확인; 404 → 일치하는 목록 명령을 실행하여 정확한 ID 확인).
vmware-nsx doctor를 실행하여 연결 및 자격 증명을 확인하고, 수정한 후 실패한 단계를 다시 실행하십시오. 이전에 완료된 단계는 멱등성 PUT이므로 재적용해도 안전합니다.
네트워크 상태 확인
판단: 상태 엔드포인트를 단순히 나열하지 말고 상호 연관시키십시오. 아래 순서는 원인을 증상에 매핑합니다. 매니저가 다운되면 전송 노드도 다운된 것처럼 보일 수 있습니다(오탐). 위에서 아래로 해결하십시오.
vmware-nsx health manager-status— 어떤 매니저 노드가DEGRADED또는DOWN이면 여기서 중지하고 다운스트림 신호를 신뢰하기 전에 해결하십시오.vmware-nsx inventory list-transport-nodes후health transport-node-status <id>—UP상태가 아닌 노드에 대해 5분 이상 다운된 노드에 플래그를 지정하십시오. 일시적인 깜빡임은 정상입니다.vmware-nsx inventory list-edge-clusters후health edge-cluster-status <id>— SR 배치가 균형 잡혀 있는지 확인하십시오. 하나의 엣지가 SR의 80%를 보유하는 것은 단일 장애점입니다.vmware-nsx health alarms --severity HIGH(CRITICAL로 반복) — 심각도 필터는 정확히 일치하며 "이상"이 아닙니다.- vCenter에 대한 호스트 연결 끊김이 NSX 문제로 위장하는 경우가 많으므로
vmware-monitor로 vSphere 호스트 이벤트를 교차 확인하십시오.
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:
troubleshoot vm-segment my-vm-01→ 포트가 없으면 먼저 vSphere vNIC 바인딩을 확인하십시오. - 계층 1:
troubleshoot port-status <segment-id>→ 관리상 다운 또는 DFW 차단? DFW인 경우 vmware-nsx-security로 이동하십시오. - 계층 2:
inventory get-tier1 app-t1→ Tier-0 경로가 있고 경로 알림이 활성화되었습니까? 그렇지 않으면 T1↔T0 링크가 끊어진 것입니다. - 계층 3:
networking bgp-neighbors tier0-gw→ 모든 이웃이ESTABLISHED입니까? 플래핑 → 업스트림 문제 - 계층 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 토큰 (MCP 대비 ~8K) |
| 클라우드 모델 (Claude, GPT-4o) | 둘 다 | MCP는 구조화된 JSON I/O 제공 |
| 자동화된 파이프라인 | MCP | 타입 세이프 파라미터, 구조화된 출력 |
MCP 도구 (33개 — 20개 읽기, 13개 쓰기)
모든 MCP 도구는 선택적 target 파라미터를 받아 연결할 NSX Manager를 선택할 수 있습니다.
| 카테고리 | 도구 | 유형 | 설명 |
|---|---|---|---|
| 세그먼트 | list_segments | 읽기 | 모든 세그먼트를 유형, 서브넷, 관리 상태, 포트 수와 함께 나열 |
get_segment | 읽기 | 포트 및 서브넷 구성을 포함한 세그먼트 세부 정보 가져오기 | |
create_segment | 쓰기 | 서브넷 및 게이트웨이로 오버레이 또는 VLAN 세그먼트 생성 | |
update_segment | 쓰기 | 세그먼트 속성 업데이트 (이름, 서브넷, 게이트웨이 링크) | |
delete_segment | 쓰기 | 세그먼트 삭제 (연결된 포트 경고) | |
| Tier-0 GW | list_tier0_gateways | 읽기 | HA 모드 및 트랜짓 서브넷과 함께 Tier-0 게이트웨이 나열 |
get_tier0_gateway | 읽기 | Tier-0 세부 정보: HA 모드, 장애 조치, 트랜짓 서브넷 | |
get_bgp_neighbors | 읽기 | 상태, ASN, 접두사와 함께 BGP 이웃 세션 나열 | |
configure_tier0_bgp | 쓰기 | Tier-0에 BGP 설정 (로컬 AS, ECMP, SR 간 iBGP) | |
| Tier-1 GW | list_tier1_gateways | 읽기 | 연결된 Tier-0 및 경로 알림과 함께 Tier-1 게이트웨이 나열 |
get_tier1_gateway | 읽기 | Tier-1 세부 정보: Tier-0 링크, 경로 알림 | |
create_tier1_gateway | 쓰기 | 엣지 클러스터 및 Tier-0 링크로 Tier-1 게이트웨이 생성 | |
update_tier1_gateway | 쓰기 | Tier-1 속성 업데이트 (경로 알림, Tier-0 링크) | |
delete_tier1_gateway | 쓰기 | Tier-1 게이트웨이 삭제 (먼저 기본 로케일 서비스 제거) | |
| NAT | list_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 | 읽기 | 멤버 수 및 배포 유형으로 엣지 클러스터 나열 | |
| 상태 | list_nsx_alarms | 읽기 | 심각도별로 필터링된 활성 NSX 알람 나열 |
get_transport_node_status | 읽기 | 전송 노드 연결 및 구성 상태 | |
get_edge_cluster_status | 읽기 | 엣지 클러스터 멤버 상태 및 장애 조치 구성 | |
get_nsx_manager_status | 읽기 | NSX Manager 클러스터 상태 및 노드 역할 | |
| 문제 해결 | get_logical_port_status | 읽기 | 세그먼트의 모든 포트에 대한 실현 상태 |
get_segment_port_for_vm | 읽기 | 표시 이름으로 VM이 연결된 세그먼트 찾기 |
읽기/쓰기 구분: 20개의 도구는 읽기 전용이고, 12개는 상태를 수정합니다. 쓰기 도구는 명시적 파라미터가 필요하며 감사 로그에 기록됩니다. Dry-run 미리보기(--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 port-status <segment-id>
vmware-nsx troubleshoot vm-segment <vm-name>