▶ 개요
Proxmox 환경에서 EVE-NG 서버를 구축하는 방법과 장비 이미지를 어떻게 import 하는지 알아보도록 하자.
▶ ISO 다운로드
eve-ng 홈페이지에서 Free EVE Community Edition ISO 이미지를 다운로드 받자.
▶ ISO 이미지 업로드
Proxmox 웹 인터페이스로 이동하여 ISO 이미지를 업로드하자.
▶ 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 서버에 출력된 경우 아래와 같이 따라해보도록 하자.
- 기동 중인 EVE-NG VM을 작동 중지 시킨다.
- EVE-NG VM의의 하드웨어 탭으로 이동한다.
- Processors를 더블 클릭하여 프로세서 설정 탭으로 이동한다.
- Type(유형) 섹션에서
host
를 찾아 바꿔준다. - 변경 사항을 저장하고 다시 VM을 시작하여 확인해본다.
VM의 프로세서의 Type을 host 유형과 동일하게 맞춰주는게 해결방법이라고 볼 수 있겠다.