Profile picture

[EVE-NG] Proxmox로 EVE-NG 서버 구축 및 장비 이미지 생성

JaehyoJJAng2024년 06월 01일

▶ 개요

Proxmox 환경에서 EVE-NG 서버를 구축하는 방법과 장비 이미지를 어떻게 import 하는지 알아보도록 하자.


▶ ISO 다운로드

eve-ng 홈페이지에서 Free EVE Community Edition ISO 이미지를 다운로드 받자. image


▶ ISO 이미지 업로드

Proxmox 웹 인터페이스로 이동하여 ISO 이미지를 업로드하자.
image


▶ Nested Virtualization

Proxmox VM 내부에서도 가상화를 지원해줄 수 있도록 Proxmox 서버에 들어가서 설정 해주자.

먼저 Proxmox 서버 접속 후, 내부 가상화 활성화 여부를 확인하자.

cat /sys/module/kvm_amd/parameters/nested

위 파일을 읽었을 때 N이 출력된다면 비활성화 상태이므로, 아래와 같이 활성화 시켜주자.

# Intel CPU의 경우
echo "options kvm-intel nested=Y" | tee /etc/modprobe.d/kvm-intel.conf

# AMD CPU의 경우
echo "options kvm-amdnested=1" | tee /etc/modprobe.d/kvm-amd.conf

# 커널 모듈 reload
modprobe -r kvm_intel # INTEL일 경우
modprobe -r kvm_amd   # AMD일 경우

설정 후 proxmox 시스템을 재시작하도록 하자.


▶ 장비 이미지 다운로드

필자가 eve-ng를 처음 썼을 당시에는 장비 이미지 구하느라 하루를 다 까먹고 그랬는데,

이제는 장비 import에 필요한 파일들을 github에 올려주는 고마운 사람이 있어

장비 이미지 파일 찾는데 걸리는 시간을 매우 단축할 수 있다.

아래 깃허브 주소로 들어가서 import 하고자 하는 장비를 찾아 다운로드 받으면 된다.
https://github.com/hegdepavankumar/Cisco-Images-for-GNS3-and-EVE-NG d

▶ L2 이미지 추가

이제 eve-ng 설치와 필요한 장비 이미지를 다운로드 작업을 모두 완료했다고 가정하고

L2, L3, 방화벽 장비등을 추가해도록 하겠다.


1. 디렉토리 생성

mkdir -p /opt/unetlab/addons/qemu/viosl2-adventerprisek9-m.SSA.high_iron_20180619

2. 로컬에 있는 장비 파일을 eve-ng 서버로 업로드 (FileZilla 또는 WinSCP 사용 권장)

필자의 경우 전송하려는 이미지의 용량이 크지 않기에 scp 명령을 사용하여 eve-ng 서버로 전송하도록 하겠음.

scp -r ./eveng-images 192.168.x.x:/root/

3. 다시 eve-ng 서버로 접속하여 해당 경로로 이동

cd /opt/unetlab/addons/qemu/viosl2-adventerprisek9-m.SSA.high_iron_20180619/

4. 파일 이름 변경

mv viosl2-adventerprisek9-m.SSA.high_iron_20180619.qcow2 virtioa.qcow2

5. 권한 수정

/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

▶ L3 이미지 추가

1. 디렉토리 생성

mkdir -p /opt/unetlab/addons/qemu/vios-adventerprisek9-m.spa.158-3.m2

2. 로컬에 있는 장비 파일을 eve-ng 서버로 업로드 (FileZilla 또는 WinSCP 사용 권장)

필자의 경우 전송하려는 이미지의 용량이 크지 않기에 scp 명령을 사용하여 eve-ng 서버로 전송하도록 하겠음.

scp -r ./eveng-images 192.168.x.x:/root/

3. 다시 eve-ng 서버로 접속하여 해당 경로로 이동

cd /opt/unetlab/addons/qemu/vios-adventerprisek9-m.spa.158-3.m2/

4. 파일 이름 변경

mv vios-adventerprisek9-m.spa.158-3.m2.qcow2 virtioa.qcow2

5. 권한 수정

/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

🔴 트러블슈팅

‣ fixpermissions 에러 발생


만약 권한 수정 중

$ /opt/unetlab/wrappers/unl_wrapper -a fixpermissions

PHP Notice:  file_get_contents(): Read of 8192 bytes failed with errno=21 Is a directory in /opt/unetlab/html/includes/init.php on line 71

위와 같은 에러가 발생하였다면

아래 명령어를 실행해보자.

# 현재 내 시스템의 CPU가 뭔지 조회
dmesg | grep -u cpu | grep -iE "intel|amd"

# Intel인 경우
echo "intel" > /opt/unetlab/platform

# AMD인 경우
echo "amd" > /opt/unetlab/platform

위와 같이 명령어 실행 후 다시 권한 수정을 해보면 잘 될 것이다.


‣ neither intel vt-x or amd-v found


eve-ng 머신 접속 시

proxmox neither intel vt-x or amd-v found

위 로그가 뜬다면 OS에서 가상화 설정이 되어있지 않은 상태인거다.

간혹 eve-ng 랩을 만들고 장비를 import 한 후, start 해보면 장비가 켜졌다가 바로 꺼지거나 아예 응답이 없을 수도 있다.

이런 경우에는 eve-ng 서버 로그를 살펴보고 원인을 찾아보는게 좋으나, 높은 확률로 가상화 관련 문제일 가능성이 높다.

어쨌든, 위와 같은 로그가 eve-ng 서버에 출력된 경우 아래와 같이 따라해보도록 하자.


  1. 기동 중인 EVE-NG VM을 작동 중지 시킨다.
  2. EVE-NG VM의의 하드웨어 탭으로 이동한다.
  3. Processors를 더블 클릭하여 프로세서 설정 탭으로 이동한다.
  4. Type(유형) 섹션에서 host를 찾아 바꿔준다.
  5. 변경 사항을 저장하고 다시 VM을 시작하여 확인해본다.

VM의 프로세서의 Type을 host 유형과 동일하게 맞춰주는게 해결방법이라고 볼 수 있겠다.
image


Loading script...