スキル 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アクセラレーションとREST APIをポート9180でCHRをブート

期待される結果:

QEMUがハードウェアアクセラレーションで起動します。RouterOSが約5秒でブートします。http://127.0.0.1:9180/ からのHTTP 200レスポンスが準備完了を確認します。REST APIは管理者認証情報で http://127.0.0.1:9180/rest/ からアクセス可能です。

「routeros-qemu-chr」を使用しています。 GitHub Actions UbuntuランナーでのKVM有効化

期待される結果:

udevルールが /etc/udev/rules.d/99-kvm4all.rules に作成されました。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)。サービスがlocalhostポートからホストからアクセス可能。

セキュリティ監査

低リスク
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機能を探索し、ファイアウォールルールをテストし、ブリッジングを試み、プロダクションハードウェアなしでネットワークコンセプトを学習します。

マルチアーキテクチャテスト

適切なファイムウェア(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でサイレントブート失敗を引き起こすMMIOトラップを回避するために、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を使用しない - レース条件からのプッシュ拒否を避けるためにretry-with-rebaseパターンを使用する

よくある質問

フリーライセンスCHRの速度制限はありますか?
フリーライセンスではインターフェーススループットが1 Mbpsに制限されます。REST API呼び出し、SSH、WinBox、WebFigアクセスには影響しません。この制限はインターフェース間の実際のデータ転送にのみ適用されます。
HVFアクセラレーションでQEMU Guest Agentが動作しないのはなぜですか?
RouterOS QGAデーモンはCPUIDでKVMハイパーバイザーを検出した場合にのみ起動します。HVF(macOS)またはTCG(ソフトウェアエミュレーション)では、CPUID 0x40000000はKVMベンダー文字列を返さないため、デーモンは起動しません。QGAテストにはLinux with KVMを使用してください。
CHRブートにSeaBIOSとUEFIのどちらを選択すべきですか?
x86_64にはSeaBIOSを使用(デフォルト、ブートが最も高速)。aarch64 ARMアーキテクチャにはUEFIを使用。x86_64では、SeaBIOSのみが独自のブートパーティションをブートできます。OVMFはそれを読み取れません。
aarch64 CHRがif=virtioでブート時にスタックするのはなぜですか?
aarch64 virtマシンでは、if=virtioはMMIOトランスポートに解決されます。RouterOSにはvirtio_mmioドライバーがなくvirtio_pci толькоがあるため、カーネルはサイレントにスタックします。aarch64では常に明示的な -device virtio-blk-pci を使用してください。
複数のCHRインスタンスを同時に実行できますか?
はい。各インスタンスに一意のホストポートを使用してください(REST API用9180、9181、9182など)。各インスタンスには独自のディスクイメージとクリーンアップ用のPIDトラッキングが必要です。
どのアクセラレーション方法を使用すべきですか?
ホスト/ゲストアーキテクチャが一致する場合はLinuxでKVMを使用してください。macOS Apple Siliconでaarch64ゲストにはHVFを使用してください。ハードウェアアクセラレーションが利用できない場合は、すべてのプラットフォームでTCGをフォールバックとして使用してください。

開発者の詳細

作成者

tikoci

ライセンス

MIT

参照

main