OPNsense와 WireGuard 설정을 마친 뒤, 다음으로 구성하고 싶었던 것은 네트워크 실습 환경이었습니다.
평소에 CCNA와 인프라 네트워크를 공부하면서
라우터, 스위치, 방화벽 같은 장비를 직접 다뤄보고 싶다는 생각이 많았습니다.
하지만 실제 Cisco 장비를 여러 대 구매해서 실습 환경을 구성하는 것은 비용과 공간 면에서 부담이 큽니다.
그래서 선택한 것이 Cisco Modeling Labs, 줄여서 CML입니다.
(CML도 사실 비싸요! 꼭 할인할 때 사시길 바랍니다)
CML은 Cisco에서 제공하는 네트워크 가상화 실습 플랫폼입니다.
실제 물리 장비를 여러 대 준비하지 않아도,
가상 환경 안에서 라우터, 스위치, 방화벽, 리눅스 서버 등을 배치하고 연결하면서
네트워크 토폴로지를 실습할 수 있습니다.
쉽게 말하면 네트워크 장비들을 Proxmox 위의 VM 안에서 가상으로 만들어 실습하는 환경입니다.
1. CML을 설치하려고 한 이유
기존 홈랩은 Proxmox를 중심으로 구성되어 있었습니다.
전체 구조는 대략 다음과 같습니다.
외부 인터넷
→ OPNsense
→ Proxmox 내부망
→ VM / 서버 / 실습 환경
여기에 CML을 추가하면, Proxmox 위에서 네트워크 실습 전용 플랫폼을 운영할 수 있습니다.
즉, CML도 하나의 VM으로 Proxmox 위에 올리고,
CML 내부에서 다시 여러 네트워크 장비 노드를 실행하는 구조입니다.
일반 VM 하나를 실행하는 것과 달리, CML은 그 안에서 다시 가상 네트워크 장비들을 실행합니다.
그래서 단순한 리눅스 서버 VM보다 CPU, RAM, 디스크를 더 신중하게 잡아야 했습니다.
구조를 CML위주로 단순하게 표현하면 다음과 같습니다.
Proxmox
→ CML VM
→ CML 내부 라우터 / 스위치 / 서버 노드
여기서 중요한 개념은 중첩 가상화입니다.
중첩 가상화는 가상머신 안에서 다시 가상머신이나 가상 장비를 실행하는 구조입니다.
Proxmox가 1차 가상화 환경이고,
CML 안에서 실행되는 라우터와 스위치 노드들이 그 안에서 다시 돌아가는 구조라고 볼 수 있습니다.
그래서 CML VM을 만들 때는 CPU 설정과 가상화 지원 여부가 중요합니다.
단순히 VM을 켜는 것이 아니라, CML 내부에서 여러 네트워크 장비 이미지를 실행해야 하기 때문입니다.
2. CML 설치 구조 설계
CML은 Proxmox 위에 하나의 VM으로 생성했습니다.
제 홈랩에서는 OPNsense 뒤쪽에 내부망이 구성되어 있고, Proxmox 관리망과 내부 VM들이 이 내부망에 위치합니다.
그래서 CML 역시 OPNsense 뒤쪽 내부망에 배치하는 방향으로 잡았습니다.
구조는 다음과 같습니다.
외부 인터넷
→ OPNsense WAN
→ OPNsense LAN
→ Proxmox 내부 가상 LAN
→ CML VM
이렇게 구성하면 CML 관리 페이지를 WAN에 직접 노출하지 않아도 됩니다.
외부에서 CML에 접근해야 할 때는 WireGuard를 통해 내부망으로 접속한 뒤, CML 관리 IP로 접근하면 됩니다.
즉, 접속 흐름은 다음과 같습니다.
맥북
→ WireGuard
→ OPNsense
→ Proxmox 내부망
→ CML 관리 페이지
이 구조의 장점은 CML을 외부에 직접 열지 않아도 된다는 점입니다.
CML은 네트워크 실습 플랫폼이기 때문에 내부에 여러 장비와 토폴로지가 들어갑니다.
따라서 가능하면 외부에 직접 노출하지 않고, VPN을 통해 접근하는 방식이 더 안전하다고 판단했습니다.
3. CML VM 생성
이제 Proxmox에서 CML VM을 생성합니다.
CML 설치 ISO를 준비한 뒤, Proxmox의 ISO Images에 업로드했습니다.
노드 이미지가 포함된 refplat ISO도 함께 업로드해야
CML 설치 후 해당 이미지들을 CML 내부로 복사할 수 있으며,
이를 통해 다양한 노드를 활용한 네트워크 실습이 가능합니다.
(ISO파일 다운은 결제 이후 받을 수 있는 메일의 링크를 통해 들어가 받을 수 있습니다.
결제 과정 및 다운로드 과정은 생략하도록 하겠습니다.)
경로는 이전과 동일하게 local 스토리지의 ISO Images 메뉴를 사용했습니다.
Datacenter
→ Proxmox 노드
→ local
→ ISO Images
→ Upload

이후 새 VM을 생성했습니다.
CML은 일반적인 서버 VM보다 자원을 넉넉하게 잡는 것이 좋습니다.
이유는 CML 자체만 실행하는 것이 아니라, 그 안에서 여러 라우터와 스위치 노드를 동시에 실행하기 때문입니다.
저는 처음 테스트 기준으로 다음과 같이 구성했습니다.
vCPU: 8 Core
Memory: 24GB
Disk: 100GB
Network: Proxmox 내부 LAN 브릿지 연결

물론 실제 필요한 자원은 어떤 노드를 몇 개 실행하느냐에 따라 달라집니다.
간단한 라우터 2~3대 실습은 비교적 적은 자원으로도 가능하지만,
스위치, 방화벽, 리눅스 서버, 다른 고급장비들까지 올리면 RAM과 CPU 사용량이 빠르게 증가합니다.
그래서 CML은 처음부터 너무 작게 잡기보다는, 추후 확장을 고려해 여유 있게 잡는 것이 좋다고 느꼈습니다.
4. CPU 설정
CML VM을 만들 때 CPU 설정도 중요했습니다.
Proxmox에서는 VM의 CPU Type을 선택할 수 있습니다. 여기서 저는 host 타입을 사용하는 방향으로 잡았습니다.
CPU Type을 host로 설정하면 Proxmox 호스트의 CPU 기능을 VM에 최대한 그대로 전달할 수 있습니다.
CML처럼 내부에서 다시 여러 가상 장비를 실행하는 환경에서는 CPU 가상화 기능을 잘 전달하는 것이 중요합니다.
처음에는 기본 CPU 타입을 사용해도 되는지 고민했지만,
CML은 단순한 웹 서버가 아니라 내부에서 네트워크 장비 노드를 실행하는 플랫폼입니다.
그래서 가능하면 CPU 기능을 더 잘 전달할 수 있도록 host 타입을 사용하는 것이 자연스럽다고 판단했습니다.
정리하면 다음과 같습니다.
일반 VM
= 기본 CPU 타입으로도 대부분 동작 가능
CML VM
= 내부에서 다시 노드를 실행하므로 host 타입이 유리
5. CML 설치 진행
VM 설정을 마친 뒤 CML ISO로 부팅했습니다.
CML 설치는 일반적인 OS 설치처럼 진행됩니다.
설치 디스크를 선택하고, 기본 설치 과정을 진행한 뒤, 설치가 완료되면 재부팅합니다.

설치가 완료된 뒤에는 Proxmox에서 CD/DVD에 연결된 ISO를 제거했습니다.
ISO를 제거하지 않으면 재부팅할 때 다시 설치 화면으로 들어갈 수 있기 때문입니다.
설치가 완료된 VM은 가상 디스크에서 부팅하면 됩니다.
6. CML 웹 접속과 초기 설정
CML 관리 IP를 확인한 뒤 브라우저에서 접속했습니다.
접속 주소는 다음과 같은 형태입니다.
CML 실습 가능 홈페이지 주소 : https://CML_IP_주소
CML 관리 홈페이지 주소 : https://CML_IP_주소:9090
처음 접속하면 인증서 경고가 뜰 수 있습니다.
이 경고는 CML이 공인 인증서가 아니라 자체 서명 인증서를 사용하기 때문에 발생할 수 있습니다.
내부 실습 환경에서는 흔히 볼 수 있는 상황입니다.

CML 실습 페이지 초기 설정에서는 관리자 계정, 라이선스, 시스템 기본 설정 등을 확인했습니다.
CML은 Cisco 장비 이미지를 사용하는 실습 플랫폼이기 때문에,
라이선스 상태와 노드 이미지 상태를 확인하는 과정이 중요합니다.

CML 관리 페이지에서는 서버의 기본 상태를 확인하고, 네트워크 설정과 시스템 리소스 정보를 점검했습니다.
CPU, 메모리, 디스크 사용량 등을 확인하면서 CML이 정상적으로 동작할 수 있는 환경인지 확인했습니다.
7. 사용 가능한 노드 확인
초기 설정을 마친 뒤, CML에서 사용할 수 있는 노드들을 확인했습니다.

8. CML을 홈랩에 올리면서 느낀 점
CML을 Proxmox 위에 올리면서 가장 중요하다고 느낀 것은 자원 설계였습니다.
CML 자체는 하나의 VM이지만, 실제로는 그 안에서 여러 네트워크 장비 노드들이 동시에 실행됩니다.
그래서 처음부터 CPU, RAM, 디스크를 너무 작게 잡으면 실습을 확장할 때 바로 한계가 옵니다.
특히 RAM은 매우매우 중요합니다.
너무 비싸요..
라우터나 스위치 노드를 여러 개 실행하면 메모리 사용량이 빠르게 올라갑니다.
그래서 단순 테스트만 할 것인지,
여러 장비를 동시에 올리는 실습까지 할 것인지에 따라 메모리 할당을 다르게 잡아야 합니다.
또 하나 중요한 점은 네트워크 위치입니다.
CML을 WAN에 직접 노출하지 않고, OPNsense 뒤쪽 내부망에 배치한 것이 가장 안전한 구조라고 판단했습니다.
외부에서 접속할 때는 WireGuard를 통해 내부망으로 들어오면 되기 때문에,
CML 웹 관리 페이지를 공인 IP에 직접 열어둘 필요가 없습니다.
(하지만 팀원들과 함께 쓰기 위해 Teleport에 올릴 예정입니다.)
정리하면 접속 흐름은 다음과 같습니다.
외부 맥북
→ WireGuard
→ OPNsense
→ Proxmox 내부망
→ CML 웹 UI
9. 마무리
이번 글에서는 Proxmox 위에 Cisco Modeling Labs를 설치하고,
홈랩 네트워크 안에서 네트워크 실습 환경을 구성하는 과정을 정리했습니다.
처음에는 CML도 단순히 VM 하나를 올리는 작업이라고 생각했습니다.
하지만 실제로는 그 안에서 다시 여러 네트워크 장비 노드를 실행해야 하기 때문에,
일반 VM보다 CPU, RAM, 디스크, 네트워크 위치를 더 신중하게 잡아야 했습니다.
최종 구조는 다음과 같습니다.
외부 인터넷
→ OPNsense
→ Proxmox 내부망
→ CML VM
→ CML 내부 라우터 / 스위치 / 서버 노드
이 구조를 통해 실제 장비 없이도 라우터, 스위치, 서버를 연결해 다양한 네트워크 토폴로지를 실습할 수 있게 되었습니다.
이번 CML 구성에서 얻은 핵심은 다음과 같습니다.
1. CML은 Proxmox 위에 하나의 VM으로 구성할 수 있음
2. CML 내부에서 다시 여러 네트워크 장비 노드가 실행되므로 자원 할당이 중요함
3. CPU Type은 host로 설정하는 것이 유리함
4. 디스크는 나중에 줄이기 어렵기 때문에 처음부터 여유 있게 잡는 것이 좋음
5. CML은 OPNsense 뒤쪽 내부망에 배치하고, 외부 접속은 WireGuard를 통해 처리하는 것이 안전함
6. CCNA나 네트워크 실습용으로 IOSv, IOSvL2, Ubuntu 같은 노드를 활용하면 충분히 다양한 실습이 가능함
7. CML은 너무 비싸다..
이렇게 해서 Proxmox 기반 홈랩 안에 CML을 올리고,
본격적으로 네트워크 실습을 진행할 수 있는 환경을 구성했습니다.
'Infra' 카테고리의 다른 글
| Wireguard 세팅기 (0) | 2026.05.11 |
|---|---|
| OPNsense 설치 (0) | 2026.05.10 |
| Proxmox 세팅 (0) | 2026.05.09 |