카테고리: GNS

GNS3 with VMware ESXi

 

GNS3는 Cisco IOS / Juniper JUNIOS등을 소프트웨어적으로 시뮬레이팅 할 수 있는 강력한 네트워크 시뮬레이터이다.

접근성과 편의성은 Cisco Packet Simulator보다 떨어지지만, 구동할 수 있는 이미지만 있다면 어떠한 네트워크 장비라도 -OpenFlow 장비까지- 시뮬레이션 할 수 있다는 커다란 장점이 있다.

하지만 상대적으로 CPU/RAM을 많이 필요로 하기에, 대규모의 토폴로지를 구성하기에는 상당히 높은 사양이 요구된다 할 수 있겠다.

 

나는 개인적으로 가상화 Lab을 위한 ESXi Host를 운용하고 있으며, 최근 메모리 확장을 통해 남게 된 자원의 활용처를 찾고 있었다.

그러다 발견한 것이 최근 GNS3가 로컬 시스템에 직접 설치하는 것이 아닌 VMware Player나 VirtualBox 와 같은 가상 환경에서 GNS3 Server를 구동하고, 로컬 시스템에선 클라이언트로 서버에 접속하여 사용하는 것을 권장하고 있다는 사실이었다.

확실히 사용자가 사용하던 PC에 설치하여 구동하는 것 보다 격리된 VM에 Pre-Install 된 형태로 제공되는 편이 높은 안정성과 빠른 트러블슈팅에 도움이 되기에 이러한 형태의 배포를 추진한 것이겠지만, 내게는 GNS3를 구동하는 VM을 VMware ESXi에 바로 올릴 수 있게 되었다는 것이 더욱 중요했다.

 

 

이 글에서는 ESXi에 GNS3 VM을 설치하고, Client와 연동하기까지의 과정을 서술한다.

 

GNS3 VM은 GNS3의 GitHub Repository (https://github.com/GNS3/gns3-gui/releases)에서 다운로드 할 수 있다.

우리는 ESXi에 GNS3를 설치할 것이므로, GNS3.VM.VMware.ESXi…zip을 받아준다.

이 압축파일은 .ova 파일을 담고 있다. VMware에서 사용하는 탬플릿 배포 파일(OVF)로, OVF 탬플릿 배포를 통해 ESXi에 추가할 수 있다.

OVF

OVF 탬플릿을 성공적으로 추가하고 나면, VM 인벤토리에 ‘Clone of GNS3’란 이름의 VM이 보일 것이다. 축하한다! 이것으로 GNS3 Server의 설치가 끝났다.

 

 

 

… 물론 끝이 아니다. GNS3는 네트워크 장비를 시뮬레이션 하기 위해서 KVM을 이용한다. 그렇기에 ESXi 상에서 제대로 된 성능을 뽑아주려면 Nested 가상화를 위한 설정이 필요하다.

Nested란 쉽게 말해서 하이퍼바이저 안의 하이퍼바이저라는 뜻이다. 하이퍼바이저 위의 VM은 Intel VT-x, AMD-V를 이용해 CPU/메모리에 직접 접근하지만, 그 위에 하이퍼바이저를 올리고 또 그 위에 VM을 올린다면?

간단하게 접근이 되지 않을 것임을 쉽게 생각할 수 있다.

VMware는 VM이 VT-x와 AMD-V의 사용을 필요로 할때 이 기능을 제공해 줄 수 있는 설정을 제공한다.

 

먼저, 가상 시스템 설정에 들어가 설정을 이렇게 바꾼다.

VM_Setting

그리고 가상 시스템의 .vmx 파일을 다운받아, 제일 뒤에 vhv.enable = “true”를 추가한다.

VMX_Edit

 

이 파일을 다시 업로드해주면 Nested VM을 사용할 수 있게 된다.

VM을 실행해 보면 ‘KVM acceleration can be used’라는 메시지를 볼 수 있을 것이다.

VM_FIn

 

이제 GNS3를 열고, 설정 메뉴에서 GNS3 Remote Server를 등록해준다.

 

GNS_Preferences

 

이것으로 원격 서버에서 GNS3 이미지를 구동할 수 있게 되었다.