Profile picture

[PNETLAB] PNETLab 설치 및 ishare2로 장비 이미지 다운로드하기

JaehyoJJAng2025년 01월 05일

개요

PNETLAB을 구축하는 방법과

PNETLab에서 장비 이미지(에뮬레이터)들을 준비하고, 이를 이용하여 기본적인 랩 환경을 구성하는 방법에 대한 가이드를 작성해보려고 합니다!


PNETLab의 경우 eve-ng와 동일하게 UNETLab 프로젝트의 Fork 버전이므로 그 사용법이 매우 유사해요.


설치 환경

저는 Proxmox에서 PNETLab을 구축할 것이기에

proxmox 환경 기준으로 설치 방법을 설명하도록 하겠습니다.


VMWare나 VirtualBox에서는 아래의 변환 과정 없이

프로그램에서 .ova 파일을 열어서 설치를 진행해주시면 됩니다!


PNETLab 설치하기

먼저 PNETLab 홈페이지에서 OVA 파일을 다운로드 받아주세요.
https://pnetlab.com/pages/download


세가지 링크 중에 어떤 링크를 누르셔도 상관은 없습니다. Image


다운로드가 완료된 OVA 파일은 Proxmox의 /root로 옮겨주세요.
(다른 경로여도 상관 없어요)


tar 명령을 사용하여 압축을 해제해주세요!

tar -xvf <PNET_파일명>.ova # Sample
tar -xvf <PNET_4.2.10>.ova

압축을 해제하시면 다음과 같이 .vmdk, .ovf, .mf 파일이 나오게 됩니다.

-rw-r--r-- 1 64 64 2.0G Apr 29  2021 PNET_4.2.10-disk1.vmdk
-rw-r--r-- 1 64 64  135 Apr 29  2021 PNET_4.2.10.mf
-rw-r--r-- 1 64 64 6.1K Apr 29  2021 PNET_4.2.10.ovf

우리는 저 파일 모두 다 필요한건 아니고, PNET_4.2.10.ovf 이 파일만 필요해요!


이제 아래 명령어를 실행하여 .ovf 파일을 VM으로 import 해줍시다!

qm importovf <지정할_VM_ID> PNET_4.2.10.ovf <PVE_STORAGE> # Sample
qm importovf 113 PNET_4.2.10.ovf local-lvm

그러면 다음과 같이 새로운 VM이 생성됩니다!
Image


콘솔로 접근하면 로그인 창이 뜨고

로그인을 하게 되면 패스워드나 IP를 재설정하는 설정 창이 뜨게 됩니다.

운영 상황에 맞게 적절하게 입력해주시면 되고


설정이 끝나면 자동으로 재부팅이 됩니다.


다음과 같은 로그가 뜰텐데
Image
IP는 운영 상황에 따라 다르게 표시될거에요.


해당 주소로 접근하시면 온라인 모드와 오프라인 모드 둘 중에 하나를 선택할 수 있습니다.

저는 오프라인 모드를 선택했어요.


자, 이제 콘솔로 넘어와서 다음 명령을 실행해줘요!

shutdown -P now

VM을 종료해주고

중첩 가상화 환경을 구성하기 위해서 VM의 CPU를 Host 타입으로 변경해주도록 할게요.
Image


참고로 PNETLab은 eve-ng와 달리 별도의 스토어가 존재해서 원하는 lab을 온라인에서 다운받아 실행할 수 있어요!
https://user.pnetlab.com/store/labs/view?box
Image

오프라인 모드를 사용해도 사용에 문제는 없습니다!



랩에서 장비를 구동하려면 당연히 장비에 대한 이미지 파일이 필요하겠죠?

이는 eve-ng에서도 동일했어요.


장비 이미지를 등록하는 방법은 eve-ng와 동일해요.

필요한 장비 이미지를 https://github.com/hegdepavankumar/Cisco-Images-for-GNS3-and-EVE-NG에서 다운로드 하셔도 좋구요


아니면 ishare2 라는 프로젝트를 사용해서 다운로드 하는 방법도 있어요.

후자의 방법이 매우 편리하기 때문에 ishare2를 사용하시는 것을 추천드립니다!


ishare2 설치하기

PNETLab 서버에 원격 또는 콘솔로 접근하여 다음 명령어를 실행해주세요.

wget -O /usr/sbin/ishare2 https://raw.githubusercontent.com/ishare2-org/ishare2-cli/main/ishare2 && chmod +x /usr/sbin/ishare2 && ishare2

그러면 아래와 같이 설정 로그가 뜰텐데요

┌────────────────────────────────────────────────────────────────────────┐
│ Welcome to the ishare2 configuration wizard.                           │
│ - This wizard will guide you through the configuration process.        │
│ - Press Enter to accept the default value.                             │
│ - You can modify the configuration later by running: ishare2 config.   │
│ - Press Ctrl+C to cancel.                                              │
└────────────────────────────────────────────────────────────────────────┘
[+] Use aria2c for faster downloads? (default: no)
[+] (y/n):
[+] Check SSL certificate? (default: yes)
[+] (y/n):
[+] Choose the update channel.
 1) alpha
 2) beta
 3) main
[*] Enter the number of the branch you want to use (default: main):
[!] Using the default branch.
[+] Choose a mirror. (default: Rotate mirrors)
 1) Rotate mirrors (recommended)
 2) Google Drive mirror
 3) Onedrive mirror
 4) Custom mirror
[*] Enter the number of the mirror you want to use (default: 1):
[!] ishare2 will rotate among the available mirrors.
...

우리는 기본 설정을 사용할 것이기에 모두 다 ENTER를 클릭하여 넘겨주시면 됩니다.

PNETLabiol, qemu, docker 이미지를 지원해요.


장비 이미지 다운로드하기

이제 ishare2로 장비 이미지를 다운로드 해봅시다.

ishare2 search <다운로드할_장비_이미지_이름>

search 옵션으로 다운로드 할 장비를 검색해준 다음 해당 장비의 id를 pull 명령어로 받아오면 됩니다.


fortinet 이라는 장비를 검색해볼까요?

=============================
    Available QEMU images    
=============================
ID   NAME                              SIZE
--   ----                              ----
356  fortinet-5.2                      33.2 MiB
357  fortinet-FAC-v6-build0420         87.9 MiB
358  fortinet-FAD-v600-build0244       113.4 MiB
359  fortinet-FAD-v700-build0048       115.9 MiB
360  fortinet-FAD-v700-build0053       116.1 MiB
361  fortinet-FAZ-6-4-build2002        276.2 MiB
....
392  fortinet-FGT-v6.2.3               59.0 MiB
....

여러 버전이 쭈르륵 뜹니다.


저는 여기서 392 ID를 가진 장비를 다운로드 해볼겁니다!

ishare2 pull <type> <id> # Sample
ishare2 pull qemu 392

이렇게 명령을 실행하시면 해당 장비에 이미지를 다운로드 받을 수 있어요!


그리고 /opt/unetlab/addons/ 폴더 안에 QEMU, Docker, Dynamips

각각의 에뮬레이션 종류별로 디렉터리가 존재합니다.

  • QEMU 이미지 경로: /opt/unetlab/addons/qemu/
  • Docker 이미지는 /opt/unetlab/addons/docker/
  • Dynamips 이미지는 /opt/unetlab/addons/dynamips/

원하는 장비 이미지를 해당 폴더에 맞게 업로드 해주면 되는데

ishare2 pull 명령을 실행하면

자동으로 에뮬레이션 타입에 맞는 디렉토리로 장비 이미지가 설치됩니다!

    Tag -

Loading script...