개요
PNETLAB을 구축하는 방법과
PNETLab에서 장비 이미지(에뮬레이터)들을 준비하고, 이를 이용하여 기본적인 랩 환경을 구성하는 방법에 대한 가이드를 작성해보려고 합니다!
PNETLab의 경우 eve-ng와 동일하게 UNETLab
프로젝트의 Fork 버전이므로 그 사용법이 매우 유사해요.
설치 환경
저는 Proxmox에서 PNETLab
을 구축할 것이기에
proxmox 환경 기준으로 설치 방법을 설명하도록 하겠습니다.
VMWare나 VirtualBox에서는 아래의 변환 과정 없이
프로그램에서 .ova
파일을 열어서 설치를 진행해주시면 됩니다!
PNETLab 설치하기
먼저 PNETLab 홈페이지에서 OVA 파일을 다운로드 받아주세요.
https://pnetlab.com/pages/download
세가지 링크 중에 어떤 링크를 누르셔도 상관은 없습니다.
다운로드가 완료된 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이 생성됩니다!
콘솔로 접근하면 로그인 창이 뜨고
로그인을 하게 되면 패스워드나 IP를 재설정하는 설정 창이 뜨게 됩니다.
운영 상황에 맞게 적절하게 입력해주시면 되고
설정이 끝나면 자동으로 재부팅이 됩니다.
다음과 같은 로그가 뜰텐데
IP는 운영 상황에 따라 다르게 표시될거에요.
해당 주소로 접근하시면 온라인 모드와 오프라인 모드 둘 중에 하나를 선택할 수 있습니다.
저는 오프라인 모드를 선택했어요.
자, 이제 콘솔로 넘어와서 다음 명령을 실행해줘요!
shutdown -P now
VM을 종료해주고
중첩 가상화 환경을 구성하기 위해서 VM의 CPU를 Host
타입으로 변경해주도록 할게요.
참고로 PNETLab은 eve-ng
와 달리 별도의 스토어가 존재해서 원하는 lab을 온라인에서 다운받아 실행할 수 있어요!
https://user.pnetlab.com/store/labs/view?box
오프라인 모드를 사용해도 사용에 문제는 없습니다!
랩에서 장비를 구동하려면 당연히 장비에 대한 이미지 파일이 필요하겠죠?
이는 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
를 클릭하여 넘겨주시면 됩니다.
PNETLab
은 iol
, 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
명령을 실행하면
자동으로 에뮬레이션 타입에 맞는 디렉토리로 장비 이미지가 설치됩니다!