PNETLab 토폴로지 관리 도구 사용법
PNETLab 가상 네트워크 환경 관리 방법을 안내합니다.
lab_manage("show_inventory")
lab_manage("get_status", {"device": "PE1"})
lab_manage("get_console_link", {"device": "PE1"})
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"})
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"})
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
})
lab_manage("export_configs", {
"output_dir": "./batfish_snapshot",
"devices": ["PE1", "PE2"] # 선택적, 없으면 전체
})
lab_manage("init_batfish", {
"snapshot_path": "./batfish_snapshot"
})
| interface_id | 인터페이스 |
|---|---|
| 0 | GigabitEthernet0/0 |
| 1 | GigabitEthernet0/1 |
| 2 | GigabitEthernet0/2 |
| 3 | GigabitEthernet0/3 |
→ lab_manage("show_inventory") 로 정확한 장비 이름 확인
→ lab_manage("show_inventory") 로 네트워크 이름 확인
→ 환경변수 확인:
PNETLAB_BASE_URLPNETLAB_USERPNETLAB_PASS→ lab_manage("start_node", ...) 로 노드 시작 후 재시도