스킬 routeros-qemu-chr
📦

routeros-qemu-chr

낮은 위험 ⚙️ 외부 명령어🌐 네트워크 접근📁 파일 시스템 액세스

QEMU에서 MikroTik RouterOS CHR 실행

MikroTik RouterOS CHR은 테스트 및 개발을 위한 완전한 기능을 갖춘 가상 라우터를 제공하지만, 설정에는 QEMU 옵션, VirtIO 드라이버 및 펌웨어 구성을 탐색해야 합니다. 이 스킬은 가속화, 적절한 VirtIO 설정 및 REST API 통합을 포함한 CHR 실행에 대한 완전한 가이드를 제공합니다.

지원: Claude Codex Code(CC)
⚠️ 63 나쁨
1

스킬 ZIP 다운로드

2

Claude에서 업로드

설정 → 기능 → 스킬 → 스킬 업로드로 이동

3

토글을 켜고 사용 시작

테스트해 보기

"routeros-qemu-chr" 사용 중입니다. KVM 가속 및 포트 9180에서 REST API로 CHR 부팅

예상 결과:

QEMU가 하드웨어 가속으로 시작됩니다. RouterOS가 약 5초 내에 부팅됩니다. http://127.0.0.1:9180/에서 HTTP 200 응답으로 준비 상태가 확인됩니다. REST API는 admin 자격 증명으로 http://127.0.0.1:9180/rest/에서 액세스 가능합니다.

"routeros-qemu-chr" 사용 중입니다. GitHub Actions Ubuntu 러너에서 KVM 활성화

예상 결과:

/etc/udev/rules.d/99-kvm4all.rules에 udev 규칙이 생성되었습니다. KVM 장치 권한이 0666으로 업데이트되었습니다. QEMU가 하드웨어 가속을 위해 /dev/kvm을 성공적으로 엽니다. 부팅 시간이 약 30초에서 약 5초로 단축되었습니다.

"routeros-qemu-chr" 사용 중입니다. RouterOS 서비스를 위한 포트 포워딩 구성

예상 결과:

호스트 포트 매핑: 9180→80 (REST API), 9122→22 (SSH), 9728→8728 (API), 9729→8729 (API-SSL), 9291→8291 (WinBox). 로컬호스트 포트를 통해 호스트에서 서비스 액세스 가능.

보안 감사

낮은 위험
v2 • 4/16/2026

Documentation and reference skill for running RouterOS CHR in QEMU. Static analysis flagged 343 patterns, but evaluation reveals these are false positives: shell backtick notation in markdown code examples (not execution), sudo in GitHub Actions CI (expected), MD5 references in kernel history docs (not actual usage), and legitimate acceleration detection commands. All network access targets MikroTik infrastructure for downloading CHR images. Risk level set to LOW due to external command patterns in documentation examples, but no actual malicious code present.

5
스캔된 파일
794
분석된 줄 수
12
발견 사항
2
총 감사 수

높은 위험 문제 (4)

Documentation Shell Examples Misidentified as Execution
Static scanner flagged 264 instances of Ruby/shell backtick notation. These are markdown code blocks showing shell command syntax, not actual command execution. Files are documentation with command examples.
sudo Commands in GitHub Actions CI (Expected Behavior)
GitHub Actions workflow uses sudo for package installation (apt-get install). This is standard CI/CD practice, not privilege escalation risk.
nohup for Background QEMU Process (Legitimate Use)
nohup is used to run QEMU in background during CI testing. This is standard practice for running VMs in CI environments.
Base64 HTTP Basic Auth (Standard Practice)
Static scanner flagged btoa('admin:') as weak crypto. This is standard HTTP Basic Auth encoding, not cryptographic weakness.
중간 위험 문제 (3)
Network Access to External URLs
Skill downloads CHR images from MikroTik infrastructure. URLs point to download.mikrotik.com and cdn.mikrotik.com for official RouterOS images.
Device File Access for Virtualization
/dev/kvm access for KVM acceleration detection. This is standard practice for virtualization tooling.
Temp Directory Access
/tmp used for QEMU vars files, serial sockets, and log files. Standard temp file usage for VM management.
낮은 위험 문제 (2)
Hardcoded IP Addresses (Localhost)
127.0.0.1 used for RouterOS REST API and port forwarding. Standard localhost addressing.
System Information Commands (Acceleration Detection)
uname, sysctl, and stat commands used for platform detection. Standard virtualization tooling practice.
감사자: claude 감사 이력 보기 →

품질 점수

45
아키텍처
100
유지보수성
87
콘텐츠
32
커뮤니티
40
보안
100
사양 준수

만들 수 있는 것

CI에서 자동화된 RouterOS REST API 테스트

RouterOS CHR을 CI 테스트 픽스처로 실행하여 REST API 호출을 검증하고, RAML 스키마를 생성하며, 수동 라우터 설정 없이 /app YAML 구성을 테스트합니다.

개발 및 학습 환경

무료 라이선스 CHR 인스턴스를 부팅하여 프로덕션 하드웨어 없이 RouterOS 기능을 탐색하고, 방화벽 규칙을 테스트하며, 브리징을 실험하고, 네트워킹 개념을 학습합니다.

멀티 아키텍처 테스트

QEMU를 사용하여 적절한 펌웨어 (x86용 SeaBIOS, ARM용 UEFI) 및 가속 옵션으로 x86_64 및 aarch64 아키텍처 전반에서 RouterOS 구성을 테스트합니다.

이 프롬프트를 사용해 보세요

기본 CHR 설정
QEMU에서 RouterOS CHR을 설정할 수 있도록 도와주세요. 최신 안정 이미지를 다운로드하고 KVM 가속 및 REST API용 포트 9180으로 부팅해야 합니다.
GitHub Actions CI 통합
RouterOS CHR을 다운로드하고, 사용 가능한 경우 KVM으로 부팅하고 (TCG로 폴백), 부팅을 대기한 다음 REST API 테스트를 실행하는 GitHub Actions 워크플로우를 작성해 주세요.
ARM64 UEFI 부팅 구성
macOS Apple Silicon에서 RouterOS CHR aarch64를 부팅하도록 QEMU를 구성해 주세요. UEFI pflash 설정과 명시적 virtio-blk-pci 장치 구성을 포함해 주세요.
부팅 실패 디버깅
RouterOS CHR이 빈 화면과 함께 부팅에 실패합니다. 디스크 이미지가 aarch64에서 if=virtio를 사용합니다. 어떤 문제가 있을 수 있으며 어떻게 수정하나요?

모범 사례

  • aarch64에서 묵시적 부팅 실패를 방지하기 위해 if=virtio 약어 대신 명시적 -device virtio-blk-pci를 사용하세요
  • KVM 활성화 전에 /dev/kvm 존재 여부가 아닌 쓰기 가능 여부를 확인하고, KVM을 사용할 수 없는 경우 항상 TCG로 원활하게 폴백하세요
  • localhost IP를 하드코딩하는 대신 tcp::9180-:80과 같은 포트 포워딩 패턴을 사용하여 구성을 휴대 가능하고 재사용 가능하게 만드세요

피하기

  • aarch64 아키텍처에서 if=virtio를 사용하지 마세요 - RouterOS가 지원하지 않는 MMIO로 해석되어 묵시적 부팅 실패를 초래합니다
  • KVM 권한 확인을 건너뛰지 마세요 - /dev/kvm이 존재하지만 읽을 수 없을 수 있으며, QEMU는 권한 오류 시 TCG로 묵시적으로 폴백하지 않습니다
  • 동시 CI 빌드에서 git pull && git push를 사용하지 마세요 - 경쟁 조건으로 인한 push 거부를 피하기 위해 retry-with-rebase 패턴을 사용하세요

자주 묻는 질문

무료 CHR 라이선스의 속도 제한은 무엇인가요?
무료 CHR 라이선스는 인터페이스 처리량을 1Mbps로 제한합니다. REST API 호출, SSH, WinBox 및 WebFig 액세스에는 영향을 받지 않습니다. 이 제한은 인터페이스 간 실제 데이터 전달에만 적용됩니다.
HVF 가속에서 QEMU 게스트 에이전트가 작동하지 않는 이유는 무엇인가요?
RouterOS QGA 데몬은 CPUID를 통해 KVM 하이퍼바이저를 감지할 때만 시작됩니다. HVF (macOS) 또는 TCG (소프트웨어 에뮬레이션)에서는 CPUID 0x40000000이 KVM 벤더 문자열을 반환하지 않으므로 데몬이 시작되지 않습니다. QGA 테스트에는 KVM이 있는 Linux를 사용하세요.
CHR 부팅 시 SeaBIOS와 UEFI 중 어떻게 선택하나요?
x86_64에는 SeaBIOS를 사용하세요 (기본값, 가장 빠른 부팅). aarch64 ARM 아키텍처에는 UEFI를 사용하세요. x86_64에서는 SeaBIOS만 독점 부팅 파티션을 부팅할 수 있으며 OVMF는 이를 읽을 수 없습니다.
aarch64 CHR이 if=virtio로 부팅 중 멈추는 이유는 무엇인가요?
aarch64 virt 머신에서 if=virtio는 MMIO 트랜스포트로 해석됩니다. RouterOS에는 virtio_pci 드라이버는 있지만 virtio_mmio 드라이버는 없으므로 커널이 묵시적으로 중단됩니다. aarch64에서는 항상 명시적 -device virtio-blk-pci를 사용하세요.
여러 CHR 인스턴스를 동시에 실행할 수 있나요?
네. 각 인스턴스에 고유한 호스트 포트를 사용하세요 (9180, 9181, 9182 등 REST API용). 각 인스턴스는 정리를 위해 자체 디스크 이미지 및 PID 추적이 필요합니다.
어떤 가속 방법을 사용해야 하나요?
호스트/게스트 아키텍처가 일치하는 경우 Linux에서 KVM을 사용하세요. macOS Apple Silicon에서 aarch64 게스트에는 HVF를 사용하세요. 하드웨어 가속을 사용할 수 없는 경우 모든 플랫폼에서 TCG를 폴백으로 사용하세요.

개발자 세부 정보

작성자

tikoci

라이선스

MIT

참조

main