smithery/hbnu-nlplab

pnetlab_playbook

PNETLab 토폴로지 관리 도구 사용법

Installation

$ npx skills add smithery/hbnu-nlplab --skill pnetlab-playbook

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/hbnu-nlplab.

npx skills add smithery/hbnu-nlplab

Browse all from smithery/hbnu-nlplab

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,995 B
  • docs SUMMARY.md 68 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

PNETLab Tool Playbook

PNETLab 가상 네트워크 환경 관리 방법을 안내합니다.

1. 조회 작업

토폴로지 목록 조회

lab_manage("show_inventory")

특정 장비 상태 조회

lab_manage("get_status", {"device": "PE1"})

콘솔 접속 링크 조회

lab_manage("get_console_link", {"device": "PE1"})

2. 장비 관리

장비 추가

lab_manage("add_node", {
    "name": "NewRouter",
    "template": "vios",   # vios, csr1000v, xrv9k 등
    "left": 400,          # X 좌표
    "top": 300            # Y 좌표
})

장비 시작/중지

lab_manage("start_node", {"name": "NewRouter"})
lab_manage("stop_node", {"name": "NewRouter"})

장비 삭제 (⚠️ 주의)

# 먼저 장비 중지 권장
lab_manage("stop_node", {"name": "OldRouter"})
lab_manage("delete_node", {"name": "OldRouter"})

3. 네트워크(Cloud) 관리

네트워크 추가

lab_manage("add_network", {
    "name": "Mgmt-Cloud",
    "net_type": "pnet2",  # pnet2 = Cloud2
    "left": 300,
    "top": 150
})

네트워크 타입

net_type 설명
bridge 내부 브릿지
ovs Open vSwitch
pnet0 Cloud0 (NAT)
pnet1 Cloud1
pnet2 Cloud2 (관리용 권장)
pnet3~pnet9 Cloud3~9

네트워크 삭제

lab_manage("delete_network", {"name": "Mgmt-Cloud"})

4. 연결 관리

인터페이스 → 네트워크 연결

lab_manage("connect_interface", {
    "device_name": "Router1",
    "interface_id": 0,         # Gi0/0 = 0, Gi0/1 = 1 ...
    "network_name": "Cloud1"
})

인터페이스 연결 해제

lab_manage("disconnect_interface", {
    "device_name": "Router1",
    "interface_id": 0
})

5. Batfish 연동

NSO에서 설정 추출

lab_manage("export_configs", {
    "output_dir": "./batfish_snapshot",
    "devices": ["PE1", "PE2"]  # 선택적, 없으면 전체
})

Batfish 스냅샷 초기화

lab_manage("init_batfish", {
    "snapshot_path": "./batfish_snapshot"
})

6. 인터페이스 ID 매핑

interface_id 인터페이스
0 GigabitEthernet0/0
1 GigabitEthernet0/1
2 GigabitEthernet0/2
3 GigabitEthernet0/3

7. 흔한 오류

"Node not found"

→ labmanage("showinventory") 로 정확한 장비 이름 확인

"Network not found"

→ labmanage("showinventory") 로 네트워크 이름 확인

"PNETLab connection failed"

→ 환경변수 확인:

  • PNETLABBASEURL
  • PNETLAB_USER
  • PNETLAB_PASS

"Node not started"

→ labmanage("startnode", ...) 로 노드 시작 후 재시도